diff --git a/examples/ecr-image/Pulumi.yaml b/examples/ecr-image/Pulumi.yaml new file mode 100644 index 00000000000..86d71cf0f7e --- /dev/null +++ b/examples/ecr-image/Pulumi.yaml @@ -0,0 +1,3 @@ +name: ecr-image +runtime: nodejs +description: Publish docker images to ECR diff --git a/examples/ecr-image/README.md b/examples/ecr-image/README.md new file mode 100644 index 00000000000..64a70dc2199 --- /dev/null +++ b/examples/ecr-image/README.md @@ -0,0 +1,41 @@ +# examples/ecr-image + +This example demonstrates how to use Pulumi to publish a Docker image to Amazon Elastic Container Registry (ECR). + +## Steps + +1. **Install Dependencies** + + Ensure you have the necessary dependencies installed: + + ```sh + npm install + ``` + +2. **Run Pulumi Up** + + Run Pulumi to create the ECR repository and push the Docker image: + + ```sh + pulumi up + ``` + + Confirm the changes and wait for the process to complete. + +## Files + +- `index.ts`: Contains the Pulumi program to create the ECR repository and push the Docker image. +- `Dockerfile`: Dockerfile for building the Docker image. + +## Clean Up + +To clean up the resources created by Pulumi: + +```sh +pulumi destroy +``` + +## Additional Resources + +- [Pulumi AWS Documentation](https://www.pulumi.com/docs/intro/cloud-providers/aws/) +- [Amazon ECR Documentation](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) diff --git a/examples/ecr-image/app/Dockerfile b/examples/ecr-image/app/Dockerfile new file mode 100644 index 00000000000..c1f18590bc4 --- /dev/null +++ b/examples/ecr-image/app/Dockerfile @@ -0,0 +1,3 @@ +FROM public.ecr.aws/nginx/nginx +RUN echo "

Hello Pulumi!

" > \ + /usr/share/nginx/html/index.html diff --git a/examples/ecr-image/index.ts b/examples/ecr-image/index.ts new file mode 100644 index 00000000000..8bbf9b685de --- /dev/null +++ b/examples/ecr-image/index.ts @@ -0,0 +1,36 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as aws from "@pulumi/aws"; +import * as docker from "@pulumi/docker-build"; + +const config = new pulumi.Config("aws"); +const providerOpts = { provider: new aws.Provider("prov", { region: config.require("envRegion") }) }; + +const repository = new aws.ecr.Repository("myrepository", { + forceDelete: true, +}, providerOpts); + +// Get registry info (credentials and endpoint) so we can publish to it. +const credentials = aws.ecr.getCredentialsOutput({ registryId: repository.registryId }, providerOpts); +const decodedCredentials = credentials.authorizationToken.apply(tok => Buffer.from(tok, "base64").toString()); +const registryInfo = decodedCredentials.apply(creds => { + const [username, password] = creds.split(":"); + if (!password || !username) { + throw new Error("Invalid credentials"); + } + return { + address: credentials.proxyEndpoint, + username: username, + password: password, + }; +}); + +const image = new docker.Image("myimage", { + push: true, + tags: [pulumi.interpolate`${repository.repositoryUrl}:latest`], + context: { + location: "./app", + }, + registries: [registryInfo], +}); + +export const digest = image.digest; diff --git a/examples/ecr-image/package.json b/examples/ecr-image/package.json new file mode 100644 index 00000000000..99f083466bb --- /dev/null +++ b/examples/ecr-image/package.json @@ -0,0 +1,16 @@ +{ + "name": "ecr-image", + "version": "0.0.1", + "license": "Apache-2.0", + "scripts": { + "build": "tsc" + }, + "dependencies": { + "@pulumi/pulumi": "^3.0.0", + "@pulumi/aws": "^6.0.0", + "@pulumi/docker-build": "^0.0.7" + }, + "devDependencies": { + "@types/node": "^8.0.0" + } +} diff --git a/examples/ecr-image/tsconfig.json b/examples/ecr-image/tsconfig.json new file mode 100644 index 00000000000..ab65afa6135 --- /dev/null +++ b/examples/ecr-image/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "strict": true, + "outDir": "bin", + "target": "es2016", + "module": "commonjs", + "moduleResolution": "node", + "sourceMap": true, + "experimentalDecorators": true, + "pretty": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.ts" + ] +} diff --git a/examples/examples_nodejs_test.go b/examples/examples_nodejs_test.go index 39e73547b37..90d6dcb601f 100644 --- a/examples/examples_nodejs_test.go +++ b/examples/examples_nodejs_test.go @@ -716,3 +716,17 @@ func TestServerlessAppRepositoryApplication(t *testing.T) { integration.ProgramTest(t, &test) } + +func TestAccEcrImage(t *testing.T) { + test := getJSBaseOptions(t). + With(integration.ProgramTestOptions{ + Dir: filepath.Join(getCwd(t), "ecr-image"), + ExtraRuntimeValidation: func(t *testing.T, stack integration.RuntimeValidationStackInfo) { + repoDigest, ok := stack.Outputs["digest"].(string) + assert.True(t, ok, "expected digest output to be set") + assert.NotEmpty(t, repoDigest) + }, + }) + + integration.ProgramTest(t, &test) +} diff --git a/examples/go.mod b/examples/go.mod index a87d0b19835..267586b565d 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -4,7 +4,7 @@ go 1.23.2 require ( github.com/aws/aws-sdk-go v1.55.5 - github.com/aws/aws-sdk-go-v2/config v1.27.43 + github.com/aws/aws-sdk-go-v2/config v1.28.0 github.com/aws/aws-sdk-go-v2/service/iam v1.37.2 github.com/pulumi/providertest v0.1.2 github.com/pulumi/pulumi-aws/provider/v6 v6.0.0-00010101000000-000000000000 @@ -60,7 +60,7 @@ require ( github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.32 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.33 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect @@ -78,21 +78,21 @@ require ( github.com/aws/aws-sdk-go-v2/service/appflow v1.45.3 // indirect github.com/aws/aws-sdk-go-v2/service/appintegrations v1.30.2 // indirect github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.28.2 // indirect + github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.29.0 // indirect github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.6.2 // indirect github.com/aws/aws-sdk-go-v2/service/appmesh v1.29.2 // indirect github.com/aws/aws-sdk-go-v2/service/apprunner v1.32.2 // indirect github.com/aws/aws-sdk-go-v2/service/appstream v1.41.2 // indirect github.com/aws/aws-sdk-go-v2/service/appsync v1.38.2 // indirect - github.com/aws/aws-sdk-go-v2/service/athena v1.47.2 // indirect + github.com/aws/aws-sdk-go-v2/service/athena v1.48.0 // indirect github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.2 // indirect - github.com/aws/aws-sdk-go-v2/service/autoscaling v1.45.2 // indirect + github.com/aws/aws-sdk-go-v2/service/autoscaling v1.46.0 // indirect github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.2 // indirect github.com/aws/aws-sdk-go-v2/service/backup v1.39.3 // indirect github.com/aws/aws-sdk-go-v2/service/batch v1.46.2 // indirect github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/service/bedrock v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.23.2 // indirect + github.com/aws/aws-sdk-go-v2/service/bedrock v1.21.0 // indirect + github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.24.0 // indirect github.com/aws/aws-sdk-go-v2/service/budgets v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/chatbot v1.8.2 // indirect github.com/aws/aws-sdk-go-v2/service/chime v1.34.2 // indirect @@ -127,17 +127,17 @@ require ( github.com/aws/aws-sdk-go-v2/service/configservice v1.50.2 // indirect github.com/aws/aws-sdk-go-v2/service/connect v1.113.2 // indirect github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.2 // indirect - github.com/aws/aws-sdk-go-v2/service/controltower v1.18.2 // indirect + github.com/aws/aws-sdk-go-v2/service/controltower v1.18.3 // indirect github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/costexplorer v1.43.2 // indirect github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.10.2 // indirect github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.42.2 // indirect - github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.43.0 // indirect + github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.0 // indirect github.com/aws/aws-sdk-go-v2/service/databrew v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dataexchange v1.32.2 // indirect + github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.0 // indirect github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.2 // indirect github.com/aws/aws-sdk-go-v2/service/datasync v1.42.2 // indirect - github.com/aws/aws-sdk-go-v2/service/datazone v1.22.2 // indirect + github.com/aws/aws-sdk-go-v2/service/datazone v1.23.0 // indirect github.com/aws/aws-sdk-go-v2/service/dax v1.23.2 // indirect github.com/aws/aws-sdk-go-v2/service/detective v1.31.2 // indirect github.com/aws/aws-sdk-go-v2/service/devicefarm v1.28.2 // indirect @@ -149,12 +149,12 @@ require ( github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/service/drs v1.30.2 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.182.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.184.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ecs v1.47.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4 // indirect github.com/aws/aws-sdk-go-v2/service/efs v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/eks v1.50.2 // indirect + github.com/aws/aws-sdk-go-v2/service/eks v1.51.0 // indirect github.com/aws/aws-sdk-go-v2/service/elasticache v1.43.0 // indirect github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.28.2 // indirect @@ -169,7 +169,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/finspace v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/firehose v1.34.2 // indirect github.com/aws/aws-sdk-go-v2/service/fis v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/fms v1.37.2 // indirect + github.com/aws/aws-sdk-go-v2/service/fms v1.38.0 // indirect github.com/aws/aws-sdk-go-v2/service/fsx v1.49.2 // indirect github.com/aws/aws-sdk-go-v2/service/gamelift v1.36.2 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.26.2 // indirect @@ -181,6 +181,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/guardduty v1.50.0 // indirect github.com/aws/aws-sdk-go-v2/service/healthlake v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/identitystore v1.27.2 // indirect + github.com/aws/aws-sdk-go-v2/service/imagebuilder v1.38.0 // indirect github.com/aws/aws-sdk-go-v2/service/inspector v1.25.2 // indirect github.com/aws/aws-sdk-go-v2/service/inspector2 v1.32.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect @@ -212,7 +213,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/lightsail v1.42.2 // indirect github.com/aws/aws-sdk-go-v2/service/location v1.42.2 // indirect github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/m2 v1.17.2 // indirect + github.com/aws/aws-sdk-go-v2/service/m2 v1.18.0 // indirect github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.2 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.35.2 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.61.2 // indirect @@ -239,16 +240,16 @@ require ( github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.9.2 // indirect github.com/aws/aws-sdk-go-v2/service/pcs v1.2.2 // indirect github.com/aws/aws-sdk-go-v2/service/pinpoint v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pipes v1.17.2 // indirect + github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.16.0 // indirect + github.com/aws/aws-sdk-go-v2/service/pipes v1.18.0 // indirect github.com/aws/aws-sdk-go-v2/service/polly v1.45.2 // indirect github.com/aws/aws-sdk-go-v2/service/pricing v1.32.2 // indirect github.com/aws/aws-sdk-go-v2/service/qbusiness v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/qldb v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/quicksight v1.76.2 // indirect + github.com/aws/aws-sdk-go-v2/service/quicksight v1.77.0 // indirect github.com/aws/aws-sdk-go-v2/service/ram v1.29.2 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rds v1.87.2 // indirect + github.com/aws/aws-sdk-go-v2/service/rds v1.88.0 // indirect github.com/aws/aws-sdk-go-v2/service/redshift v1.50.0 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.30.2 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.23.2 // indirect @@ -265,7 +266,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.21.2 // indirect github.com/aws/aws-sdk-go-v2/service/route53resolver v1.33.0 // indirect github.com/aws/aws-sdk-go-v2/service/rum v1.21.2 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3control v1.49.2 // indirect github.com/aws/aws-sdk-go-v2/service/s3outposts v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/sagemaker v1.163.2 // indirect @@ -306,7 +307,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/vpclattice v1.12.2 // indirect github.com/aws/aws-sdk-go-v2/service/waf v1.25.2 // indirect github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/wafv2 v1.54.2 // indirect + github.com/aws/aws-sdk-go-v2/service/wafv2 v1.55.0 // indirect github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.34.2 // indirect github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2 // indirect github.com/aws/aws-sdk-go-v2/service/workspaces v1.48.2 // indirect @@ -390,7 +391,7 @@ require ( github.com/hashicorp/terraform-plugin-framework-jsontypes v0.2.0 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 // indirect - github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 // indirect + github.com/hashicorp/terraform-plugin-framework-validators v0.14.0 // indirect github.com/hashicorp/terraform-plugin-go v0.24.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-mux v0.16.0 // indirect diff --git a/examples/go.sum b/examples/go.sum index e01eefdd4e9..1c5ee0adb5d 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -1238,14 +1238,14 @@ github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcT github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA= -github.com/aws/aws-sdk-go-v2/config v1.27.43 h1:p33fDDihFC390dhhuv8nOmX419wjOSDQRb+USt20RrU= -github.com/aws/aws-sdk-go-v2/config v1.27.43/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc= +github.com/aws/aws-sdk-go-v2/config v1.28.0 h1:FosVYWcqEtWNxHn8gB/Vs6jOlNwSoyOCA/g/sxyySOQ= +github.com/aws/aws-sdk-go-v2/config v1.28.0/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc= github.com/aws/aws-sdk-go-v2/credentials v1.17.41 h1:7gXo+Axmp+R4Z+AK8YFQO0ZV3L0gizGINCOWxSLY9W8= github.com/aws/aws-sdk-go-v2/credentials v1.17.41/go.mod h1:u4Eb8d3394YLubphT4jLEwN1rLNq2wFOlT6OuxFwPzU= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 h1:TMH3f/SCAWdNtXXVPPu5D6wrr4G5hI1rAxbcocKfC7Q= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17/go.mod h1:1ZRXLdTpzdJb9fwTMXiLipENRxkGMTn1sfKexGllQCw= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.32 h1:C2hE+gJ40Cb4vzhFJ+tTzjvBpPloUq7XP6PD3A2Fk7g= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.32/go.mod h1:0OmMtVNp+10JFBTfmA2AIeqBDm0YthDXmE+N7poaptk= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.33 h1:X+4YY5kZRI/cOoSMVMGTqFXHAMg1bvvay7IBcqHpybQ= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.33/go.mod h1:DPynzu+cn92k5UQ6tZhX+wfTB4ah6QDU/NgdHqatmvk= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21/go.mod h1:JNr43NFf5L9YaG3eKTm7HQzls9J+A9YYcGI5Quh1r2Y= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 h1:6jZVETqmYCadGFvrYEQfC5fAQmlo80CeL5psbno6r0s= @@ -1280,8 +1280,8 @@ github.com/aws/aws-sdk-go-v2/service/appintegrations v1.30.2 h1:r/++KdfZx8Woi3pI github.com/aws/aws-sdk-go-v2/service/appintegrations v1.30.2/go.mod h1:bcwWgN13kk3Y7iq5stSA+joIygO0/QK7d18ohTEF188= github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.33.2 h1:douQmMbPFGG5AxFDoWdImN3T+8N1z32hkQXPIL7NKGs= github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.33.2/go.mod h1:yg5Zb3dlzZMV7FsmL5fI82xPgUa62sQP4MeQwTS3NRk= -github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.28.2 h1:gOn6bFXWTsGHSBMdMUU5hwmZzop650HoYPq0JSqM+so= -github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.28.2/go.mod h1:6igoPKTMLmlS5UzkIaVsJYLXQjSQAVs75HiY2xdJyKI= +github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.29.0 h1:eI1i6YZDDwAd+wN2v40yWwzRd7DMVPO3227233q9vgA= +github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.29.0/go.mod h1:6igoPKTMLmlS5UzkIaVsJYLXQjSQAVs75HiY2xdJyKI= github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.6.2 h1:VhZVJ0HiiWieoahI0LC+/rrAkgwPpuWw37HlVxs8OrM= github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.6.2/go.mod h1:GzJ9Fze7pxMh9r8wIjFWWDpR7LidenXT5/xEAlZjBkQ= github.com/aws/aws-sdk-go-v2/service/appmesh v1.29.2 h1:YWAxOgkdNG0+K25He+mU3QnxoB7HAGoqDOSLkIA4Ix8= @@ -1292,12 +1292,12 @@ github.com/aws/aws-sdk-go-v2/service/appstream v1.41.2 h1:gNGJ/+acSa5t10VkXTi0FK github.com/aws/aws-sdk-go-v2/service/appstream v1.41.2/go.mod h1:zjq724ntnP8ame8ZzDW0/yca9YPb4CeENOS4hSH/t0Y= github.com/aws/aws-sdk-go-v2/service/appsync v1.38.2 h1:ygiw0umAkC+Gdzcs77aaLtjq4UUJOW6lIu7eK8vpaxM= github.com/aws/aws-sdk-go-v2/service/appsync v1.38.2/go.mod h1:L7JKjMdMuWIfvOLPkN0dGNSLbKrcey+XATTHeB+dCJM= -github.com/aws/aws-sdk-go-v2/service/athena v1.47.2 h1:y8ela03RAsDRd4ajx/M2l/aZQAjwz763LWvuvltxXak= -github.com/aws/aws-sdk-go-v2/service/athena v1.47.2/go.mod h1:bmGCoIiNCRnfKa6T64nCTKrWOtw362tPUKDpq/fjMDU= +github.com/aws/aws-sdk-go-v2/service/athena v1.48.0 h1:oGuR6wuok/T96ISXwQZ64jA83g0qw+poXrDqElx8jk0= +github.com/aws/aws-sdk-go-v2/service/athena v1.48.0/go.mod h1:bmGCoIiNCRnfKa6T64nCTKrWOtw362tPUKDpq/fjMDU= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.2 h1:n6IT2Q6DJg+540tWwIBnJHMrO3Vl5nu+HafGNNo077c= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.2/go.mod h1:IZovD0WWpMx5oFy87RwgPPQcnMCQsiFHir7C9SCV50E= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.45.2 h1:NurelK9YO5OB0HlIUj1ycEZJIFNvkuG5iJjo7/r6AJ4= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.45.2/go.mod h1:YmWinWbpoVdOgnBZQFeZJ2l4kT97lvnRlTvX2zyyBfc= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.46.0 h1:HQ0OvPxqTh2mYKRx4BappkCeLBU+E6oWAKSJ5JpP03c= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.46.0/go.mod h1:YmWinWbpoVdOgnBZQFeZJ2l4kT97lvnRlTvX2zyyBfc= github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.2 h1:adYgaCwIbN816Nxyjhfh4P+YkbgoWX5u/+195qOeDH8= github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.2/go.mod h1:FJIWPT79C+J0TC0svBOcVZi3agyv/t8ej+nZekrTItU= github.com/aws/aws-sdk-go-v2/service/backup v1.39.3 h1:mjYDN7CPl0CHrTBe36EKqAAGGXAKy8MXuNF+2qHkVdM= @@ -1306,10 +1306,10 @@ github.com/aws/aws-sdk-go-v2/service/batch v1.46.2 h1:QS0NsLcQjsigdaswnWN/xlqZuC github.com/aws/aws-sdk-go-v2/service/batch v1.46.2/go.mod h1:cAqXVRS4uwp/DsssDOY+Gi2wiDoQ4xgRWaPAX/mJbi8= github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.2 h1:phRK57EADWnti25vt4PoNtsOgD/ZH5ojlm5Netstokk= github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.2/go.mod h1:l/bYZQeSpoxKlYA8gEcQQDqkec+MId5k1g3r/EXpYdg= -github.com/aws/aws-sdk-go-v2/service/bedrock v1.20.2 h1:5lZExZBtvE/iWK387JSMbfLWnVSiGCUB4nZdc413RCs= -github.com/aws/aws-sdk-go-v2/service/bedrock v1.20.2/go.mod h1:o0EnsM4cr3V+xf+dQw3TzeqOSYkxxq7VgGnDsgyjgBw= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.23.2 h1:xy4po1FFPotL07BNMDNDrgivQB9rxi6/rV2+Q4qQQ5M= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.23.2/go.mod h1:gYKKDvLQt8S5EdovDwxZBDTVWa4aC86GixDtsmxcZqM= +github.com/aws/aws-sdk-go-v2/service/bedrock v1.21.0 h1:STFP+23Q1vXMnauv3OWu5vLenuzWPKYeTC1JUHolW8U= +github.com/aws/aws-sdk-go-v2/service/bedrock v1.21.0/go.mod h1:o0EnsM4cr3V+xf+dQw3TzeqOSYkxxq7VgGnDsgyjgBw= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.24.0 h1:NbiMdHggevTwK+YY/4gpPEgt60z7dfdPpznhUR1qi1c= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.24.0/go.mod h1:gYKKDvLQt8S5EdovDwxZBDTVWa4aC86GixDtsmxcZqM= github.com/aws/aws-sdk-go-v2/service/budgets v1.28.2 h1:bHYXDkOhPR44ewGRD+7jU6zAvgqAJfNWQ5tsMp4C+UE= github.com/aws/aws-sdk-go-v2/service/budgets v1.28.2/go.mod h1:VS+/KtauBBdzOBHe4v7LjF0lHb4l5f+/Bwlq6aG/LJ0= github.com/aws/aws-sdk-go-v2/service/chatbot v1.8.2 h1:/q5MHgjvnVjFwXS+DVhfvk8HS9B+TlwcywoDD0+HiyA= @@ -1378,8 +1378,8 @@ github.com/aws/aws-sdk-go-v2/service/connect v1.113.2 h1:h45hg2xWdzhr+eFn7aqfg26 github.com/aws/aws-sdk-go-v2/service/connect v1.113.2/go.mod h1:Cr/NBm+YdRHJg0uHNTIDEF++8IQL207oUsjhTAyS4zE= github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.2 h1:BtBIsvj3F0LrsDoLPSZO9qanyXYoDFmXCNJ3I+X80XI= github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.2/go.mod h1:ZrU0ZA81zcKXOUnC8rvjYddEFB3pl7t9tYCdtIRFAb4= -github.com/aws/aws-sdk-go-v2/service/controltower v1.18.2 h1:IZi4ivxDbOAfCZvEeNhvYwrBANiYF9RE35yczZb4f0Y= -github.com/aws/aws-sdk-go-v2/service/controltower v1.18.2/go.mod h1:15mOn+tmGhx9+TidoQaa8gSBItjFx/A5XT9GV1L+LPc= +github.com/aws/aws-sdk-go-v2/service/controltower v1.18.3 h1:v4aBi2Jw4vGmLv58u5YZduJbbErX8a0ML1+RRWI7Sko= +github.com/aws/aws-sdk-go-v2/service/controltower v1.18.3/go.mod h1:15mOn+tmGhx9+TidoQaa8gSBItjFx/A5XT9GV1L+LPc= github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.28.2 h1:i7yTib7O8olbSmTyW2c5C2asN6GUfMI2RLmdKsc/3e4= github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.28.2/go.mod h1:2Ux5wul+bF0/JIAATf1cv3PWJatZqi/dFt7bRSeYEcU= github.com/aws/aws-sdk-go-v2/service/costexplorer v1.43.2 h1:Tg7kuCaHMCFOW+HhK/maIH7qtkeDbzahqQOUO9c+/L8= @@ -1388,18 +1388,18 @@ github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.10.2 h1:3MtTruznyGml github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.10.2/go.mod h1:khyqDEa/5mT22FwodCCtZN4n+9C62VXwqNiPeAkqYlY= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.42.2 h1:dHQXIHPlijJIBUubNpShhIUooNDUKB/B8nJ6OSsJfmQ= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.42.2/go.mod h1:n9F5nRLYyqBz1khsBptXyceq6ZJG9xqzl2pIyVqYq/8= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.43.0 h1:jb9QBxC7Xh0cSpprVOtzJtlyVbJrnLs0oAplby2sZ78= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.43.0/go.mod h1:+JQlP0jMyl8iWGcUcGzTf+qculjIY+08UN7RKiljmps= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.0 h1:u/zESCIEwz9UoEHFZgITa097TkQZWyrqR5bNHZn/Ozw= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.0/go.mod h1:+JQlP0jMyl8iWGcUcGzTf+qculjIY+08UN7RKiljmps= github.com/aws/aws-sdk-go-v2/service/databrew v1.33.2 h1:M18nqFfXtAgxfGoUaaeJS7x8vfZum5SeGq1+5Iu0DLQ= github.com/aws/aws-sdk-go-v2/service/databrew v1.33.2/go.mod h1:CVFxoBbEUNT6MbNBrDAv2rAZJSuYYLUssU9pyXVQbEc= -github.com/aws/aws-sdk-go-v2/service/dataexchange v1.32.2 h1:Xm45iokXdZeq+gSsl7P3ZLzPnHIAUWdH2RLOEYt342Y= -github.com/aws/aws-sdk-go-v2/service/dataexchange v1.32.2/go.mod h1:s7mEeIfGsxtBz5vAt/0N+cTHrO+jktEyJMuRxhaLQG8= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.0 h1:k6mEvId7/e7VFQHDYERVSIINa/b+9rTs8kASzsS5aQ0= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.0/go.mod h1:s7mEeIfGsxtBz5vAt/0N+cTHrO+jktEyJMuRxhaLQG8= github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.2 h1:RyuqjcKTFUrAcOrORvZTc7OrqO280S8CKBHjNuSQWHY= github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.2/go.mod h1:s5RnNkqKX4CuWw48LUh0l18kxmcY1ft7Vz1uZOogxmk= github.com/aws/aws-sdk-go-v2/service/datasync v1.42.2 h1:mNOyYZFjd3CakcvYIVCmqXFZ0pZJSGobtDx5UciBLOc= github.com/aws/aws-sdk-go-v2/service/datasync v1.42.2/go.mod h1:qWAvIKfkNqX/IN0sXwOiq73zzSCW/Ar96mHbfY/5D9c= -github.com/aws/aws-sdk-go-v2/service/datazone v1.22.2 h1:d/oy2uO4xd8CdUvpPBtdMcyicNvmjcv1FMR2uz8GeAQ= -github.com/aws/aws-sdk-go-v2/service/datazone v1.22.2/go.mod h1:vP3xFM0eQ1QJiEyoLeMQQZFPyVDyAiz8oZT6Oyktc44= +github.com/aws/aws-sdk-go-v2/service/datazone v1.23.0 h1:vPcABuqO6byiCK1ziiuqRGhwJIZ5olcLIVqdfsVjnLc= +github.com/aws/aws-sdk-go-v2/service/datazone v1.23.0/go.mod h1:vP3xFM0eQ1QJiEyoLeMQQZFPyVDyAiz8oZT6Oyktc44= github.com/aws/aws-sdk-go-v2/service/dax v1.23.2 h1:sa4Tc0fyVoQ4TYTpYEts24eme3A/gJ8JtJ8ivPnmZfU= github.com/aws/aws-sdk-go-v2/service/dax v1.23.2/go.mod h1:I0tRaWbXqL20SQYLpkj/SMfF7DWn2uixcWh6wgxPmIA= github.com/aws/aws-sdk-go-v2/service/detective v1.31.2 h1:YNJKvWXuq2bSP7gGiiUAFovKsIfRroQ+hrH7jAUN0IE= @@ -1422,18 +1422,18 @@ github.com/aws/aws-sdk-go-v2/service/drs v1.30.2 h1:x3Npo3YynC7zY+2NBo7BGpyJ2FQ6 github.com/aws/aws-sdk-go-v2/service/drs v1.30.2/go.mod h1:J+ZP4mpSfSaWNFekoJULiHE2yZBzjYRMtWSlQhjZUQY= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.2 h1:kJqyYcGqhWFmXqjRrtFFD4Oc9FXiskhsll2xnlpe8Do= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.2/go.mod h1:+t2Zc5VNOzhaWzpGE+cEYZADsgAAQT5v55AO+fhU+2s= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.182.0 h1:LaeziEhHZ/SJZYBK223QVzl3ucHvA9IP4tQMcxGrc9I= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.182.0/go.mod h1:kYXaB4FzyhEJjvrJ84oPnMElLiEAjGxxUunVW2tBSng= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.184.0 h1:SZnuDlml1uFv5ojh+QTxS+Yru89Hr3QYIUwWoY71frI= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.184.0/go.mod h1:kYXaB4FzyhEJjvrJ84oPnMElLiEAjGxxUunVW2tBSng= github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 h1:VDQaVwGOokbd3VUbHF+wupiffdrbAZPdQnr5XZMJqrs= github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2/go.mod h1:lvUlMghKYmSxSfv0vU7pdU/8jSY+s0zpG8xXhaGKCw0= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.2 h1:Zru9Iy2JPM5+uRnFnoqeOZzi8JIVIHJ0ua6JdeDHcyg= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.2/go.mod h1:PtQC3XjutCYFCn1+i8+wtpDaXvEK+vXF2gyLIKAmh4A= -github.com/aws/aws-sdk-go-v2/service/ecs v1.47.3 h1:4eCmSyAxsmZ1i8Bf3YoXX0XXx4hN1G4Y+ujCY4/VYHE= -github.com/aws/aws-sdk-go-v2/service/ecs v1.47.3/go.mod h1:sMFLFhL27cKYa/eQYZp4asvIwHsnJWrAzTUpy9AQdnU= +github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4 h1:CTkPGE8fiElvLtYWl/U+Eu5+1fVXiZbJUjyVCRSRgxk= +github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4/go.mod h1:sMFLFhL27cKYa/eQYZp4asvIwHsnJWrAzTUpy9AQdnU= github.com/aws/aws-sdk-go-v2/service/efs v1.33.2 h1:ePgaKeaN4kXAqzxvDsSilIIq+jftioJb4KXRobIM6ko= github.com/aws/aws-sdk-go-v2/service/efs v1.33.2/go.mod h1:ZEnNWIxtJp/3H1pPE+IZE4exGTJkAdoGfpM5m5/evxo= -github.com/aws/aws-sdk-go-v2/service/eks v1.50.2 h1:vL3RqZ4x6uqpKswp5gB0KyGcsrgkUdKmLTXCDHDUUZw= -github.com/aws/aws-sdk-go-v2/service/eks v1.50.2/go.mod h1:oaPCqTzAe8C5RQZJGRD4RENcV7A4n99uGxbD4rULbNg= +github.com/aws/aws-sdk-go-v2/service/eks v1.51.0 h1:BYyB+byjQ7oyupe3v+YjTp1yfmfNEwChYA2naCc85xI= +github.com/aws/aws-sdk-go-v2/service/eks v1.51.0/go.mod h1:oaPCqTzAe8C5RQZJGRD4RENcV7A4n99uGxbD4rULbNg= github.com/aws/aws-sdk-go-v2/service/elasticache v1.43.0 h1:rebYexCOCdOpR1zU1ObUIn+or4pS38W1IVQGKzZcSos= github.com/aws/aws-sdk-go-v2/service/elasticache v1.43.0/go.mod h1:pfx/wDobZvEpxE96P1i0nHbTYEJMCCMv3uMk7UPvdsE= github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.28.2 h1:La4LqsDHSMdCKoYzKs5b20wSYHfvc6xFBb8OAPDFuGg= @@ -1462,8 +1462,8 @@ github.com/aws/aws-sdk-go-v2/service/firehose v1.34.2 h1:9uMAwYszi6P6FTbUVq1X6MM github.com/aws/aws-sdk-go-v2/service/firehose v1.34.2/go.mod h1:yGI4W+5bau/K+JNUGepk4lwqLPt77Le6bLL8XrmKAMY= github.com/aws/aws-sdk-go-v2/service/fis v1.30.2 h1:qw7ZkSCy0akQJbJdIgRQaqXEHe7PrA3DHvE4VvemFJw= github.com/aws/aws-sdk-go-v2/service/fis v1.30.2/go.mod h1:CArS66NFuL1fBiSLVfWZV6oQjicsdViLm7Ic9Lte7x4= -github.com/aws/aws-sdk-go-v2/service/fms v1.37.2 h1:TwT5oa4EUI2O97pPSzLQmJH/4R1aqV+ucnMatvksjXE= -github.com/aws/aws-sdk-go-v2/service/fms v1.37.2/go.mod h1:sWvDxD23qcn9nbwvVfCmXOQx2HufC9n76agqoio9pfg= +github.com/aws/aws-sdk-go-v2/service/fms v1.38.0 h1:GcVv0jgW1fXkNkDFYVQTfpkYB+J4UBXXQ69Epx8MzyE= +github.com/aws/aws-sdk-go-v2/service/fms v1.38.0/go.mod h1:sWvDxD23qcn9nbwvVfCmXOQx2HufC9n76agqoio9pfg= github.com/aws/aws-sdk-go-v2/service/fsx v1.49.2 h1:Wc2N860CGBc3GJTqfucK7IvQCtGECZXOrHACyFth3sI= github.com/aws/aws-sdk-go-v2/service/fsx v1.49.2/go.mod h1:sk7ZHm49x4rJzJAfeo1dl43sCL26lZx5/Yx2b2VUJkU= github.com/aws/aws-sdk-go-v2/service/gamelift v1.36.2 h1:YN63wWC/rOHKr2sKdCQ7d8GA1xkWpiAqxDeZEBRxvqg= @@ -1488,6 +1488,8 @@ github.com/aws/aws-sdk-go-v2/service/iam v1.37.2 h1:E7vCDUFeDN8uOk8Nb2d4E1howWS1 github.com/aws/aws-sdk-go-v2/service/iam v1.37.2/go.mod h1:QzMecFrIFYJ1cyxjlUoIFRzYSDX19gdqYUd0Tyws2J8= github.com/aws/aws-sdk-go-v2/service/identitystore v1.27.2 h1:QSrf6HsounqUtlFAwArhVNHPt3WXmSm0pz7RtojjBdo= github.com/aws/aws-sdk-go-v2/service/identitystore v1.27.2/go.mod h1:PtkL4CXOQy84zudggyFtyJFXCGDRY8igg9Nfo9df1sU= +github.com/aws/aws-sdk-go-v2/service/imagebuilder v1.38.0 h1:+gsGZbypyP+atqTDsrtaKe26TgrONg3z6rLTm5RmIhg= +github.com/aws/aws-sdk-go-v2/service/imagebuilder v1.38.0/go.mod h1:hqe5ZWGAMgZC14I2GrXc+tUPpucDfGb94RB/7IOdQ/o= github.com/aws/aws-sdk-go-v2/service/inspector v1.25.2 h1:xiQ70pTvXs9PFYmewDgeICVxRpiQP+cWQZmunV5uYKk= github.com/aws/aws-sdk-go-v2/service/inspector v1.25.2/go.mod h1:sDcAla3dh7DO6AAdh+29e+rowLaIcw2fxuwNFCIlBuA= github.com/aws/aws-sdk-go-v2/service/inspector2 v1.32.2 h1:D0nDW7y3KLPGShqF7gaKFRswY8ekG8jsfN4r3CWqAjQ= @@ -1550,8 +1552,8 @@ github.com/aws/aws-sdk-go-v2/service/location v1.42.2 h1:QeEPlMSVn/GtUGVz/G9FBFV github.com/aws/aws-sdk-go-v2/service/location v1.42.2/go.mod h1:nCDXuPUnJLC/PvDh6iXjM/4LIUak0MTzXamdVn9Typk= github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.2 h1:xq/m847nPu/qjcGWfT5AMmLfmb0Z8RzYmsiPQCnqWRg= github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.2/go.mod h1:sWTm2Cszymy7WYqCuLvw/Zvzy1t08ceZP6Brpo7COY0= -github.com/aws/aws-sdk-go-v2/service/m2 v1.17.2 h1:2U0/1YSsugrRPnSa9WSPQqBEt5/8ZuTPwYhSFjndIzY= -github.com/aws/aws-sdk-go-v2/service/m2 v1.17.2/go.mod h1:HWB51wlVsdbT1BrpH4BYrgpxhc012ja8je2TTwjzr/0= +github.com/aws/aws-sdk-go-v2/service/m2 v1.18.0 h1:4yncbqHQ5TmL+AElqjSIppgEvCiNgboMDk0FcQ5qSW8= +github.com/aws/aws-sdk-go-v2/service/m2 v1.18.0/go.mod h1:HWB51wlVsdbT1BrpH4BYrgpxhc012ja8je2TTwjzr/0= github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.2 h1:MbR0vRNd7am1So5hcYho+N11dxzhZbB4qdsi+cmcBp0= github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.2/go.mod h1:B2FFzz9qQQ8l3MZV/MjMi4ua9VbqcQK8Huuv6066RZ8= github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.35.2 h1:AibWQdB6x5CTlJ11/C0wp+fAUUKmCFLwU5H4h9kov0c= @@ -1604,10 +1606,10 @@ github.com/aws/aws-sdk-go-v2/service/pcs v1.2.2 h1:UGa4l3NHvmTWb+tbaNrpqYt0jHgiQ github.com/aws/aws-sdk-go-v2/service/pcs v1.2.2/go.mod h1:IisjjF5pkMDOaPgMt3XtIp4ovE0eIghP6Xt4UjZOejs= github.com/aws/aws-sdk-go-v2/service/pinpoint v1.34.2 h1:2M25NsmsuIgFd4JLfcrgOhaikgJ77QghJitjCJM2fRM= github.com/aws/aws-sdk-go-v2/service/pinpoint v1.34.2/go.mod h1:MXITGxBf1myinMhDcLjx/8dskl5uwwOkjQuSk97mBe0= -github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.15.2 h1:2c/NwrSaSvoMIUeNIaFlF7OODfzAt/Pfm73ytyRkKUk= -github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.15.2/go.mod h1:jndiYCP1PdoEayQPElKL+m9Rg6sG+TElnL04eNBPZa4= -github.com/aws/aws-sdk-go-v2/service/pipes v1.17.2 h1:M6llQCYVeHTlLBK45YcwXpmQptmI/at47l3QXnGY6rU= -github.com/aws/aws-sdk-go-v2/service/pipes v1.17.2/go.mod h1:XtWK2mf8LxoRhiuidG/bsHd/kOGUijNkS2MKu5Yz2ZY= +github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.16.0 h1:oqt4D9ke97Mry5q6RWxRavlq+Z/mppBUGunongcrP5I= +github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.16.0/go.mod h1:jndiYCP1PdoEayQPElKL+m9Rg6sG+TElnL04eNBPZa4= +github.com/aws/aws-sdk-go-v2/service/pipes v1.18.0 h1:G6JDBcdwWA+c4pUrf1L6N7qx+l7nDhQyEHpwjxrj5vI= +github.com/aws/aws-sdk-go-v2/service/pipes v1.18.0/go.mod h1:XtWK2mf8LxoRhiuidG/bsHd/kOGUijNkS2MKu5Yz2ZY= github.com/aws/aws-sdk-go-v2/service/polly v1.45.2 h1:8SxFBXQz6ugH4+/91nQlYMHGpH4pdFDSOin+oQnMvJ8= github.com/aws/aws-sdk-go-v2/service/polly v1.45.2/go.mod h1:PAg+2IgPApH1b/uKkuf30SV6JTzew21vz0ztIFFas/M= github.com/aws/aws-sdk-go-v2/service/pricing v1.32.2 h1:eBKzA9Te6JHD1TfVjuja7pa8iEdXVzW5z0QPcbrPhNs= @@ -1616,14 +1618,14 @@ github.com/aws/aws-sdk-go-v2/service/qbusiness v1.14.0 h1:o+1+kyTMk1Wxiegc6tFGhY github.com/aws/aws-sdk-go-v2/service/qbusiness v1.14.0/go.mod h1:O4hOPHq3wkF16n15JtVWRfHV9FgR9cWVK+ZEiVrZQt4= github.com/aws/aws-sdk-go-v2/service/qldb v1.25.2 h1:4JPtMnMSUvNI0WmbmS6z3PrnFaYMivMOM61RaXlqFs4= github.com/aws/aws-sdk-go-v2/service/qldb v1.25.2/go.mod h1:LmPnnHoe1VWC1pnVVBP2IMJ2i/Fc70C9yamwgmwOyA4= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.76.2 h1:kne8Igc11d2/rTfrjDql4Eg5CAl/EC2VXbagPgeEqHQ= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.76.2/go.mod h1:q9eOAAmLIZKHy+3ONua6b/WW2HwdtyVb8gUSBbh8Ejs= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.77.0 h1:rduomqww7uQsAZhwOQeKbjSk37v7gvuBLcGytuhFT6Q= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.77.0/go.mod h1:q9eOAAmLIZKHy+3ONua6b/WW2HwdtyVb8gUSBbh8Ejs= github.com/aws/aws-sdk-go-v2/service/ram v1.29.2 h1:MzE8+xBV5omQ8aP7I2XarPS1bORO3tHpJcyCkMQQa+8= github.com/aws/aws-sdk-go-v2/service/ram v1.29.2/go.mod h1:/rvsX6270oRGq4zBWQlFAenU4144KSJcaOFrDffHsjk= github.com/aws/aws-sdk-go-v2/service/rbin v1.20.2 h1:U+BnnWf3/yxyTQO5GBXkFO9S2lxJwtEcHskMSNIqqE0= github.com/aws/aws-sdk-go-v2/service/rbin v1.20.2/go.mod h1:B7r89tuqcg/tnDE5rtukNU1irjRhC+S10GjEFIFAj1M= -github.com/aws/aws-sdk-go-v2/service/rds v1.87.2 h1:EUBCpvWYJRDV+baakcOlytZsEnjq21dBBw+di4q5TUE= -github.com/aws/aws-sdk-go-v2/service/rds v1.87.2/go.mod h1:KziDa/w2AVz3dfANxwuBV0XqoQjxTKbVQyLNH5BRvO4= +github.com/aws/aws-sdk-go-v2/service/rds v1.88.0 h1:QdpwmIB0ZZN/devOnw+dJSF2VFnmn3LM5kuEKQ0kpj0= +github.com/aws/aws-sdk-go-v2/service/rds v1.88.0/go.mod h1:KziDa/w2AVz3dfANxwuBV0XqoQjxTKbVQyLNH5BRvO4= github.com/aws/aws-sdk-go-v2/service/redshift v1.50.0 h1:AT056ID/JR3pCAhwpak11ATQ6wRtaQpFqoJYjoEG7aM= github.com/aws/aws-sdk-go-v2/service/redshift v1.50.0/go.mod h1:LuUSvbRK6lNleFaeXOm3gJxnnau2qoZd1wPU7DwjS4w= github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.30.2 h1:nghfgMfAqF3xl783g5Ig0UZafPMNAHm+Bx8G2l63aEg= @@ -1656,8 +1658,8 @@ github.com/aws/aws-sdk-go-v2/service/route53resolver v1.33.0 h1:CBZvorZuZJOtHRnM github.com/aws/aws-sdk-go-v2/service/route53resolver v1.33.0/go.mod h1:hw1tbJqbXUc5KzxQjgMhxQ7jrvlJHEnnvpBbrpECoy4= github.com/aws/aws-sdk-go-v2/service/rum v1.21.2 h1:/Pkl6B1xo1Q+/O31/M6+jIu/8DxyNR4R/7BUbTrpG5M= github.com/aws/aws-sdk-go-v2/service/rum v1.21.2/go.mod h1:TdJqY9exgK2kZ9ltoAubxiJ+a+mfF4qLYXsQaI1JkUI= -github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3 h1:xxHGZ+wUgZNACQmxtdvP5tgzfsxGS3vPpTP5Hy3iToE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0 h1:xA6XhTF7PE89BCNHJbQi8VvPzcgMtmGC5dr8S8N7lHk= +github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8= github.com/aws/aws-sdk-go-v2/service/s3control v1.49.2 h1:W1nwi6M/LfTRO8bPw9wlKJ1tDy1tIT4fytBsHXpIRIw= github.com/aws/aws-sdk-go-v2/service/s3control v1.49.2/go.mod h1:+EAvXfnipjpvEfaKWS98sgU7KgzEuH4/qxJIeEG+GTY= github.com/aws/aws-sdk-go-v2/service/s3outposts v1.28.2 h1:n5Pq/tEiZFuk6Ylju7zyWjA6tlgOvpBVx7h3KJtMC5k= @@ -1738,8 +1740,8 @@ github.com/aws/aws-sdk-go-v2/service/waf v1.25.2 h1:mGMfHPEXIR1G2mRJ5BGQnksDTt7J github.com/aws/aws-sdk-go-v2/service/waf v1.25.2/go.mod h1:g7m/OfmrD3MK7JHjJ/NBxMy87Mffp1KhNhQIKskMp2U= github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.2 h1:PMBOZsPm34AE5+0FUkBD94hoEdAsRiVNO+V1NcVstWk= github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.2/go.mod h1:Zw9xd/Zg0wMX3V57Pi/KAiQdqXg9ikfdEd0IK83v9B0= -github.com/aws/aws-sdk-go-v2/service/wafv2 v1.54.2 h1:SXwBXwm13cbQKjV3nt7Fkkxs/blH3lrbV9aKdjT+Zmk= -github.com/aws/aws-sdk-go-v2/service/wafv2 v1.54.2/go.mod h1:0omlXhQY21zKfGkdIfufpV7kLt564XtjQcywixaNXrM= +github.com/aws/aws-sdk-go-v2/service/wafv2 v1.55.0 h1:sS3SDk8EugdW+KW56VR6qcEg8JpC8pNLVICVBr8mMb4= +github.com/aws/aws-sdk-go-v2/service/wafv2 v1.55.0/go.mod h1:0omlXhQY21zKfGkdIfufpV7kLt564XtjQcywixaNXrM= github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.34.2 h1:uhOu5pbceq96a/0nWtf/2Drt/M9hh94ic5d4LaEdFzE= github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.34.2/go.mod h1:VJNJ9aES48jXBIc74SZnP0KmQr6Fku2eYHSV8854qpc= github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2 h1:VN3Qydtdl3UlJRHVxQxSP1d8I5gtvT5zdaCCAfZST7Y= @@ -2178,8 +2180,8 @@ github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 h1:gm5b1kHgFFhaK github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1/go.mod h1:MsjL1sQ9L7wGwzJ5RjcI6FzEMdyoBnw+XK8ZnOvQOLY= github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 h1:v3DapR8gsp3EM8fKMh6up9cJUFQ2iRaFsYLP8UJnCco= github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0/go.mod h1:c3PnGE9pHBDfdEVG9t1S1C9ia5LW+gkFR0CygXlM8ak= -github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E= -github.com/hashicorp/terraform-plugin-framework-validators v0.13.0/go.mod h1:wGeI02gEhj9nPANU62F2jCaHjXulejm/X+af4PdZaNo= +github.com/hashicorp/terraform-plugin-framework-validators v0.14.0 h1:3PCn9iyzdVOgHYOBmncpSSOxjQhCTYmc+PGvbdlqSaI= +github.com/hashicorp/terraform-plugin-framework-validators v0.14.0/go.mod h1:LwDKNdzxrDY/mHBrlC6aYfE2fQ3Dk3gaJD64vNiXvo4= github.com/hashicorp/terraform-plugin-go v0.22.0/go.mod h1:mPULV91VKss7sik6KFEcEu7HuTogMLLO/EvWCuFkRVE= github.com/hashicorp/terraform-plugin-go v0.24.0 h1:2WpHhginCdVhFIrWHxDEg6RBn3YaWzR2o6qUeIEat2U= github.com/hashicorp/terraform-plugin-go v0.24.0/go.mod h1:tUQ53lAsOyYSckFGEefGC5C8BAaO0ENqzFd3bQeuYQg= diff --git a/patches/0002-Add-S3-legacy-bucket-to-resources.patch b/patches/0002-Add-S3-legacy-bucket-to-resources.patch index 3c93f551849..ad274dc832e 100644 --- a/patches/0002-Add-S3-legacy-bucket-to-resources.patch +++ b/patches/0002-Add-S3-legacy-bucket-to-resources.patch @@ -14,7 +14,7 @@ scheme for registration: see https://github.com/hashicorp/terraform-provider-aws/pull/29717. diff --git a/internal/provider/provider.go b/internal/provider/provider.go -index 08f2e6ee07..75389aad3d 100644 +index b048f661fe..b6521d3f55 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -14,6 +14,8 @@ import ( diff --git a/patches/0004-De-deprecate-bucket_object.patch b/patches/0004-De-deprecate-bucket_object.patch index f10f0bf92f8..2a26e0e13be 100644 --- a/patches/0004-De-deprecate-bucket_object.patch +++ b/patches/0004-De-deprecate-bucket_object.patch @@ -5,10 +5,10 @@ Subject: [PATCH] De-deprecate bucket_object diff --git a/internal/service/s3/bucket_object.go b/internal/service/s3/bucket_object.go -index 7030b9cdb1..6e42e471c0 100644 +index 631a49255c..f20c66ca2e 100644 --- a/internal/service/s3/bucket_object.go +++ b/internal/service/s3/bucket_object.go -@@ -71,7 +71,7 @@ func resourceBucketObject() *schema.Resource { +@@ -70,7 +70,7 @@ func resourceBucketObject() *schema.Resource { Computed: true, }, names.AttrBucket: { @@ -17,7 +17,7 @@ index 7030b9cdb1..6e42e471c0 100644 Type: schema.TypeString, Required: true, ForceNew: true, -@@ -128,7 +128,7 @@ func resourceBucketObject() *schema.Resource { +@@ -127,7 +127,7 @@ func resourceBucketObject() *schema.Resource { Default: false, }, names.AttrKey: { @@ -26,7 +26,7 @@ index 7030b9cdb1..6e42e471c0 100644 Type: schema.TypeString, Required: true, ForceNew: true, -@@ -201,7 +201,9 @@ func resourceBucketObject() *schema.Resource { +@@ -193,7 +193,9 @@ func resourceBucketObject() *schema.Resource { }, }, diff --git a/patches/0009-Add-ECR-credentials_data_source.patch b/patches/0009-Add-ECR-credentials_data_source.patch index 393c4947b50..2356a78f899 100644 --- a/patches/0009-Add-ECR-credentials_data_source.patch +++ b/patches/0009-Add-ECR-credentials_data_source.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add ECR credentials_data_source diff --git a/internal/provider/provider.go b/internal/provider/provider.go -index 75389aad3d..aa05ae4790 100644 +index b6521d3f55..c7c3935b94 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -14,6 +14,8 @@ import ( diff --git a/patches/0014-add-matchmaking-configuration-72.patch b/patches/0014-add-matchmaking-configuration-72.patch index 030cdc6ec77..b9e73871179 100644 --- a/patches/0014-add-matchmaking-configuration-72.patch +++ b/patches/0014-add-matchmaking-configuration-72.patch @@ -10,7 +10,7 @@ Subject: [PATCH] add matchmaking configuration (#72) * add resource docs diff --git a/internal/provider/provider.go b/internal/provider/provider.go -index aa05ae4790..3b939a83f3 100644 +index c7c3935b94..30ebfcf0f3 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -16,6 +16,7 @@ import ( diff --git a/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch b/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch index f615a8d8c27..091f91960b4 100644 --- a/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch +++ b/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch @@ -278,7 +278,7 @@ index 6812406afa..bc44534a05 100644 names.AttrName: { Type: schema.TypeString, diff --git a/internal/service/route53/record.go b/internal/service/route53/record.go -index aeef59b958..abac8702c5 100644 +index e845687f06..87e1dd26d3 100644 --- a/internal/service/route53/record.go +++ b/internal/service/route53/record.go @@ -360,7 +360,7 @@ func resourceRecordCreate(ctx context.Context, d *schema.ResourceData, meta inte @@ -290,7 +290,7 @@ index aeef59b958..abac8702c5 100644 }, HostedZoneId: aws.String(cleanZoneID(aws.ToString(zoneRecord.HostedZone.Id))), } -@@ -662,7 +662,7 @@ func resourceRecordUpdate(ctx context.Context, d *schema.ResourceData, meta inte +@@ -664,7 +664,7 @@ func resourceRecordUpdate(ctx context.Context, d *schema.ResourceData, meta inte ResourceRecordSet: expandResourceRecordSet(d, aws.ToString(zoneRecord.HostedZone.Name)), }, }, @@ -299,7 +299,7 @@ index aeef59b958..abac8702c5 100644 }, HostedZoneId: aws.String(cleanZoneID(aws.ToString(zoneRecord.HostedZone.Id))), } -@@ -729,7 +729,7 @@ func resourceRecordDelete(ctx context.Context, d *schema.ResourceData, meta inte +@@ -731,7 +731,7 @@ func resourceRecordDelete(ctx context.Context, d *schema.ResourceData, meta inte ResourceRecordSet: rec, }, }, diff --git a/patches/0026-Restore-S3ConnURICleaningDisabled.patch b/patches/0026-Restore-S3ConnURICleaningDisabled.patch index d60912c4928..e41c89cce9b 100644 --- a/patches/0026-Restore-S3ConnURICleaningDisabled.patch +++ b/patches/0026-Restore-S3ConnURICleaningDisabled.patch @@ -5,32 +5,10 @@ Subject: [PATCH] Restore S3ConnURICleaningDisabled diff --git a/internal/conns/awsclient.go b/internal/conns/awsclient.go -index f31b7a7ef2..dde69d462d 100644 +index 9425b4a16d..ddfe9d8849 100644 --- a/internal/conns/awsclient.go +++ b/internal/conns/awsclient.go -@@ -17,6 +17,7 @@ import ( - apigatewayv2_types "github.com/aws/aws-sdk-go-v2/service/apigatewayv2/types" - s3_sdkv2 "github.com/aws/aws-sdk-go-v2/service/s3" - session_sdkv1 "github.com/aws/aws-sdk-go/aws/session" -+ s3_sdkv1 "github.com/aws/aws-sdk-go/service/s3" - baselogging "github.com/hashicorp/aws-sdk-go-base/v2/logging" - "github.com/hashicorp/terraform-plugin-log/tflog" - "github.com/hashicorp/terraform-provider-aws/internal/errs" -@@ -104,6 +105,13 @@ func (c *AWSClient) S3UsePathStyle(context.Context) bool { - return c.s3UsePathStyle - } - -+func (client *AWSClient) S3ConnURICleaningDisabled(ctx context.Context) *s3_sdkv1.S3 { -+ config := client.S3Conn(ctx).Config -+ config.DisableRestProtocolURICleaning = aws_sdkv2.Bool(true) -+ -+ return s3_sdkv1.New(client.session.Copy(&config)) -+} -+ - // SetHTTPClient sets the http.Client used for AWS API calls. - // To have effect it must be called before the AWS SDK v1 Session is created. - func (c *AWSClient) SetHTTPClient(_ context.Context, httpClient *http.Client) { -@@ -169,7 +177,7 @@ func (c *AWSClient) DefaultKMSKeyPolicy(context.Context) string { +@@ -182,7 +182,7 @@ func (c *AWSClient) DefaultKMSKeyPolicy(context.Context) string { "Resource": "*" } ] @@ -39,3 +17,31 @@ index f31b7a7ef2..dde69d462d 100644 `, c.Partition, c.AccountID) } +diff --git a/internal/conns/awsclient_extra.go b/internal/conns/awsclient_extra.go +new file mode 100644 +index 0000000000..96c809fc47 +--- /dev/null ++++ b/internal/conns/awsclient_extra.go +@@ -0,0 +1,22 @@ ++// Copyright (c) HashiCorp, Inc. ++// SPDX-License-Identifier: MPL-2.0 ++ ++package conns ++ ++import ( ++ "context" ++ ++ s3_sdkv1 "github.com/aws/aws-sdk-go/service/s3" ++) ++ ++func (c *AWSClient) S3Conn(ctx context.Context) *s3_sdkv1.S3 { ++ return errs.Must(conn[*s3_sdkv1.S3](ctx, c, names.S3, make(map[string]any))) ++} ++ ++func (client *AWSClient) S3ConnURICleaningDisabled(ctx context.Context) *s3_sdkv1.S3 { ++ config := client.S3Conn(ctx).Config ++ t := true ++ config.DisableRestProtocolURICleaning = &t ++ ++ return s3_sdkv1.New(client.session.Copy(&config)) ++} diff --git a/patches/0027-Do-not-compute-tags_all-at-TF-level.patch b/patches/0027-Do-not-compute-tags_all-at-TF-level.patch index e093d72073a..9956b8f405e 100644 --- a/patches/0027-Do-not-compute-tags_all-at-TF-level.patch +++ b/patches/0027-Do-not-compute-tags_all-at-TF-level.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Do not compute tags_all at TF level diff --git a/internal/framework/resource_with_configure.go b/internal/framework/resource_with_configure.go -index a415a989a8..9a3f8eea5c 100644 +index 6ece15b4f4..89844a1233 100644 --- a/internal/framework/resource_with_configure.go +++ b/internal/framework/resource_with_configure.go @@ -30,6 +30,11 @@ func (r *ResourceWithConfigure) Configure(_ context.Context, request resource.Co @@ -21,7 +21,7 @@ index a415a989a8..9a3f8eea5c 100644 if request.Plan.Raw.IsNull() { return diff --git a/internal/provider/fwprovider/provider.go b/internal/provider/fwprovider/provider.go -index 95563b9882..5ed49e758f 100644 +index c29a9f9b7d..3eebe2feb9 100644 --- a/internal/provider/fwprovider/provider.go +++ b/internal/provider/fwprovider/provider.go @@ -430,8 +430,8 @@ func (p *fwprovider) Resources(ctx context.Context) []func() resource.Resource { @@ -231,110 +231,20 @@ index 789e374885..d5a771ce81 100644 Blocks: map[string]schema.Block{ names.AttrTimeouts: timeouts.Block(ctx, timeouts.Opts{ diff --git a/internal/verify/diff.go b/internal/verify/diff.go -index 95c63b9f8d..e0636e99ce 100644 +index afffb80b4a..afb980ec65 100644 --- a/internal/verify/diff.go +++ b/internal/verify/diff.go -@@ -5,101 +5,12 @@ package verify - - import ( - "context" -- "fmt" - "time" - - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" -- "github.com/hashicorp/terraform-provider-aws/internal/conns" -- tftags "github.com/hashicorp/terraform-provider-aws/internal/tags" - ) - --// Find JSON diff functions in the json.go file. -- --// SetTagsDiff sets the new plan difference with the result of --// merging resource tags on to those defined at the provider-level; --// returns an error if unsuccessful or if the resource tags are identical --// to those configured at the provider-level to avoid non-empty plans --// after resource READ operations as resource and provider-level tags --// will be indistinguishable when returned from an AWS API. +@@ -22,6 +22,11 @@ import ( + // after resource READ operations as resource and provider-level tags + // will be indistinguishable when returned from an AWS API. func SetTagsDiff(ctx context.Context, diff *schema.ResourceDiff, meta interface{}) error { -- defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig(ctx) -- ignoreTagsConfig := meta.(*conns.AWSClient).IgnoreTagsConfig -- -- resourceTags := tftags.New(ctx, diff.Get("tags").(map[string]interface{})) -- -- allTags := defaultTagsConfig.MergeTags(resourceTags).IgnoreConfig(ignoreTagsConfig) -- // To ensure "tags_all" is correctly computed, we explicitly set the attribute diff -- // when the merger of resource-level tags onto provider-level tags results in n > 0 tags, -- // otherwise we mark the attribute as "Computed" only when there is a known diff (excluding an empty map) -- // or a change for "tags_all". -- // Reference: https://github.com/hashicorp/terraform-provider-aws/issues/18366 -- // Reference: https://github.com/hashicorp/terraform-provider-aws/issues/19005 -- -- if !diff.GetRawPlan().GetAttr("tags").IsWhollyKnown() { -- if err := diff.SetNewComputed("tags_all"); err != nil { -- return fmt.Errorf("setting tags_all to computed: %w", err) -- } -- return nil -- } -- -- if diff.HasChange("tags") { -- _, n := diff.GetChange("tags") -- newTags := tftags.New(ctx, n.(map[string]interface{})) -- -- if newTags.HasZeroValue() { -- if err := diff.SetNewComputed("tags_all"); err != nil { -- return fmt.Errorf("setting tags_all to computed: %w", err) -- } -- } -- -- if len(allTags) > 0 && (!newTags.HasZeroValue() || !allTags.HasZeroValue()) { -- if err := diff.SetNew("tags_all", allTags.Map()); err != nil { -- return fmt.Errorf("setting new tags_all diff: %w", err) -- } -- } -- -- if len(allTags) == 0 { -- if err := diff.SetNew("tags_all", allTags.Map()); err != nil { -- return fmt.Errorf("setting new tags_all diff: %w", err) -- } -- } -- } else if !diff.HasChange("tags") { -- if len(allTags) > 0 && !allTags.HasZeroValue() { -- if err := diff.SetNew("tags_all", allTags.Map()); err != nil { -- return fmt.Errorf("setting new tags_all diff: %w", err) -- } -- return nil -- } -- -- var ta tftags.KeyValueTags -- if tagsAll, ok := diff.Get("tags_all").(map[string]interface{}); ok { -- ta = tftags.New(ctx, tagsAll) -- } -- if len(allTags) > 0 && !ta.DeepEqual(allTags) && allTags.HasZeroValue() { -- if err := diff.SetNewComputed("tags_all"); err != nil { -- return fmt.Errorf("setting tags_all to computed: %w", err) -- } -- return nil -- } -- } else if tagsAll, ok := diff.Get("tags_all").(map[string]interface{}); ok { -- ta := tftags.New(ctx, tagsAll) -- if !ta.DeepEqual(allTags) { -- if allTags.HasZeroValue() { -- if err := diff.SetNewComputed("tags_all"); err != nil { -- return fmt.Errorf("setting tags_all to computed: %w", err) -- } -- } -- } -- } else if len(diff.Get("tags_all").(map[string]interface{})) > 0 { -- if err := diff.SetNewComputed("tags_all"); err != nil { -- return fmt.Errorf("setting tags_all to computed: %w", err) -- } -- } else if diff.HasChange("tags_all") { -- if err := diff.SetNewComputed("tags_all"); err != nil { -- return fmt.Errorf("setting tags_all to computed: %w", err) -- } -- } -- - return nil - } ++ // Pulumi handles tags differently for Plugin Framework. ++ if 1+2 == 3 { ++ return nil ++ } ++ + defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig(ctx) + ignoreTagsConfig := meta.(*conns.AWSClient).IgnoreTagsConfig(ctx) diff --git a/shim/shim.go b/shim/shim.go index 2af7c06925..ce64074bfd 100644 diff --git a/patches/0030-Optimize-startup-performance.patch b/patches/0030-Optimize-startup-performance.patch index 2fbcda4165d..6dfc9baa96d 100644 --- a/patches/0030-Optimize-startup-performance.patch +++ b/patches/0030-Optimize-startup-performance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Optimize startup performance diff --git a/internal/provider/provider.go b/internal/provider/provider.go -index 3b939a83f3..026e936537 100644 +index 30ebfcf0f3..4c83f4bb1c 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -317,7 +317,7 @@ func New(ctx context.Context) (*schema.Provider, error) { diff --git a/patches/0031-DisableTagSchemaCheck-for-PF-provider.patch b/patches/0031-DisableTagSchemaCheck-for-PF-provider.patch index 5e6a91f2e4c..b0d033e58f2 100644 --- a/patches/0031-DisableTagSchemaCheck-for-PF-provider.patch +++ b/patches/0031-DisableTagSchemaCheck-for-PF-provider.patch @@ -5,7 +5,7 @@ Subject: [PATCH] DisableTagSchemaCheck for PF provider diff --git a/internal/provider/fwprovider/provider.go b/internal/provider/fwprovider/provider.go -index 5ed49e758f..20d54caf1f 100644 +index 3eebe2feb9..fe269c207c 100644 --- a/internal/provider/fwprovider/provider.go +++ b/internal/provider/fwprovider/provider.go @@ -417,8 +417,7 @@ func (p *fwprovider) Resources(ctx context.Context) []func() resource.Resource { diff --git a/patches/0033-Fail-fast-when-PF-resources-are-dropped.patch b/patches/0033-Fail-fast-when-PF-resources-are-dropped.patch index 490b9ff54b9..d8bc8051666 100644 --- a/patches/0033-Fail-fast-when-PF-resources-are-dropped.patch +++ b/patches/0033-Fail-fast-when-PF-resources-are-dropped.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fail fast when PF resources are dropped diff --git a/internal/provider/fwprovider/provider.go b/internal/provider/fwprovider/provider.go -index 20d54caf1f..910fccafa9 100644 +index fe269c207c..5eb34590fd 100644 --- a/internal/provider/fwprovider/provider.go +++ b/internal/provider/fwprovider/provider.go @@ -448,9 +448,8 @@ func (p *fwprovider) Resources(ctx context.Context) []func() resource.Resource { 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 4925245d4a4..aaed9f9abc9 100644 --- a/patches/0034-Fix-tags_all-Computed-for-PF-resources.patch +++ b/patches/0034-Fix-tags_all-Computed-for-PF-resources.patch @@ -44,10 +44,10 @@ index 6e8d8de302..af48127242 100644 Blocks: map[string]schema.Block{ "agent_orchestration_config": schema.ListNestedBlock{ diff --git a/internal/service/elasticache/serverless_cache.go b/internal/service/elasticache/serverless_cache.go -index 48cfd92777..e98b584a59 100644 +index bb7f36bf1e..fe8ed6366b 100644 --- a/internal/service/elasticache/serverless_cache.go +++ b/internal/service/elasticache/serverless_cache.go -@@ -176,7 +176,7 @@ func (r *serverlessCacheResource) Schema(ctx context.Context, request resource.S +@@ -181,7 +181,7 @@ func (r *serverlessCacheResource) Schema(ctx context.Context, request resource.S }, }, names.AttrTags: tftags.TagsAttribute(), 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 cb0981c7ccf..99832a19610 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 @@ -6,21 +6,19 @@ Subject: [PATCH] Disable retry for KMS access denied in lambda diff --git a/internal/service/lambda/service_package_extra.go b/internal/service/lambda/service_package_extra.go new file mode 100644 -index 0000000000..ffd7fa9728 +index 0000000000..79867519db --- /dev/null +++ b/internal/service/lambda/service_package_extra.go -@@ -0,0 +1,41 @@ +@@ -0,0 +1,34 @@ +package lambda + +import ( -+ "context" -+ ++ "github.com/aws/aws-sdk-go-v2/aws" + aws_sdkv2 "github.com/aws/aws-sdk-go-v2/aws" + retry_sdkv2 "github.com/aws/aws-sdk-go-v2/aws/retry" -+ lambda_sdkv2 "github.com/aws/aws-sdk-go-v2/service/lambda" ++ "github.com/aws/aws-sdk-go-v2/service/lambda" + tfawserr_sdkv2 "github.com/hashicorp/aws-sdk-go-base/v2/tfawserr" + "github.com/hashicorp/terraform-provider-aws/internal/conns" -+ "github.com/hashicorp/terraform-provider-aws/names" +) + +// Customize lambda retries. @@ -29,8 +27,7 @@ index 0000000000..ffd7fa9728 +// +// https://github.com/hashicorp/terraform-provider-aws/blob/main/docs/retries-and-waiters.md +// https://github.com/pulumi/pulumi-aws/issues/3196 -+func (p *servicePackage) NewClient(ctx context.Context, config map[string]any) (*lambda_sdkv2.Client, error) { -+ cfg := *(config["aws_sdkv2_config"].(*aws_sdkv2.Config)) ++func (p *servicePackage) pulumiCustomizeLambdaRetries(cfg aws.Config) func(*lambda.Options) { + retry := retry_sdkv2.IsErrorRetryableFunc(func(err error) aws_sdkv2.Ternary { + if tfawserr_sdkv2.ErrMessageContains( + err, @@ -43,41 +40,19 @@ index 0000000000..ffd7fa9728 + return aws_sdkv2.UnknownTernary // Delegate + }) + -+ return lambda_sdkv2.NewFromConfig(cfg, -+ lambda_sdkv2.WithEndpointResolverV2(newEndpointResolverSDKv2()), -+ withBaseEndpoint(config[names.AttrEndpoint].(string)), -+ func(o *lambda_sdkv2.Options) { -+ o.Retryer = conns.AddIsErrorRetryables(cfg.Retryer().(aws_sdkv2.RetryerV2), retry) -+ }, -+ ), nil ++ return func(o *lambda.Options) { ++ o.Retryer = conns.AddIsErrorRetryables(cfg.Retryer().(aws_sdkv2.RetryerV2), retry) ++ } +} diff --git a/internal/service/lambda/service_package_gen.go b/internal/service/lambda/service_package_gen.go -index c70ed5f1f4..5b33cca471 100644 +index b787967d5a..c9a8c815a7 100644 --- a/internal/service/lambda/service_package_gen.go +++ b/internal/service/lambda/service_package_gen.go -@@ -5,8 +5,6 @@ package lambda - import ( - "context" - -- aws_sdkv2 "github.com/aws/aws-sdk-go-v2/aws" -- lambda_sdkv2 "github.com/aws/aws-sdk-go-v2/service/lambda" - "github.com/hashicorp/terraform-provider-aws/internal/conns" - "github.com/hashicorp/terraform-provider-aws/internal/types" - "github.com/hashicorp/terraform-provider-aws/names" -@@ -144,16 +142,6 @@ func (p *servicePackage) ServicePackageName() string { - return names.Lambda +@@ -151,6 +151,7 @@ func (p *servicePackage) NewClient(ctx context.Context, config map[string]any) ( + return lambda.NewFromConfig(cfg, + lambda.WithEndpointResolverV2(newEndpointResolverV2()), + withBaseEndpoint(config[names.AttrEndpoint].(string)), ++ p.pulumiCustomizeLambdaRetries(cfg), + ), nil } --// NewClient returns a new AWS SDK for Go v2 client for this service package's AWS API. --func (p *servicePackage) NewClient(ctx context.Context, config map[string]any) (*lambda_sdkv2.Client, error) { -- cfg := *(config["aws_sdkv2_config"].(*aws_sdkv2.Config)) -- -- return lambda_sdkv2.NewFromConfig(cfg, -- lambda_sdkv2.WithEndpointResolverV2(newEndpointResolverSDKv2()), -- withBaseEndpoint(config[names.AttrEndpoint].(string)), -- ), nil --} -- - func ServicePackage(ctx context.Context) conns.ServicePackage { - return &servicePackage{} - } diff --git a/patches/0036-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch b/patches/0036-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch index ee9f94f4f90..64dd90c24a0 100644 --- a/patches/0036-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch +++ b/patches/0036-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch @@ -1,37 +1,46 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy -Date: Fri, 19 Jan 2024 18:08:51 -0500 +Date: Fri, 25 Oct 2024 17:14:36 -0400 Subject: [PATCH] Patch ACM retry to not retry after LimitExceededException (#3290) +diff --git a/internal/service/acm/service_package_extra.go b/internal/service/acm/service_package_extra.go +new file mode 100644 +index 0000000000..b432bed386 +--- /dev/null ++++ b/internal/service/acm/service_package_extra.go +@@ -0,0 +1,21 @@ ++package acm ++ ++import ( ++ "github.com/aws/aws-sdk-go-v2/aws" ++ retry_sdkv2 "github.com/aws/aws-sdk-go-v2/aws/retry" ++ "github.com/aws/aws-sdk-go-v2/service/acm" ++ tfawserr_sdkv2 "github.com/hashicorp/aws-sdk-go-base/v2/tfawserr" ++ "github.com/hashicorp/terraform-provider-aws/internal/conns" ++) ++ ++func (p *servicePackage) pulumiCustomizeRetries(cfg aws.Config) func(*acm.Options) { ++ return func(o *acm.Options) { ++ o.Retryer = conns.AddIsErrorRetryables(cfg.Retryer().(aws.RetryerV2), retry_sdkv2.IsErrorRetryableFunc(func(err error) aws.Ternary { ++ if tfawserr_sdkv2.ErrMessageContains(err, "LimitExceededException", "the maximum number of") && ++ tfawserr_sdkv2.ErrMessageContains(err, "LimitExceededException", "certificates in the last year") { ++ return aws.FalseTernary ++ } ++ return aws.UnknownTernary // Delegate to configured Retryer. ++ })) ++ } ++} diff --git a/internal/service/acm/service_package_gen.go b/internal/service/acm/service_package_gen.go -index d76d553329..7f9a9ca461 100644 +index 90c139864a..da16c6a6b5 100644 --- a/internal/service/acm/service_package_gen.go +++ b/internal/service/acm/service_package_gen.go -@@ -6,7 +6,9 @@ import ( - "context" - - aws_sdkv2 "github.com/aws/aws-sdk-go-v2/aws" -+ retry_sdkv2 "github.com/aws/aws-sdk-go-v2/aws/retry" - acm_sdkv2 "github.com/aws/aws-sdk-go-v2/service/acm" -+ tfawserr_sdkv2 "github.com/hashicorp/aws-sdk-go-base/v2/tfawserr" - "github.com/hashicorp/terraform-provider-aws/internal/conns" - "github.com/hashicorp/terraform-provider-aws/internal/types" - "github.com/hashicorp/terraform-provider-aws/names" -@@ -63,6 +65,15 @@ func (p *servicePackage) NewClient(ctx context.Context, config map[string]any) ( - return acm_sdkv2.NewFromConfig(cfg, - acm_sdkv2.WithEndpointResolverV2(newEndpointResolverSDKv2()), +@@ -63,6 +63,7 @@ func (p *servicePackage) NewClient(ctx context.Context, config map[string]any) ( + return acm.NewFromConfig(cfg, + acm.WithEndpointResolverV2(newEndpointResolverV2()), withBaseEndpoint(config[names.AttrEndpoint].(string)), -+ func(o *acm_sdkv2.Options) { -+ o.Retryer = conns.AddIsErrorRetryables(cfg.Retryer().(aws_sdkv2.RetryerV2), retry_sdkv2.IsErrorRetryableFunc(func(err error) aws_sdkv2.Ternary { -+ if tfawserr_sdkv2.ErrMessageContains(err, "LimitExceededException", "the maximum number of") && -+ tfawserr_sdkv2.ErrMessageContains(err, "LimitExceededException", "certificates in the last year") { -+ return aws_sdkv2.FalseTernary -+ } -+ return aws_sdkv2.UnknownTernary // Delegate to configured Retryer. -+ })) -+ }, ++ p.pulumiCustomizeRetries(cfg), ), nil } diff --git a/patches/0037-Restore-legacy-bucket.patch b/patches/0037-Restore-legacy-bucket.patch index c9308380e58..dcb23330287 100644 --- a/patches/0037-Restore-legacy-bucket.patch +++ b/patches/0037-Restore-legacy-bucket.patch @@ -4,23 +4,8 @@ Date: Wed, 29 May 2024 09:07:38 -0400 Subject: [PATCH] Restore legacy bucket -diff --git a/internal/conns/awsclient.go b/internal/conns/awsclient.go -index dde69d462d..6391a4988c 100644 ---- a/internal/conns/awsclient.go -+++ b/internal/conns/awsclient.go -@@ -105,6 +105,10 @@ func (c *AWSClient) S3UsePathStyle(context.Context) bool { - return c.s3UsePathStyle - } - -+func (c *AWSClient) S3Conn(ctx context.Context) *s3_sdkv1.S3 { -+ return errs.Must(conn[*s3_sdkv1.S3](ctx, c, names.S3, make(map[string]any))) -+} -+ - func (client *AWSClient) S3ConnURICleaningDisabled(ctx context.Context) *s3_sdkv1.S3 { - config := client.S3Conn(ctx).Config - config.DisableRestProtocolURICleaning = aws_sdkv2.Bool(true) diff --git a/internal/provider/provider.go b/internal/provider/provider.go -index 026e936537..664f55488d 100644 +index 4c83f4bb1c..2ec4c986be 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -17,7 +17,6 @@ import ( diff --git a/patches/0044-restore-ECRConn.patch b/patches/0044-restore-ECRConn.patch index 40c770df622..b1db0353348 100644 --- a/patches/0044-restore-ECRConn.patch +++ b/patches/0044-restore-ECRConn.patch @@ -4,26 +4,26 @@ Date: Wed, 10 Apr 2024 08:49:35 -0400 Subject: [PATCH] restore ECRConn -diff --git a/internal/conns/awsclient_gen.go b/internal/conns/awsclient_gen.go -index cfbc51180e..2a8249e7d4 100644 ---- a/internal/conns/awsclient_gen.go -+++ b/internal/conns/awsclient_gen.go -@@ -246,6 +246,7 @@ import ( - workspaces_sdkv2 "github.com/aws/aws-sdk-go-v2/service/workspaces" - workspacesweb_sdkv2 "github.com/aws/aws-sdk-go-v2/service/workspacesweb" - xray_sdkv2 "github.com/aws/aws-sdk-go-v2/service/xray" +diff --git a/internal/conns/awsclient_extra.go b/internal/conns/awsclient_extra.go +index 96c809fc47..57bf4c7c94 100644 +--- a/internal/conns/awsclient_extra.go ++++ b/internal/conns/awsclient_extra.go +@@ -6,7 +6,10 @@ package conns + import ( + "context" + + ecr_sdkv1 "github.com/aws/aws-sdk-go/service/ecr" - imagebuilder_sdkv1 "github.com/aws/aws-sdk-go/service/imagebuilder" - simpledb_sdkv1 "github.com/aws/aws-sdk-go/service/simpledb" - "github.com/hashicorp/terraform-provider-aws/internal/errs" -@@ -588,6 +589,10 @@ func (c *AWSClient) EC2Client(ctx context.Context) *ec2_sdkv2.Client { - return errs.Must(client[*ec2_sdkv2.Client](ctx, c, names.EC2, make(map[string]any))) - } + s3_sdkv1 "github.com/aws/aws-sdk-go/service/s3" ++ "github.com/hashicorp/terraform-provider-aws/internal/errs" ++ "github.com/hashicorp/terraform-provider-aws/names" + ) + func (c *AWSClient) S3Conn(ctx context.Context) *s3_sdkv1.S3 { +@@ -20,3 +23,7 @@ func (client *AWSClient) S3ConnURICleaningDisabled(ctx context.Context) *s3_sdkv + + return s3_sdkv1.New(client.session.Copy(&config)) + } ++ +func (c *AWSClient) ECRConn(ctx context.Context) *ecr_sdkv1.ECR { + return errs.Must(conn[*ecr_sdkv1.ECR](ctx, c, names.ECR, make(map[string]any))) +} -+ - func (c *AWSClient) ECRClient(ctx context.Context) *ecr_sdkv2.Client { - return errs.Must(client[*ecr_sdkv2.Client](ctx, c, names.ECR, make(map[string]any))) - } diff --git a/patches/0046-restore-ecr-NewConn.patch b/patches/0046-restore-ecr-NewConn.patch index f8c06e2b5ac..53ba8fbe6ce 100644 --- a/patches/0046-restore-ecr-NewConn.patch +++ b/patches/0046-restore-ecr-NewConn.patch @@ -4,31 +4,25 @@ Date: Wed, 10 Apr 2024 13:43:56 -0400 Subject: [PATCH] restore ecr NewConn -diff --git a/internal/service/ecr/service_package_gen.go b/internal/service/ecr/service_package_gen.go -index 9a1f8e3ee2..4cf24b81e4 100644 ---- a/internal/service/ecr/service_package_gen.go -+++ b/internal/service/ecr/service_package_gen.go -@@ -7,6 +7,9 @@ import ( - - aws_sdkv2 "github.com/aws/aws-sdk-go-v2/aws" - ecr_sdkv2 "github.com/aws/aws-sdk-go-v2/service/ecr" +diff --git a/internal/service/ecr/service_package_extra.go b/internal/service/ecr/service_package_extra.go +new file mode 100644 +index 0000000000..7175d0cb71 +--- /dev/null ++++ b/internal/service/ecr/service_package_extra.go +@@ -0,0 +1,16 @@ ++package ecr ++ ++import ( ++ "context" ++ + aws_sdkv1 "github.com/aws/aws-sdk-go/aws" + session_sdkv1 "github.com/aws/aws-sdk-go/aws/session" + ecr_sdkv1 "github.com/aws/aws-sdk-go/service/ecr" - "github.com/hashicorp/terraform-provider-aws/internal/conns" - "github.com/hashicorp/terraform-provider-aws/internal/types" - "github.com/hashicorp/terraform-provider-aws/names" -@@ -116,6 +119,13 @@ func (p *servicePackage) ServicePackageName() string { - return names.ECR - } - ++) ++ +// NewConn returns a new AWS SDK for Go v1 client for this service package's AWS API. +func (p *servicePackage) NewConn(ctx context.Context, config map[string]any) (*ecr_sdkv1.ECR, error) { + sess := config["session"].(*session_sdkv1.Session) + + return ecr_sdkv1.New(sess.Copy(&aws_sdkv1.Config{Endpoint: aws_sdkv1.String(config["endpoint"].(string))})), nil +} -+ - // NewClient returns a new AWS SDK for Go v2 client for this service package's AWS API. - func (p *servicePackage) NewClient(ctx context.Context, config map[string]any) (*ecr_sdkv2.Client, error) { - cfg := *(config["aws_sdkv2_config"].(*aws_sdkv2.Config)) diff --git a/patches/0047-update-apn-info.patch b/patches/0047-update-apn-info.patch index 7c8c74aefcb..192646fa66f 100644 --- a/patches/0047-update-apn-info.patch +++ b/patches/0047-update-apn-info.patch @@ -5,7 +5,7 @@ Subject: [PATCH] update apn info diff --git a/internal/conns/config.go b/internal/conns/config.go -index 9b450148b9..c3346c08f7 100644 +index 3c1521b6f4..3e02bd18e9 100644 --- a/internal/conns/config.go +++ b/internal/conns/config.go @@ -23,7 +23,6 @@ import ( diff --git a/patches/0055-Create-Logging-Middleware-for-Lambda-service-that-do.patch b/patches/0055-Create-Logging-Middleware-for-Lambda-service-that-do.patch index 423ca615785..5e742fbdb28 100644 --- a/patches/0055-Create-Logging-Middleware-for-Lambda-service-that-do.patch +++ b/patches/0055-Create-Logging-Middleware-for-Lambda-service-that-do.patch @@ -127,23 +127,22 @@ index 0000000000..737faef4a7 + return out, metadata, err +} diff --git a/internal/service/lambda/service_package_extra.go b/internal/service/lambda/service_package_extra.go -index ffd7fa9728..b958a21bff 100644 +index 79867519db..f58db8ce42 100644 --- a/internal/service/lambda/service_package_extra.go +++ b/internal/service/lambda/service_package_extra.go -@@ -6,6 +6,7 @@ import ( +@@ -5,6 +5,7 @@ import ( aws_sdkv2 "github.com/aws/aws-sdk-go-v2/aws" retry_sdkv2 "github.com/aws/aws-sdk-go-v2/aws/retry" - lambda_sdkv2 "github.com/aws/aws-sdk-go-v2/service/lambda" + "github.com/aws/aws-sdk-go-v2/service/lambda" + "github.com/aws/smithy-go/middleware" tfawserr_sdkv2 "github.com/hashicorp/aws-sdk-go-base/v2/tfawserr" "github.com/hashicorp/terraform-provider-aws/internal/conns" - "github.com/hashicorp/terraform-provider-aws/names" -@@ -35,7 +36,20 @@ func (p *servicePackage) NewClient(ctx context.Context, config map[string]any) ( - lambda_sdkv2.WithEndpointResolverV2(newEndpointResolverSDKv2()), - withBaseEndpoint(config[names.AttrEndpoint].(string)), - func(o *lambda_sdkv2.Options) { -- o.Retryer = conns.AddIsErrorRetryables(cfg.Retryer().(aws_sdkv2.RetryerV2), retry) -+ + ) +@@ -30,5 +31,18 @@ func (p *servicePackage) pulumiCustomizeLambdaRetries(cfg aws.Config) func(*lamb + + return func(o *lambda.Options) { + o.Retryer = conns.AddIsErrorRetryables(cfg.Retryer().(aws_sdkv2.RetryerV2), retry) ++ + // Switch out the terraform http logging middleware with a custom logging middleware that does not log the + // lambda code. Logging the lambda code leads to memory bloating because it allocates a lot of copies of the + // body @@ -156,7 +155,5 @@ index ffd7fa9728..b958a21bff 100644 + err = stack.Deserialize.Add(NewWrappedRequestResponseLogger(loggingMiddleware), middleware.After) + return err + }) -+ o.Retryer = conns.AddIsErrorRetryables(cfg.Retryer().(aws_sdkv2.RetryerV2), retry) - }, - ), nil + } } diff --git a/patches/0064-Adapt-gamelift-matchmaking-resources.patch b/patches/0064-Adapt-gamelift-matchmaking-resources.patch index 9ba60d7236a..c1335fb1676 100644 --- a/patches/0064-Adapt-gamelift-matchmaking-resources.patch +++ b/patches/0064-Adapt-gamelift-matchmaking-resources.patch @@ -619,10 +619,10 @@ index 4295987ae6..377b46816e 100644 return nil } diff --git a/names/data/names_data.hcl b/names/data/names_data.hcl -index e4ba54d340..d89f5e9878 100644 +index 16f5a38e8f..95f154aecd 100644 --- a/names/data/names_data.hcl +++ b/names/data/names_data.hcl -@@ -3884,7 +3884,8 @@ service "fsx" { +@@ -3883,7 +3883,8 @@ service "fsx" { service "gamelift" { sdk { diff --git a/patches/0067-Add-pluralized-lifecycle_policies-to-EFS-file-system.patch b/patches/0067-Add-pluralized-lifecycle_policies-to-EFS-file-system.patch index 6165d9c5639..a7680db7c2b 100644 --- a/patches/0067-Add-pluralized-lifecycle_policies-to-EFS-file-system.patch +++ b/patches/0067-Add-pluralized-lifecycle_policies-to-EFS-file-system.patch @@ -12,7 +12,7 @@ version to only return at most one element we're able to fix this panic without introducing breaking changes. diff --git a/internal/service/efs/file_system_data_source.go b/internal/service/efs/file_system_data_source.go -index f045aa36a4..a7b710fe9b 100644 +index 680f0fb3cc..a4ed1a053a 100644 --- a/internal/service/efs/file_system_data_source.go +++ b/internal/service/efs/file_system_data_source.go @@ -63,6 +63,28 @@ func dataSourceFileSystem() *schema.Resource { 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 index 98e6857bc3d..a6e523f15bc 100644 --- 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 @@ -6,10 +6,10 @@ Subject: [PATCH] Fix tags_all Computed for diff --git a/internal/service/backup/logically_air_gapped_vault.go b/internal/service/backup/logically_air_gapped_vault.go -index dc37ee2449..ba1e94c6d6 100644 +index 6363263403..820d6a6c59 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 +@@ -88,7 +88,7 @@ func (r *logicallyAirGappedVaultResource) Schema(ctx context.Context, request re }, }, names.AttrTags: tftags.TagsAttribute(), diff --git a/patches/0069-Patch-ComputedOnly-for-route53profiles-and-more.patch b/patches/0069-Patch-ComputedOnly-for-route53profiles-and-more.patch index aae9caa82d2..93249ad0a71 100644 --- a/patches/0069-Patch-ComputedOnly-for-route53profiles-and-more.patch +++ b/patches/0069-Patch-ComputedOnly-for-route53profiles-and-more.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Patch ComputedOnly for route53profiles and more diff --git a/internal/service/backup/restore_testing_plan.go b/internal/service/backup/restore_testing_plan.go -index b324c80f36..b5e2bf8337 100644 +index 7d9155b5f0..c93f05adc5 100644 --- a/internal/service/backup/restore_testing_plan.go +++ b/internal/service/backup/restore_testing_plan.go -@@ -88,7 +88,7 @@ func (r *restoreTestingPlanResource) Schema(ctx context.Context, request resourc +@@ -89,7 +89,7 @@ func (r *restoreTestingPlanResource) Schema(ctx context.Context, request resourc }, }, names.AttrTags: tftags.TagsAttribute(), @@ -31,10 +31,10 @@ index b4bd9f9d39..61334ec528 100644 } } diff --git a/internal/service/route53profiles/association.go b/internal/service/route53profiles/association.go -index bb460f3268..9dc39c6e3f 100644 +index 7511a8a554..3a72dd67f3 100644 --- a/internal/service/route53profiles/association.go +++ b/internal/service/route53profiles/association.go -@@ -102,7 +102,7 @@ func (r *resourceAssociation) Schema(ctx context.Context, req resource.SchemaReq +@@ -114,7 +114,7 @@ func (r *resourceAssociation) Schema(ctx context.Context, req resource.SchemaReq }, }, names.AttrTags: tftags.TagsAttribute(), diff --git a/patches/0070-Temporarily-remove-iam_role-managed_policy_arn-depre.patch b/patches/0070-Temporarily-remove-iam_role-managed_policy_arn-depre.patch index 2893b5d2ede..6528a09f107 100644 --- a/patches/0070-Temporarily-remove-iam_role-managed_policy_arn-depre.patch +++ b/patches/0070-Temporarily-remove-iam_role-managed_policy_arn-depre.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Temporarily remove iam_role managed_policy_arn deprecation diff --git a/internal/service/iam/role.go b/internal/service/iam/role.go -index 83f02cec19..478eb1012e 100644 +index 3a3d22bb6e..ce856f148f 100644 --- a/internal/service/iam/role.go +++ b/internal/service/iam/role.go @@ -131,8 +131,6 @@ func resourceRole() *schema.Resource { diff --git a/patches/0071-Adjust-matchmaking_configuration-resource-IgnoreTags.patch b/patches/0071-Adjust-matchmaking_configuration-resource-IgnoreTags.patch new file mode 100644 index 00000000000..12b9336a661 --- /dev/null +++ b/patches/0071-Adjust-matchmaking_configuration-resource-IgnoreTags.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Anton Tayanovskyy +Date: Mon, 28 Oct 2024 14:28:28 -0400 +Subject: [PATCH] Adjust matchmaking_configuration resource IgnoreTagsConfig + + +diff --git a/internal/service/gamelift/matchmaking_configuration.go b/internal/service/gamelift/matchmaking_configuration.go +index 5811f1f884..3af285382c 100644 +--- a/internal/service/gamelift/matchmaking_configuration.go ++++ b/internal/service/gamelift/matchmaking_configuration.go +@@ -206,7 +206,7 @@ func resourceMatchmakingConfigurationCreate(ctx context.Context, d *schema.Resou + func resourceMatchmakingConfigurationRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + conn := meta.(*conns.AWSClient).GameLiftClient(ctx) + defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig(ctx) +- ignoreTagsConfig := meta.(*conns.AWSClient).IgnoreTagsConfig ++ ignoreTagsConfig := meta.(*conns.AWSClient).IgnoreTagsConfig(ctx) + + log.Printf("[INFO] Describing GameLift Matchmaking Configuration: %s", d.Id()) + out, err := conn.DescribeMatchmakingConfigurations(ctx, &gamelift.DescribeMatchmakingConfigurationsInput{ diff --git a/patches/0072-Restore-conns-factory-for-SDKv1-Go-clients-used-by-p.patch b/patches/0072-Restore-conns-factory-for-SDKv1-Go-clients-used-by-p.patch new file mode 100644 index 00000000000..6925f503fe4 --- /dev/null +++ b/patches/0072-Restore-conns-factory-for-SDKv1-Go-clients-used-by-p.patch @@ -0,0 +1,89 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Anton Tayanovskyy +Date: Mon, 28 Oct 2024 14:28:43 -0400 +Subject: [PATCH] Restore conns factory for SDKv1 Go clients used by patches + + +diff --git a/internal/conns/awsclient_extra.go b/internal/conns/awsclient_extra.go +index 57bf4c7c94..09b4279db3 100644 +--- a/internal/conns/awsclient_extra.go ++++ b/internal/conns/awsclient_extra.go +@@ -5,9 +5,12 @@ package conns + + import ( + "context" ++ "fmt" ++ "maps" + + ecr_sdkv1 "github.com/aws/aws-sdk-go/service/ecr" + s3_sdkv1 "github.com/aws/aws-sdk-go/service/s3" ++ "github.com/hashicorp/terraform-plugin-log/tflog" + "github.com/hashicorp/terraform-provider-aws/internal/errs" + "github.com/hashicorp/terraform-provider-aws/names" + ) +@@ -27,3 +30,65 @@ func (client *AWSClient) S3ConnURICleaningDisabled(ctx context.Context) *s3_sdkv + func (c *AWSClient) ECRConn(ctx context.Context) *ecr_sdkv1.ECR { + return errs.Must(conn[*ecr_sdkv1.ECR](ctx, c, names.ECR, make(map[string]any))) + } ++ ++// conn returns the AWS SDK for Go v1 API client for the specified service. ++// The default service client (`extra` is empty) is cached. In this case the AWSClient lock is held. ++// This function is not a method on `AWSClient` as methods can't be parameterized (https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md#no-parameterized-methods). ++func conn[T any](ctx context.Context, c *AWSClient, servicePackageName string, extra map[string]any) (T, error) { ++ ctx = tflog.SetField(ctx, "tf_aws.service_package", servicePackageName) ++ ++ isDefault := len(extra) == 0 ++ // Default service client is cached. ++ if isDefault { ++ c.lock.Lock() ++ defer c.lock.Unlock() // Runs at function exit, NOT block. ++ ++ if raw, ok := c.conns[servicePackageName]; ok { ++ if conn, ok := raw.(T); ok { ++ return conn, nil ++ } else { ++ var zero T ++ return zero, fmt.Errorf("AWS SDK v1 API client (%s): %T, want %T", servicePackageName, raw, zero) ++ } ++ } ++ } ++ ++ sp, ok := c.ServicePackages[servicePackageName] ++ if !ok { ++ var zero T ++ return zero, fmt.Errorf("unknown service package: %s", servicePackageName) ++ } ++ ++ v, ok := sp.(interface { ++ NewConn(context.Context, map[string]any) (T, error) ++ }) ++ if !ok { ++ var zero T ++ return zero, fmt.Errorf("no AWS SDK v1 API client factory: %s", servicePackageName) ++ } ++ ++ config := c.apiClientConfig(ctx, servicePackageName) ++ maps.Copy(config, extra) // Extras overwrite per-service defaults. ++ conn, err := v.NewConn(ctx, config) ++ if err != nil { ++ var zero T ++ return zero, err ++ } ++ ++ if v, ok := sp.(interface { ++ CustomizeConn(context.Context, T) (T, error) ++ }); ok { ++ conn, err = v.CustomizeConn(ctx, conn) ++ if err != nil { ++ var zero T ++ return zero, err ++ } ++ } ++ ++ // Default service client is cached. ++ if isDefault { ++ c.conns[servicePackageName] = conn ++ } ++ ++ return conn, nil ++} diff --git a/patches/0073-Patch-imagebuilder-and-resiliencehub-tagging.patch b/patches/0073-Patch-imagebuilder-and-resiliencehub-tagging.patch new file mode 100644 index 00000000000..8ce09b7d874 --- /dev/null +++ b/patches/0073-Patch-imagebuilder-and-resiliencehub-tagging.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Anton Tayanovskyy +Date: Mon, 28 Oct 2024 14:29:42 -0400 +Subject: [PATCH] Patch imagebuilder and resiliencehub tagging + + +diff --git a/internal/service/imagebuilder/lifecycle_policy.go b/internal/service/imagebuilder/lifecycle_policy.go +index de77993cb4..aba05a03c0 100644 +--- a/internal/service/imagebuilder/lifecycle_policy.go ++++ b/internal/service/imagebuilder/lifecycle_policy.go +@@ -89,7 +89,7 @@ func (r *lifecyclePolicyResource) Schema(ctx context.Context, request resource.S + }, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + Blocks: map[string]schema.Block{ + "policy_detail": schema.SetNestedBlock{ +diff --git a/internal/service/resiliencehub/resiliency_policy.go b/internal/service/resiliencehub/resiliency_policy.go +index 9f349c81ff..4feca02f5e 100644 +--- a/internal/service/resiliencehub/resiliency_policy.go ++++ b/internal/service/resiliencehub/resiliency_policy.go +@@ -130,7 +130,7 @@ func (r *resourceResiliencyPolicy) Schema(ctx context.Context, req resource.Sche + Computed: true, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + Blocks: map[string]schema.Block{ + names.AttrPolicy: schema.SingleNestedBlock{ diff --git a/patches/0074-Restore-AWS-Go-SDK-v1-session.patch b/patches/0074-Restore-AWS-Go-SDK-v1-session.patch new file mode 100644 index 00000000000..9927f61087f --- /dev/null +++ b/patches/0074-Restore-AWS-Go-SDK-v1-session.patch @@ -0,0 +1,18 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Anton Tayanovskyy +Date: Mon, 28 Oct 2024 17:49:18 -0400 +Subject: [PATCH] Restore AWS Go SDK v1 session + + +diff --git a/internal/conns/awsclient.go b/internal/conns/awsclient.go +index ddfe9d8849..6e2fc6ff46 100644 +--- a/internal/conns/awsclient.go ++++ b/internal/conns/awsclient.go +@@ -253,6 +253,7 @@ func (c *AWSClient) apiClientConfig(_ context.Context, servicePackageName string + "aws_sdkv2_config": c.awsConfig, + "endpoint": c.endpoints[servicePackageName], + "partition": c.Partition, ++ "session": c.session, + } + switch servicePackageName { + case names.S3: diff --git a/provider/cmd/pulumi-resource-aws/bridge-metadata.json b/provider/cmd/pulumi-resource-aws/bridge-metadata.json index 1f6118fc44b..a4ae565f935 100644 --- a/provider/cmd/pulumi-resource-aws/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/bridge-metadata.json @@ -7143,6 +7143,16 @@ } } } + }, + "zonal_config": { + "maxItemsOne": true, + "elem": { + "fields": { + "minimum_healthy_hosts_per_zone": { + "maxItemsOne": true + } + } + } } } }, @@ -14435,6 +14445,65 @@ } } }, + "aws_imagebuilder_lifecycle_policy": { + "current": "aws:imagebuilder/lifecyclePolicy:LifecyclePolicy", + "majorVersion": 6, + "fields": { + "policy_detail": { + "maxItemsOne": false, + "elem": { + "fields": { + "action": { + "maxItemsOne": true, + "elem": { + "fields": { + "include_resources": { + "maxItemsOne": true + } + } + } + }, + "exclusion_rules": { + "maxItemsOne": true, + "elem": { + "fields": { + "amis": { + "maxItemsOne": true, + "elem": { + "fields": { + "last_launched": { + "maxItemsOne": true + }, + "regions": { + "maxItemsOne": false + }, + "shared_accounts": { + "maxItemsOne": false + } + } + } + } + } + } + }, + "filter": { + "maxItemsOne": true + } + } + } + }, + "resource_selection": { + "maxItemsOne": true, + "elem": { + "fields": { + "recipe": { + "maxItemsOne": false + } + } + } + } + } + }, "aws_imagebuilder_workflow": { "current": "aws:imagebuilder/workflow:Workflow", "majorVersion": 6 @@ -15716,6 +15785,53 @@ } } }, + "iceberg_configuration": { + "maxItemsOne": true, + "elem": { + "fields": { + "cloudwatch_logging_options": { + "maxItemsOne": true + }, + "destination_table_configuration": { + "maxItemsOne": false, + "elem": { + "fields": { + "unique_keys": { + "maxItemsOne": false + } + } + } + }, + "processing_configuration": { + "maxItemsOne": true, + "elem": { + "fields": { + "processors": { + "maxItemsOne": false, + "elem": { + "fields": { + "parameters": { + "maxItemsOne": false + } + } + } + } + } + } + }, + "s3_configuration": { + "maxItemsOne": true, + "elem": { + "fields": { + "cloudwatch_logging_options": { + "maxItemsOne": true + } + } + } + } + } + } + }, "kinesis_source_configuration": { "maxItemsOne": true }, @@ -155255,6 +155371,10 @@ } } }, + "aws_resiliencehub_resiliency_policy": { + "current": "aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy", + "majorVersion": 6 + }, "aws_resourceexplorer2_index": { "current": "aws:resourceexplorer/index:Index", "majorVersion": 6 @@ -156968,6 +157088,16 @@ "maxItemsOne": true, "elem": { "fields": { + "app_lifecycle_management": { + "maxItemsOne": true, + "elem": { + "fields": { + "idle_settings": { + "maxItemsOne": true + } + } + } + }, "code_repository": { "maxItemsOne": false }, @@ -156977,6 +157107,19 @@ "default_resource_spec": { "maxItemsOne": true }, + "emr_settings": { + "maxItemsOne": true, + "elem": { + "fields": { + "assumable_role_arns": { + "maxItemsOne": false + }, + "execution_role_arns": { + "maxItemsOne": false + } + } + } + }, "lifecycle_config_arns": { "maxItemsOne": false } @@ -157042,6 +157185,9 @@ "direct_deploy_settings": { "maxItemsOne": true }, + "emr_serverless_settings": { + "maxItemsOne": true + }, "generative_ai_settings": { "maxItemsOne": true }, @@ -157067,6 +157213,16 @@ "maxItemsOne": true, "elem": { "fields": { + "app_lifecycle_management": { + "maxItemsOne": true, + "elem": { + "fields": { + "idle_settings": { + "maxItemsOne": true + } + } + } + }, "custom_image": { "maxItemsOne": false }, @@ -157096,6 +157252,16 @@ "maxItemsOne": true, "elem": { "fields": { + "app_lifecycle_management": { + "maxItemsOne": true, + "elem": { + "fields": { + "idle_settings": { + "maxItemsOne": true + } + } + } + }, "code_repository": { "maxItemsOne": false }, @@ -157105,6 +157271,19 @@ "default_resource_spec": { "maxItemsOne": true }, + "emr_settings": { + "maxItemsOne": true, + "elem": { + "fields": { + "assumable_role_arns": { + "maxItemsOne": false + }, + "execution_role_arns": { + "maxItemsOne": false + } + } + } + }, "lifecycle_config_arns": { "maxItemsOne": false } @@ -157182,6 +157361,9 @@ "hidden_app_types": { "maxItemsOne": false }, + "hidden_instance_types": { + "maxItemsOne": false + }, "hidden_ml_tools": { "maxItemsOne": false } @@ -157394,7 +157576,21 @@ "majorVersion": 6, "fields": { "feature_definition": { - "maxItemsOne": false + "maxItemsOne": false, + "elem": { + "fields": { + "collection_config": { + "maxItemsOne": true, + "elem": { + "fields": { + "vector_config": { + "maxItemsOne": true + } + } + } + } + } + } }, "offline_store_config": { "maxItemsOne": true, @@ -157421,6 +157617,9 @@ } } } + }, + "throughput_config": { + "maxItemsOne": true } } }, @@ -157466,6 +157665,18 @@ } } }, + "aws_sagemaker_hub": { + "current": "aws:sagemaker/hub:Hub", + "majorVersion": 6, + "fields": { + "hub_search_keywords": { + "maxItemsOne": false + }, + "s3_storage_config": { + "maxItemsOne": true + } + } + }, "aws_sagemaker_human_task_ui": { "current": "aws:sagemaker/humanTaskUI:HumanTaskUI", "majorVersion": 6, @@ -157483,6 +157694,10 @@ "current": "aws:sagemaker/imageVersion:ImageVersion", "majorVersion": 6 }, + "aws_sagemaker_mlflow_tracking_server": { + "current": "aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer", + "majorVersion": 6 + }, "aws_sagemaker_model": { "current": "aws:sagemaker/model:Model", "majorVersion": 6, @@ -157672,6 +157887,16 @@ "maxItemsOne": true, "elem": { "fields": { + "app_lifecycle_management": { + "maxItemsOne": true, + "elem": { + "fields": { + "idle_settings": { + "maxItemsOne": true + } + } + } + }, "default_resource_spec": { "maxItemsOne": true } @@ -157692,6 +157917,16 @@ "maxItemsOne": true, "elem": { "fields": { + "app_lifecycle_management": { + "maxItemsOne": true, + "elem": { + "fields": { + "idle_settings": { + "maxItemsOne": true + } + } + } + }, "code_repository": { "maxItemsOne": false }, @@ -157770,6 +158005,9 @@ "direct_deploy_settings": { "maxItemsOne": true }, + "emr_serverless_settings": { + "maxItemsOne": true + }, "generative_ai_settings": { "maxItemsOne": true }, @@ -157795,6 +158033,16 @@ "maxItemsOne": true, "elem": { "fields": { + "app_lifecycle_management": { + "maxItemsOne": true, + "elem": { + "fields": { + "idle_settings": { + "maxItemsOne": true + } + } + } + }, "custom_image": { "maxItemsOne": false }, @@ -157824,6 +158072,16 @@ "maxItemsOne": true, "elem": { "fields": { + "app_lifecycle_management": { + "maxItemsOne": true, + "elem": { + "fields": { + "idle_settings": { + "maxItemsOne": true + } + } + } + }, "code_repository": { "maxItemsOne": false }, @@ -157833,6 +158091,19 @@ "default_resource_spec": { "maxItemsOne": true }, + "emr_settings": { + "maxItemsOne": true, + "elem": { + "fields": { + "assumable_role_arns": { + "maxItemsOne": false + }, + "execution_role_arns": { + "maxItemsOne": false + } + } + } + }, "lifecycle_config_arns": { "maxItemsOne": false } @@ -157910,6 +158181,9 @@ "hidden_app_types": { "maxItemsOne": false }, + "hidden_instance_types": { + "maxItemsOne": false + }, "hidden_ml_tools": { "maxItemsOne": false } @@ -274389,6 +274663,25 @@ } } }, + "aws_ssm_patch_baselines": { + "current": "aws:ssm/getPatchBaselines:getPatchBaselines", + "majorVersion": 6, + "fields": { + "baseline_identities": { + "maxItemsOne": false + }, + "filter": { + "maxItemsOne": false, + "elem": { + "fields": { + "values": { + "maxItemsOne": false + } + } + } + } + } + }, "aws_ssmcontacts_contact": { "current": "aws:ssmcontacts/getContact:getContact", "majorVersion": 6 @@ -276072,6 +276365,7 @@ "aws:imagebuilder/imagePipeline:ImagePipeline": 0, "aws:imagebuilder/imageRecipe:ImageRecipe": 0, "aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration": 0, + "aws:imagebuilder/lifecyclePolicy:LifecyclePolicy": 1, "aws:imagebuilder/workflow:Workflow": 0, "aws:inspector/assessmentTarget:AssessmentTarget": 0, "aws:inspector/assessmentTemplate:AssessmentTemplate": 0, @@ -276419,6 +276713,7 @@ "aws:rekognition/collection:Collection": 1, "aws:rekognition/project:Project": 1, "aws:rekognition/streamProcessor:StreamProcessor": 1, + "aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy": 1, "aws:resourceexplorer/index:Index": 1, "aws:resourceexplorer/view:View": 1, "aws:resourcegroups/group:Group": 0, @@ -276517,9 +276812,11 @@ "aws:sagemaker/endpointConfiguration:EndpointConfiguration": 0, "aws:sagemaker/featureGroup:FeatureGroup": 0, "aws:sagemaker/flowDefinition:FlowDefinition": 0, + "aws:sagemaker/hub:Hub": 0, "aws:sagemaker/humanTaskUI:HumanTaskUI": 0, "aws:sagemaker/image:Image": 0, "aws:sagemaker/imageVersion:ImageVersion": 0, + "aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer": 0, "aws:sagemaker/model:Model": 0, "aws:sagemaker/modelPackageGroup:ModelPackageGroup": 0, "aws:sagemaker/modelPackageGroupPolicy:ModelPackageGroupPolicy": 0, @@ -277314,6 +277611,7 @@ "aws:ssm/getParameter:getParameter": 0, "aws:ssm/getParametersByPath:getParametersByPath": 0, "aws:ssm/getPatchBaseline:getPatchBaseline": 0, + "aws:ssm/getPatchBaselines:getPatchBaselines": 1, "aws:ssmcontacts/getContact:getContact": 0, "aws:ssmcontacts/getContactChannel:getContactChannel": 0, "aws:ssmcontacts/getPlan:getPlan": 0, diff --git a/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json b/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json index 83732368ebe..11c46f9ef85 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}},"aws_wafv2_web_acl":{"maxItemsOneOverrides":{"association_config.$.request_body.$.api_gateway":false,"association_config.$.request_body.$.app_runner_service":false,"association_config.$.request_body.$.cloudfront":false,"association_config.$.request_body.$.cognito_user_pool":false,"association_config.$.request_body.$.verified_access_instance":false}}},"datasources":{"aws_efs_file_system":{"maxItemsOneOverrides":{"lifecycle_policy":true}},"aws_quicksight_analysis":{"renames":["aws:quicksight/getAnalysis:getAnalysis"]},"aws_vpc_ipam_pool":{"renames":["aws:ec2/getVpcIamPool:getVpcIamPool"]},"aws_vpc_ipam_pool_cidrs":{"renames":["aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs"]},"aws_vpc_ipam_pools":{"renames":["aws:ec2/getVpcIamPools:getVpcIamPools"]}}},"mux":{"resources":{"aws:accessanalyzer/analyzer:Analyzer":0,"aws:accessanalyzer/archiveRule:ArchiveRule":0,"aws:account/alternativeContact:AlternativeContact":0,"aws:account/primaryContact:PrimaryContact":0,"aws:account/region:Region":0,"aws:acm/certificate:Certificate":0,"aws:acm/certificateValidation:CertificateValidation":0,"aws:acmpca/certificate:Certificate":0,"aws:acmpca/certificateAuthority:CertificateAuthority":0,"aws:acmpca/certificateAuthorityCertificate:CertificateAuthorityCertificate":0,"aws:acmpca/permission:Permission":0,"aws:acmpca/policy:Policy":0,"aws:alb/listener:Listener":0,"aws:alb/listenerCertificate:ListenerCertificate":0,"aws:alb/listenerRule:ListenerRule":0,"aws:alb/loadBalancer:LoadBalancer":0,"aws:alb/targetGroup:TargetGroup":0,"aws:alb/targetGroupAttachment:TargetGroupAttachment":0,"aws:amp/alertManagerDefinition:AlertManagerDefinition":0,"aws:amp/ruleGroupNamespace:RuleGroupNamespace":0,"aws:amp/scraper:Scraper":1,"aws:amp/workspace:Workspace":0,"aws:amplify/app:App":0,"aws:amplify/backendEnvironment:BackendEnvironment":0,"aws:amplify/branch:Branch":0,"aws:amplify/domainAssociation:DomainAssociation":0,"aws:amplify/webhook:Webhook":0,"aws:apigateway/account:Account":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/restoreTestingPlan:RestoreTestingPlan":1,"aws:backup/restoreTestingSelection:RestoreTestingSelection":1,"aws:backup/selection:Selection":0,"aws:backup/vault:Vault":0,"aws:backup/vaultLockConfiguration:VaultLockConfiguration":0,"aws:backup/vaultNotifications:VaultNotifications":0,"aws:backup/vaultPolicy:VaultPolicy":0,"aws:batch/computeEnvironment:ComputeEnvironment":0,"aws:batch/jobDefinition:JobDefinition":0,"aws:batch/jobQueue:JobQueue":1,"aws:batch/schedulingPolicy:SchedulingPolicy":0,"aws:bcmdata/export:Export":1,"aws:bedrock/agentAgent:AgentAgent":1,"aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup":1,"aws:bedrock/agentAgentAlias:AgentAgentAlias":1,"aws:bedrock/agentAgentKnowledgeBaseAssociation:AgentAgentKnowledgeBaseAssociation":1,"aws:bedrock/agentDataSource:AgentDataSource":1,"aws:bedrock/agentKnowledgeBase:AgentKnowledgeBase":1,"aws:bedrock/customModel:CustomModel":1,"aws:bedrock/guardrail:Guardrail":1,"aws:bedrock/guardrailVersion:GuardrailVersion":1,"aws:bedrock/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:datazone/userProfile:UserProfile":1,"aws:dax/cluster:Cluster":0,"aws:dax/parameterGroup:ParameterGroup":0,"aws:dax/subnetGroup:SubnetGroup":0,"aws:detective/graph:Graph":0,"aws:detective/invitationAccepter:InvitationAccepter":0,"aws:detective/member:Member":0,"aws:detective/organizationAdminAccount:OrganizationAdminAccount":0,"aws:detective/organizationConfiguration:OrganizationConfiguration":0,"aws:devicefarm/devicePool:DevicePool":0,"aws:devicefarm/instanceProfile:InstanceProfile":0,"aws:devicefarm/networkProfile:NetworkProfile":0,"aws:devicefarm/project:Project":0,"aws:devicefarm/testGridProject:TestGridProject":0,"aws:devicefarm/upload:Upload":0,"aws:devopsguru/eventSourcesConfig:EventSourcesConfig":1,"aws:devopsguru/notificationChannel:NotificationChannel":1,"aws:devopsguru/resourceCollection:ResourceCollection":1,"aws:devopsguru/serviceIntegration:ServiceIntegration":1,"aws:directconnect/bgpPeer:BgpPeer":0,"aws:directconnect/connection:Connection":0,"aws:directconnect/connectionAssociation:ConnectionAssociation":0,"aws:directconnect/connectionConfirmation:ConnectionConfirmation":0,"aws:directconnect/gateway:Gateway":0,"aws:directconnect/gatewayAssociation:GatewayAssociation":0,"aws:directconnect/gatewayAssociationProposal:GatewayAssociationProposal":0,"aws:directconnect/hostedConnection:HostedConnection":0,"aws:directconnect/hostedPrivateVirtualInterface:HostedPrivateVirtualInterface":0,"aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter":0,"aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface":0,"aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter":0,"aws:directconnect/hostedTransitVirtualInterface:HostedTransitVirtualInterface":0,"aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor":0,"aws:directconnect/linkAggregationGroup:LinkAggregationGroup":0,"aws:directconnect/macsecKeyAssociation:MacsecKeyAssociation":0,"aws:directconnect/privateVirtualInterface:PrivateVirtualInterface":0,"aws:directconnect/publicVirtualInterface:PublicVirtualInterface":0,"aws:directconnect/transitVirtualInterface:TransitVirtualInterface":0,"aws:directoryservice/conditionalForwader:ConditionalForwader":0,"aws:directoryservice/directory:Directory":0,"aws:directoryservice/logService:LogService":0,"aws:directoryservice/radiusSettings:RadiusSettings":0,"aws:directoryservice/serviceRegion:ServiceRegion":0,"aws:directoryservice/sharedDirectory:SharedDirectory":0,"aws:directoryservice/sharedDirectoryAccepter:SharedDirectoryAccepter":0,"aws:directoryservice/trust:Trust":1,"aws:dlm/lifecyclePolicy:LifecyclePolicy":0,"aws:dms/certificate:Certificate":0,"aws:dms/endpoint:Endpoint":0,"aws:dms/eventSubscription:EventSubscription":0,"aws:dms/replicationConfig:ReplicationConfig":0,"aws:dms/replicationInstance:ReplicationInstance":0,"aws:dms/replicationSubnetGroup:ReplicationSubnetGroup":0,"aws:dms/replicationTask:ReplicationTask":0,"aws:dms/s3Endpoint:S3Endpoint":0,"aws:docdb/cluster:Cluster":0,"aws:docdb/clusterInstance:ClusterInstance":0,"aws:docdb/clusterParameterGroup:ClusterParameterGroup":0,"aws:docdb/clusterSnapshot:ClusterSnapshot":0,"aws:docdb/elasticCluster:ElasticCluster":1,"aws:docdb/eventSubscription:EventSubscription":0,"aws:docdb/globalCluster:GlobalCluster":0,"aws:docdb/subnetGroup:SubnetGroup":0,"aws:drs/replicationConfigurationTemplate:ReplicationConfigurationTemplate":1,"aws:dynamodb/contributorInsights:ContributorInsights":0,"aws:dynamodb/globalTable:GlobalTable":0,"aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination":0,"aws:dynamodb/resourcePolicy:ResourcePolicy":1,"aws:dynamodb/table:Table":0,"aws:dynamodb/tableExport:TableExport":0,"aws:dynamodb/tableItem:TableItem":0,"aws:dynamodb/tableReplica:TableReplica":0,"aws:dynamodb/tag:Tag":0,"aws:ebs/defaultKmsKey:DefaultKmsKey":0,"aws:ebs/encryptionByDefault:EncryptionByDefault":0,"aws:ebs/fastSnapshotRestore:FastSnapshotRestore":1,"aws:ebs/snapshot:Snapshot":0,"aws:ebs/snapshotBlockPublicAccess:SnapshotBlockPublicAccess":0,"aws:ebs/snapshotCopy:SnapshotCopy":0,"aws:ebs/snapshotImport:SnapshotImport":0,"aws:ebs/volume:Volume":0,"aws:ec2/ami:Ami":0,"aws:ec2/amiCopy:AmiCopy":0,"aws:ec2/amiFromInstance:AmiFromInstance":0,"aws:ec2/amiLaunchPermission:AmiLaunchPermission":0,"aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup":0,"aws:ec2/capacityBlockReservation:CapacityBlockReservation":1,"aws:ec2/capacityReservation:CapacityReservation":0,"aws:ec2/carrierGateway:CarrierGateway":0,"aws:ec2/customerGateway:CustomerGateway":0,"aws:ec2/dedicatedHost:DedicatedHost":0,"aws:ec2/defaultNetworkAcl:DefaultNetworkAcl":0,"aws:ec2/defaultRouteTable:DefaultRouteTable":0,"aws:ec2/defaultSecurityGroup:DefaultSecurityGroup":0,"aws:ec2/defaultSubnet:DefaultSubnet":0,"aws:ec2/defaultVpc:DefaultVpc":0,"aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions":0,"aws:ec2/egressOnlyInternetGateway:EgressOnlyInternetGateway":0,"aws:ec2/eip:Eip":0,"aws:ec2/eipAssociation:EipAssociation":0,"aws:ec2/eipDomainName:EipDomainName":1,"aws:ec2/fleet:Fleet":0,"aws:ec2/flowLog:FlowLog":0,"aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess":0,"aws:ec2/instance:Instance":0,"aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults":1,"aws:ec2/internetGateway:InternetGateway":0,"aws:ec2/internetGatewayAttachment:InternetGatewayAttachment":0,"aws:ec2/keyPair:KeyPair":0,"aws:ec2/launchConfiguration:LaunchConfiguration":0,"aws:ec2/launchTemplate:LaunchTemplate":0,"aws:ec2/localGatewayRoute:LocalGatewayRoute":0,"aws:ec2/localGatewayRouteTableVpcAssociation:LocalGatewayRouteTableVpcAssociation":0,"aws:ec2/mainRouteTableAssociation:MainRouteTableAssociation":0,"aws:ec2/managedPrefixList:ManagedPrefixList":0,"aws:ec2/managedPrefixListEntry:ManagedPrefixListEntry":0,"aws:ec2/natGateway:NatGateway":0,"aws:ec2/networkAcl:NetworkAcl":0,"aws:ec2/networkAclAssociation:NetworkAclAssociation":0,"aws:ec2/networkAclRule:NetworkAclRule":0,"aws:ec2/networkInsightsAnalysis:NetworkInsightsAnalysis":0,"aws:ec2/networkInsightsPath:NetworkInsightsPath":0,"aws:ec2/networkInterface:NetworkInterface":0,"aws:ec2/networkInterfaceAttachment:NetworkInterfaceAttachment":0,"aws:ec2/networkInterfaceSecurityGroupAttachment:NetworkInterfaceSecurityGroupAttachment":0,"aws:ec2/peeringConnectionOptions:PeeringConnectionOptions":0,"aws:ec2/placementGroup:PlacementGroup":0,"aws:ec2/proxyProtocolPolicy:ProxyProtocolPolicy":0,"aws:ec2/route:Route":0,"aws:ec2/routeTable:RouteTable":0,"aws:ec2/routeTableAssociation:RouteTableAssociation":0,"aws:ec2/securityGroup:SecurityGroup":0,"aws:ec2/securityGroupAssociation:SecurityGroupAssociation":0,"aws:ec2/securityGroupRule:SecurityGroupRule":0,"aws:ec2/serialConsoleAccess:SerialConsoleAccess":0,"aws:ec2/snapshotCreateVolumePermission:SnapshotCreateVolumePermission":0,"aws:ec2/spotDatafeedSubscription:SpotDatafeedSubscription":0,"aws:ec2/spotFleetRequest:SpotFleetRequest":0,"aws:ec2/spotInstanceRequest:SpotInstanceRequest":0,"aws:ec2/subnet:Subnet":0,"aws:ec2/subnetCidrReservation:SubnetCidrReservation":0,"aws:ec2/tag:Tag":0,"aws:ec2/trafficMirrorFilter:TrafficMirrorFilter":0,"aws:ec2/trafficMirrorFilterRule:TrafficMirrorFilterRule":0,"aws:ec2/trafficMirrorSession:TrafficMirrorSession":0,"aws:ec2/trafficMirrorTarget:TrafficMirrorTarget":0,"aws:ec2/volumeAttachment:VolumeAttachment":0,"aws:ec2/vpc:Vpc":0,"aws:ec2/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/groupPolicyAttachmentsExclusive:GroupPolicyAttachmentsExclusive":1,"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/rolePolicyAttachmentsExclusive:RolePolicyAttachmentsExclusive":1,"aws:iam/samlProvider:SamlProvider":0,"aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences":0,"aws:iam/serverCertificate:ServerCertificate":0,"aws:iam/serviceLinkedRole:ServiceLinkedRole":0,"aws:iam/serviceSpecificCredential:ServiceSpecificCredential":0,"aws:iam/signingCertificate:SigningCertificate":0,"aws:iam/sshKey:SshKey":0,"aws:iam/user:User":0,"aws:iam/userGroupMembership:UserGroupMembership":0,"aws:iam/userLoginProfile:UserLoginProfile":0,"aws:iam/userPoliciesExclusive:UserPoliciesExclusive":1,"aws:iam/userPolicy:UserPolicy":0,"aws:iam/userPolicyAttachment:UserPolicyAttachment":0,"aws:iam/userPolicyAttachmentsExclusive:UserPolicyAttachmentsExclusive":1,"aws:iam/virtualMfaDevice:VirtualMfaDevice":0,"aws:identitystore/group:Group":0,"aws:identitystore/groupMembership:GroupMembership":0,"aws:identitystore/user:User":0,"aws:imagebuilder/component:Component":0,"aws:imagebuilder/containerRecipe:ContainerRecipe":0,"aws:imagebuilder/distributionConfiguration:DistributionConfiguration":0,"aws:imagebuilder/image:Image":0,"aws:imagebuilder/imagePipeline:ImagePipeline":0,"aws:imagebuilder/imageRecipe:ImageRecipe":0,"aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration":0,"aws:imagebuilder/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/smsvoicev2ConfigurationSet:Smsvoicev2ConfigurationSet":1,"aws:pinpoint/smsvoicev2OptOutList:Smsvoicev2OptOutList":1,"aws:pinpoint/smsvoicev2PhoneNumber:Smsvoicev2PhoneNumber":1,"aws:pipes/pipe:Pipe":0,"aws:qldb/ledger:Ledger":0,"aws:qldb/stream:Stream":0,"aws:quicksight/accountSubscription:AccountSubscription":0,"aws:quicksight/analysis:Analysis":0,"aws:quicksight/dashboard:Dashboard":0,"aws:quicksight/dataSet:DataSet":0,"aws:quicksight/dataSource:DataSource":0,"aws:quicksight/folder:Folder":0,"aws:quicksight/folderMembership:FolderMembership":1,"aws:quicksight/group:Group":0,"aws:quicksight/groupMembership:GroupMembership":0,"aws:quicksight/iamPolicyAssignment:IamPolicyAssignment":1,"aws:quicksight/ingestion:Ingestion":1,"aws:quicksight/namespace:Namespace":1,"aws:quicksight/refreshSchedule:RefreshSchedule":1,"aws:quicksight/template:Template":0,"aws:quicksight/templateAlias:TemplateAlias":1,"aws:quicksight/theme:Theme":0,"aws:quicksight/user:User":0,"aws:quicksight/vpcConnection:VpcConnection":1,"aws:ram/principalAssociation:PrincipalAssociation":0,"aws:ram/resourceAssociation:ResourceAssociation":0,"aws:ram/resourceShare:ResourceShare":0,"aws:ram/resourceShareAccepter:ResourceShareAccepter":0,"aws:ram/sharingWithOrganization:SharingWithOrganization":0,"aws:rbin/rule:Rule":0,"aws:rds/certificate:Certificate":0,"aws:rds/cluster:Cluster":0,"aws:rds/clusterActivityStream:ClusterActivityStream":0,"aws:rds/clusterEndpoint:ClusterEndpoint":0,"aws:rds/clusterInstance:ClusterInstance":0,"aws:rds/clusterParameterGroup:ClusterParameterGroup":0,"aws:rds/clusterRoleAssociation:ClusterRoleAssociation":0,"aws:rds/clusterSnapshot:ClusterSnapshot":0,"aws:rds/customDbEngineVersion:CustomDbEngineVersion":0,"aws:rds/eventSubscription:EventSubscription":0,"aws:rds/exportTask:ExportTask":1,"aws:rds/globalCluster:GlobalCluster":0,"aws:rds/instance:Instance":0,"aws:rds/instanceAutomatedBackupsReplication:InstanceAutomatedBackupsReplication":0,"aws:rds/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/profilesAssociation:ProfilesAssociation":1,"aws:route53/profilesProfile:ProfilesProfile":1,"aws:route53/profilesResourceAssociation:ProfilesResourceAssociation":1,"aws:route53/queryLog:QueryLog":0,"aws:route53/record:Record":0,"aws:route53/resolverConfig:ResolverConfig":0,"aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig":0,"aws:route53/resolverEndpoint:ResolverEndpoint":0,"aws:route53/resolverFirewallConfig:ResolverFirewallConfig":0,"aws:route53/resolverFirewallDomainList:ResolverFirewallDomainList":0,"aws:route53/resolverFirewallRule:ResolverFirewallRule":0,"aws:route53/resolverFirewallRuleGroup:ResolverFirewallRuleGroup":0,"aws:route53/resolverFirewallRuleGroupAssociation:ResolverFirewallRuleGroupAssociation":0,"aws:route53/resolverQueryLogConfig:ResolverQueryLogConfig":0,"aws:route53/resolverQueryLogConfigAssociation:ResolverQueryLogConfigAssociation":0,"aws:route53/resolverRule:ResolverRule":0,"aws:route53/resolverRuleAssociation:ResolverRuleAssociation":0,"aws:route53/trafficPolicy:TrafficPolicy":0,"aws:route53/trafficPolicyInstance:TrafficPolicyInstance":0,"aws:route53/vpcAssociationAuthorization:VpcAssociationAuthorization":0,"aws:route53/zone:Zone":0,"aws:route53/zoneAssociation:ZoneAssociation":0,"aws:route53domains/delegationSignerRecord:DelegationSignerRecord":1,"aws:route53domains/registeredDomain:RegisteredDomain":0,"aws:route53recoverycontrol/cluster:Cluster":0,"aws:route53recoverycontrol/controlPanel:ControlPanel":0,"aws:route53recoverycontrol/routingControl:RoutingControl":0,"aws:route53recoverycontrol/safetyRule:SafetyRule":0,"aws:route53recoveryreadiness/cell:Cell":0,"aws:route53recoveryreadiness/readinessCheck:ReadinessCheck":0,"aws:route53recoveryreadiness/recoveryGroup:RecoveryGroup":0,"aws:route53recoveryreadiness/resourceSet:ResourceSet":0,"aws:rum/appMonitor:AppMonitor":0,"aws:rum/metricsDestination:MetricsDestination":0,"aws:s3/accessPoint:AccessPoint":0,"aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock":0,"aws:s3/analyticsConfiguration:AnalyticsConfiguration":0,"aws:s3/bucket:Bucket":0,"aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2":0,"aws:s3/bucketAclV2:BucketAclV2":0,"aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2":0,"aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration":0,"aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2":0,"aws:s3/bucketLoggingV2:BucketLoggingV2":0,"aws:s3/bucketMetric:BucketMetric":0,"aws:s3/bucketNotification:BucketNotification":0,"aws:s3/bucketObject:BucketObject":0,"aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2":0,"aws:s3/bucketObjectv2:BucketObjectv2":0,"aws:s3/bucketOwnershipControls:BucketOwnershipControls":0,"aws:s3/bucketPolicy:BucketPolicy":0,"aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock":0,"aws:s3/bucketReplicationConfig:BucketReplicationConfig":0,"aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2":0,"aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2":0,"aws:s3/bucketV2:BucketV2":0,"aws:s3/bucketVersioningV2:BucketVersioningV2":0,"aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2":0,"aws:s3/directoryBucket:DirectoryBucket":1,"aws:s3/inventory:Inventory":0,"aws:s3/objectCopy:ObjectCopy":0,"aws:s3control/accessGrant:AccessGrant":1,"aws:s3control/accessGrantsInstance:AccessGrantsInstance":1,"aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy":1,"aws:s3control/accessGrantsLocation:AccessGrantsLocation":1,"aws:s3control/accessPointPolicy:AccessPointPolicy":0,"aws:s3control/bucket:Bucket":0,"aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration":0,"aws:s3control/bucketPolicy:BucketPolicy":0,"aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint":0,"aws:s3control/multiRegionAccessPointPolicy:MultiRegionAccessPointPolicy":0,"aws:s3control/objectLambdaAccessPoint:ObjectLambdaAccessPoint":0,"aws:s3control/objectLambdaAccessPointPolicy:ObjectLambdaAccessPointPolicy":0,"aws:s3control/storageLensConfiguration:StorageLensConfiguration":0,"aws:s3outposts/endpoint:Endpoint":0,"aws: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/getDefaultScraperConfiguration:getDefaultScraperConfiguration":1,"aws:amp/getWorkspace:getWorkspace":0,"aws:amp/getWorkspaces:getWorkspaces":0,"aws:apigateway/getAuthorizer:getAuthorizer":0,"aws:apigateway/getAuthorizers:getAuthorizers":0,"aws:apigateway/getDomainName:getDomainName":0,"aws:apigateway/getExport:getExport":0,"aws:apigateway/getKey:getKey":0,"aws:apigateway/getResource:getResource":0,"aws:apigateway/getRestApi:getRestApi":0,"aws:apigateway/getSdk:getSdk":0,"aws:apigateway/getVpcLink:getVpcLink":0,"aws:apigatewayv2/getApi:getApi":0,"aws:apigatewayv2/getApis:getApis":0,"aws:apigatewayv2/getExport:getExport":0,"aws:apigatewayv2/getVpcLink:getVpcLink":0,"aws:appconfig/getConfigurationProfile:getConfigurationProfile":0,"aws:appconfig/getConfigurationProfiles:getConfigurationProfiles":0,"aws:appconfig/getEnvironment:getEnvironment":0,"aws:appconfig/getEnvironments:getEnvironments":0,"aws:appintegrations/getEventIntegration:getEventIntegration":0,"aws:appmesh/getGatewayRoute:getGatewayRoute":0,"aws:appmesh/getMesh:getMesh":0,"aws:appmesh/getRoute:getRoute":0,"aws:appmesh/getVirtualGateway:getVirtualGateway":0,"aws:appmesh/getVirtualNode:getVirtualNode":0,"aws:appmesh/getVirtualRouter:getVirtualRouter":0,"aws:appmesh/getVirtualService:getVirtualService":0,"aws:apprunner/getHostedZoneId:getHostedZoneId":1,"aws:appstream/getImage:getImage":1,"aws:athena/getNamedQuery:getNamedQuery":0,"aws:auditmanager/getControl:getControl":1,"aws:auditmanager/getFramework:getFramework":1,"aws:autoscaling/getAmiIds:getAmiIds":0,"aws:autoscaling/getGroup:getGroup":0,"aws:backup/getFramework:getFramework":0,"aws:backup/getPlan:getPlan":0,"aws:backup/getReportPlan:getReportPlan":0,"aws:backup/getSelection:getSelection":0,"aws:backup/getVault:getVault":0,"aws:batch/getComputeEnvironment:getComputeEnvironment":0,"aws:batch/getJobDefinition:getJobDefinition":1,"aws:batch/getJobQueue:getJobQueue":0,"aws:batch/getSchedulingPolicy:getSchedulingPolicy":0,"aws:bedrock/getAgentAgentVersions:getAgentAgentVersions":1,"aws:bedrock/getCustomModel:getCustomModel":1,"aws:bedrock/getCustomModels:getCustomModels":1,"aws:bedrock/getInferenceProfile:getInferenceProfile":1,"aws:bedrock/getInferenceProfiles:getInferenceProfiles":1,"aws:bedrockfoundation/getModel:getModel":1,"aws:bedrockfoundation/getModels:getModels":1,"aws:budgets/getBudget:getBudget":0,"aws:chatbot/getSlackWorkspace:getSlackWorkspace":1,"aws:cloudcontrol/getResource:getResource":0,"aws:cloudformation/getCloudFormationType:getCloudFormationType":0,"aws:cloudformation/getExport:getExport":0,"aws:cloudformation/getStack:getStack":0,"aws:cloudfront/getCachePolicy:getCachePolicy":0,"aws:cloudfront/getDistribution:getDistribution":0,"aws:cloudfront/getFunction:getFunction":0,"aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId":0,"aws:cloudfront/getOriginAccessControl:getOriginAccessControl":1,"aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities":0,"aws:cloudfront/getOriginAccessIdentity:getOriginAccessIdentity":0,"aws:cloudfront/getOriginRequestPolicy:getOriginRequestPolicy":0,"aws:cloudfront/getRealtimeLogConfig:getRealtimeLogConfig":0,"aws:cloudfront/getResponseHeadersPolicy:getResponseHeadersPolicy":0,"aws:cloudhsmv2/getCluster:getCluster":0,"aws:cloudtrail/getServiceAccount:getServiceAccount":0,"aws:cloudwatch/getEventBus:getEventBus":0,"aws:cloudwatch/getEventConnection:getEventConnection":0,"aws:cloudwatch/getEventSource:getEventSource":0,"aws:cloudwatch/getLogDataProtectionPolicyDocument:getLogDataProtectionPolicyDocument":0,"aws:cloudwatch/getLogGroup:getLogGroup":0,"aws:cloudwatch/getLogGroups:getLogGroups":0,"aws:codeartifact/getAuthorizationToken:getAuthorizationToken":0,"aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint":0,"aws:codebuild/getFleet:getFleet":0,"aws:codecatalyst/getDevEnvironment:getDevEnvironment":0,"aws:codecommit/getApprovalRuleTemplate:getApprovalRuleTemplate":0,"aws:codecommit/getRepository:getRepository":0,"aws:codeguruprofiler/getProfilingGroup:getProfilingGroup":1,"aws:codestarconnections/getConnection:getConnection":0,"aws:cognito/getIdentityPool:getIdentityPool":0,"aws:cognito/getUserGroup:getUserGroup":1,"aws:cognito/getUserGroups:getUserGroups":1,"aws:cognito/getUserPool:getUserPool":1,"aws:cognito/getUserPoolClient:getUserPoolClient":0,"aws:cognito/getUserPoolClients:getUserPoolClients":0,"aws:cognito/getUserPoolSigningCertificate:getUserPoolSigningCertificate":0,"aws:cognito/getUserPools:getUserPools":0,"aws:connect/getBotAssociation:getBotAssociation":0,"aws:connect/getContactFlow:getContactFlow":0,"aws:connect/getContactFlowModule:getContactFlowModule":0,"aws:connect/getHoursOfOperation:getHoursOfOperation":0,"aws:connect/getInstance:getInstance":0,"aws:connect/getInstanceStorageConfig:getInstanceStorageConfig":0,"aws:connect/getLambdaFunctionAssociation:getLambdaFunctionAssociation":0,"aws:connect/getPrompt:getPrompt":0,"aws:connect/getQueue:getQueue":0,"aws:connect/getQuickConnect:getQuickConnect":0,"aws:connect/getRoutingProfile:getRoutingProfile":0,"aws:connect/getSecurityProfile:getSecurityProfile":0,"aws:connect/getUser:getUser":0,"aws:connect/getUserHierarchyGroup:getUserHierarchyGroup":0,"aws:connect/getUserHierarchyStructure:getUserHierarchyStructure":0,"aws:connect/getVocabulary:getVocabulary":0,"aws:controltower/getControls:getControls":0,"aws:costexplorer/getCostCategory:getCostCategory":0,"aws:costexplorer/getTags:getTags":0,"aws:cur/getReportDefinition:getReportDefinition":0,"aws:datapipeline/getPipeline:getPipeline":0,"aws:datapipeline/getPipelineDefinition:getPipelineDefinition":0,"aws:datazone/getEnvironmentBlueprint:getEnvironmentBlueprint":1,"aws:devopsguru/getNotificationChannel:getNotificationChannel":1,"aws:devopsguru/getResourceCollection:getResourceCollection":1,"aws:directconnect/getConnection:getConnection":0,"aws:directconnect/getGateway:getGateway":0,"aws:directconnect/getLocation:getLocation":0,"aws:directconnect/getLocations:getLocations":0,"aws:directconnect/getRouterConfiguration:getRouterConfiguration":0,"aws:directoryservice/getDirectory:getDirectory":0,"aws:dms/getCertificate:getCertificate":0,"aws:dms/getEndpoint:getEndpoint":0,"aws:dms/getReplicationInstance:getReplicationInstance":0,"aws:dms/getReplicationSubnetGroup:getReplicationSubnetGroup":0,"aws:dms/getReplicationTask:getReplicationTask":0,"aws:docdb/getEngineVersion:getEngineVersion":0,"aws:docdb/getOrderableDbInstance:getOrderableDbInstance":0,"aws:dynamodb/getTable:getTable":0,"aws:dynamodb/getTableItem:getTableItem":0,"aws:ebs/getDefaultKmsKey:getDefaultKmsKey":0,"aws:ebs/getEbsVolumes:getEbsVolumes":0,"aws:ebs/getEncryptionByDefault:getEncryptionByDefault":0,"aws:ebs/getSnapshot:getSnapshot":0,"aws:ebs/getSnapshotIds:getSnapshotIds":0,"aws:ebs/getVolume:getVolume":0,"aws:ec2/getAmi:getAmi":0,"aws:ec2/getAmiIds:getAmiIds":0,"aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering":1,"aws:ec2/getCoipPool:getCoipPool":0,"aws:ec2/getCoipPools:getCoipPools":0,"aws:ec2/getCustomerGateway:getCustomerGateway":0,"aws:ec2/getDedicatedHost:getDedicatedHost":0,"aws:ec2/getEips:getEips":0,"aws:ec2/getElasticIp:getElasticIp":0,"aws:ec2/getInstance:getInstance":0,"aws:ec2/getInstanceType:getInstanceType":0,"aws:ec2/getInstanceTypeOffering:getInstanceTypeOffering":0,"aws:ec2/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:ec2/getInstanceTypes:getInstanceTypes":0,"aws:ec2/getInstances:getInstances":0,"aws:ec2/getInternetGateway:getInternetGateway":0,"aws:ec2/getIpamPreviewNextCidr:getIpamPreviewNextCidr":0,"aws:ec2/getKeyPair:getKeyPair":0,"aws:ec2/getLaunchConfiguration:getLaunchConfiguration":0,"aws:ec2/getLaunchTemplate:getLaunchTemplate":0,"aws:ec2/getLocalGateway:getLocalGateway":0,"aws:ec2/getLocalGatewayRouteTable:getLocalGatewayRouteTable":0,"aws:ec2/getLocalGatewayRouteTables:getLocalGatewayRouteTables":0,"aws:ec2/getLocalGatewayVirtualInterface:getLocalGatewayVirtualInterface":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroup:getLocalGatewayVirtualInterfaceGroup":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroups:getLocalGatewayVirtualInterfaceGroups":0,"aws:ec2/getLocalGateways:getLocalGateways":0,"aws:ec2/getManagedPrefixList:getManagedPrefixList":0,"aws:ec2/getManagedPrefixLists:getManagedPrefixLists":0,"aws:ec2/getNatGateway:getNatGateway":0,"aws:ec2/getNatGateways:getNatGateways":0,"aws:ec2/getNetworkAcls:getNetworkAcls":0,"aws:ec2/getNetworkInsightsAnalysis:getNetworkInsightsAnalysis":0,"aws:ec2/getNetworkInsightsPath:getNetworkInsightsPath":0,"aws:ec2/getNetworkInterface:getNetworkInterface":0,"aws:ec2/getNetworkInterfaces:getNetworkInterfaces":0,"aws:ec2/getPrefixList:getPrefixList":0,"aws:ec2/getPublicIpv4Pool:getPublicIpv4Pool":0,"aws:ec2/getPublicIpv4Pools:getPublicIpv4Pools":0,"aws:ec2/getRoute:getRoute":0,"aws:ec2/getRouteTable:getRouteTable":0,"aws:ec2/getRouteTables:getRouteTables":0,"aws:ec2/getSecurityGroup:getSecurityGroup":0,"aws:ec2/getSecurityGroups:getSecurityGroups":0,"aws:ec2/getSerialConsoleAccess:getSerialConsoleAccess":0,"aws:ec2/getSpotPrice:getSpotPrice":0,"aws:ec2/getSubnet:getSubnet":0,"aws:ec2/getSubnets:getSubnets":0,"aws:ec2/getTransitGatewayRouteTables:getTransitGatewayRouteTables":0,"aws:ec2/getVpc:getVpc":0,"aws:ec2/getVpcDhcpOptions:getVpcDhcpOptions":0,"aws:ec2/getVpcEndpoint:getVpcEndpoint":0,"aws:ec2/getVpcEndpointService:getVpcEndpointService":0,"aws:ec2/getVpcIamPool:getVpcIamPool":0,"aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs":0,"aws:ec2/getVpcIamPools:getVpcIamPools":0,"aws:ec2/getVpcIpamPool:getVpcIpamPool":0,"aws:ec2/getVpcIpamPoolCidrs:getVpcIpamPoolCidrs":0,"aws:ec2/getVpcIpamPools:getVpcIpamPools":0,"aws:ec2/getVpcPeeringConnection:getVpcPeeringConnection":0,"aws:ec2/getVpcPeeringConnections:getVpcPeeringConnections":0,"aws:ec2/getVpcs:getVpcs":0,"aws:ec2/getVpnGateway:getVpnGateway":0,"aws:ec2clientvpn/getEndpoint:getEndpoint":0,"aws:ec2transitgateway/getAttachment:getAttachment":0,"aws:ec2transitgateway/getAttachments:getAttachments":0,"aws:ec2transitgateway/getConnect:getConnect":0,"aws:ec2transitgateway/getConnectPeer:getConnectPeer":0,"aws:ec2transitgateway/getDirectConnectGatewayAttachment:getDirectConnectGatewayAttachment":0,"aws:ec2transitgateway/getMulticastDomain:getMulticastDomain":0,"aws:ec2transitgateway/getPeeringAttachment:getPeeringAttachment":0,"aws:ec2transitgateway/getPeeringAttachments:getPeeringAttachments":0,"aws:ec2transitgateway/getRouteTable:getRouteTable":0,"aws:ec2transitgateway/getRouteTableAssociations:getRouteTableAssociations":0,"aws:ec2transitgateway/getRouteTablePropagations:getRouteTablePropagations":0,"aws:ec2transitgateway/getRouteTableRoutes:getRouteTableRoutes":0,"aws:ec2transitgateway/getTransitGateway:getTransitGateway":0,"aws:ec2transitgateway/getVpcAttachment:getVpcAttachment":0,"aws:ec2transitgateway/getVpcAttachments:getVpcAttachments":0,"aws:ec2transitgateway/getVpnAttachment:getVpnAttachment":0,"aws:ecr/getAuthorizationToken:getAuthorizationToken":0,"aws:ecr/getCredentials:getCredentials":0,"aws:ecr/getImage:getImage":0,"aws:ecr/getLifecyclePolicyDocument:getLifecyclePolicyDocument":1,"aws:ecr/getPullThroughCacheRule:getPullThroughCacheRule":0,"aws:ecr/getRepositories:getRepositories":1,"aws:ecr/getRepository:getRepository":0,"aws:ecr/getRepositoryCreationTemplate:getRepositoryCreationTemplate":0,"aws:ecrpublic/getAuthorizationToken:getAuthorizationToken":0,"aws:ecs/getCluster:getCluster":0,"aws:ecs/getContainerDefinition:getContainerDefinition":0,"aws:ecs/getService:getService":0,"aws:ecs/getTaskDefinition:getTaskDefinition":0,"aws:ecs/getTaskExecution:getTaskExecution":0,"aws:efs/getAccessPoint:getAccessPoint":0,"aws:efs/getAccessPoints:getAccessPoints":0,"aws:efs/getFileSystem:getFileSystem":0,"aws:efs/getMountTarget:getMountTarget":0,"aws:eks/getAccessEntry:getAccessEntry":0,"aws:eks/getAddon:getAddon":0,"aws:eks/getAddonVersion:getAddonVersion":0,"aws:eks/getCluster:getCluster":0,"aws:eks/getClusterAuth:getClusterAuth":0,"aws:eks/getClusters:getClusters":0,"aws:eks/getNodeGroup:getNodeGroup":0,"aws:eks/getNodeGroups:getNodeGroups":0,"aws:elasticache/getCluster:getCluster":0,"aws:elasticache/getReplicationGroup:getReplicationGroup":0,"aws:elasticache/getReservedCacheNodeOffering:getReservedCacheNodeOffering":1,"aws:elasticache/getServerlessCache:getServerlessCache":1,"aws:elasticache/getSubnetGroup:getSubnetGroup":0,"aws:elasticache/getUser:getUser":0,"aws:elasticbeanstalk/getApplication:getApplication":0,"aws:elasticbeanstalk/getHostedZone:getHostedZone":0,"aws:elasticbeanstalk/getSolutionStack:getSolutionStack":0,"aws:elasticsearch/getDomain:getDomain":0,"aws:elb/getHostedZoneId:getHostedZoneId":0,"aws:elb/getLoadBalancer:getLoadBalancer":0,"aws:elb/getServiceAccount:getServiceAccount":0,"aws:emr/getReleaseLabels:getReleaseLabels":0,"aws:emr/getSupportedInstanceTypes:getSupportedInstanceTypes":1,"aws:emrcontainers/getVirtualCluster:getVirtualCluster":0,"aws:fsx/getOntapFileSystem:getOntapFileSystem":0,"aws:fsx/getOntapStorageVirtualMachine:getOntapStorageVirtualMachine":0,"aws:fsx/getOntapStorageVirtualMachines:getOntapStorageVirtualMachines":0,"aws:fsx/getOpenZfsSnapshot:getOpenZfsSnapshot":0,"aws:fsx/getWindowsFileSystem:getWindowsFileSystem":0,"aws:globalaccelerator/getAccelerator:getAccelerator":1,"aws:globalaccelerator/getCustomRoutingAccelerator:getCustomRoutingAccelerator":0,"aws:glue/getCatalogTable:getCatalogTable":0,"aws:glue/getConnection:getConnection":0,"aws:glue/getDataCatalogEncryptionSettings:getDataCatalogEncryptionSettings":0,"aws:glue/getRegistry:getRegistry":1,"aws:glue/getScript:getScript":0,"aws:grafana/getWorkspace:getWorkspace":0,"aws:guardduty/getDetector:getDetector":0,"aws:guardduty/getFindingIds:getFindingIds":1,"aws:iam/getAccessKeys:getAccessKeys":0,"aws:iam/getAccountAlias:getAccountAlias":0,"aws:iam/getGroup:getGroup":0,"aws:iam/getInstanceProfile:getInstanceProfile":0,"aws:iam/getInstanceProfiles:getInstanceProfiles":0,"aws:iam/getOpenIdConnectProvider:getOpenIdConnectProvider":0,"aws:iam/getPolicy:getPolicy":0,"aws:iam/getPolicyDocument:getPolicyDocument":0,"aws:iam/getPrincipalPolicySimulation:getPrincipalPolicySimulation":0,"aws:iam/getRole:getRole":0,"aws:iam/getRoles:getRoles":0,"aws:iam/getSamlProvider:getSamlProvider":0,"aws:iam/getServerCertificate:getServerCertificate":0,"aws:iam/getSessionContext:getSessionContext":0,"aws:iam/getUser:getUser":0,"aws:iam/getUserSshKey:getUserSshKey":0,"aws:iam/getUsers:getUsers":0,"aws:identitystore/getGroup:getGroup":0,"aws:identitystore/getGroups:getGroups":1,"aws:identitystore/getUser:getUser":0,"aws:imagebuilder/getComponent:getComponent":0,"aws:imagebuilder/getComponents:getComponents":0,"aws:imagebuilder/getContainerRecipe:getContainerRecipe":0,"aws:imagebuilder/getContainerRecipes:getContainerRecipes":0,"aws:imagebuilder/getDistributionConfiguration:getDistributionConfiguration":0,"aws:imagebuilder/getDistributionConfigurations:getDistributionConfigurations":0,"aws:imagebuilder/getImage:getImage":0,"aws:imagebuilder/getImagePipeline:getImagePipeline":0,"aws:imagebuilder/getImagePipelines:getImagePipelines":0,"aws:imagebuilder/getImageRecipe:getImageRecipe":0,"aws:imagebuilder/getImageRecipes:getImageRecipes":0,"aws:imagebuilder/getInfrastructureConfiguration:getInfrastructureConfiguration":0,"aws:imagebuilder/getInfrastructureConfigurations:getInfrastructureConfigurations":0,"aws:index/getArn:getArn":1,"aws:index/getAvailabilityZone:getAvailabilityZone":0,"aws:index/getAvailabilityZones:getAvailabilityZones":0,"aws:index/getBillingServiceAccount:getBillingServiceAccount":1,"aws:index/getCallerIdentity:getCallerIdentity":1,"aws:index/getDefaultTags:getDefaultTags":1,"aws:index/getIpRanges:getIpRanges":1,"aws:index/getPartition:getPartition":1,"aws:index/getRegion:getRegion":1,"aws:index/getRegions:getRegions":1,"aws:index/getService:getService":1,"aws:index/getServicePrincipal:getServicePrincipal":1,"aws:inspector/getRulesPackages:getRulesPackages":0,"aws:iot/getEndpoint:getEndpoint":0,"aws:iot/getRegistrationCode:getRegistrationCode":0,"aws:ivs/getStreamKey:getStreamKey":0,"aws:kendra/getExperience:getExperience":0,"aws:kendra/getFaq:getFaq":0,"aws:kendra/getIndex:getIndex":0,"aws:kendra/getQuerySuggestionsBlockList:getQuerySuggestionsBlockList":0,"aws:kendra/getThesaurus:getThesaurus":0,"aws:kinesis/getFirehoseDeliveryStream:getFirehoseDeliveryStream":0,"aws:kinesis/getStream:getStream":0,"aws:kinesis/getStreamConsumer:getStreamConsumer":0,"aws:kms/getAlias:getAlias":0,"aws:kms/getCipherText:getCipherText":0,"aws:kms/getCustomKeyStore:getCustomKeyStore":0,"aws:kms/getKey:getKey":0,"aws:kms/getPublicKey:getPublicKey":0,"aws:kms/getSecret:getSecret":0,"aws:kms/getSecrets:getSecrets":0,"aws:lakeformation/getDataLakeSettings:getDataLakeSettings":0,"aws:lakeformation/getPermissions:getPermissions":0,"aws:lakeformation/getResource:getResource":0,"aws:lambda/getAlias:getAlias":0,"aws:lambda/getCodeSigningConfig:getCodeSigningConfig":0,"aws:lambda/getFunction:getFunction":0,"aws:lambda/getFunctionUrl:getFunctionUrl":0,"aws:lambda/getFunctions:getFunctions":0,"aws:lambda/getInvocation:getInvocation":0,"aws:lambda/getLayerVersion:getLayerVersion":0,"aws:lb/getHostedZoneId:getHostedZoneId":0,"aws:lb/getLbs:getLbs":0,"aws:lb/getListener:getListener":0,"aws:lb/getLoadBalancer:getLoadBalancer":0,"aws:lb/getTargetGroup:getTargetGroup":0,"aws:lb/getTrustStore:getTrustStore":0,"aws:lex/getBot:getBot":0,"aws:lex/getBotAlias:getBotAlias":0,"aws:lex/getIntent:getIntent":0,"aws:lex/getSlotType:getSlotType":0,"aws:licensemanager/getLicenseGrants:getLicenseGrants":0,"aws:licensemanager/getReceivedLicense:getReceivedLicense":0,"aws:licensemanager/getReceivedLicenses:getReceivedLicenses":0,"aws:location/getGeofenceCollection:getGeofenceCollection":0,"aws:location/getMap:getMap":0,"aws:location/getPlaceIndex:getPlaceIndex":0,"aws:location/getRouteCalculator:getRouteCalculator":0,"aws:location/getTracker:getTracker":0,"aws:location/getTrackerAssociation:getTrackerAssociation":0,"aws:location/getTrackerAssociations:getTrackerAssociations":0,"aws:mediaconvert/getQueue:getQueue":0,"aws:medialive/getInput:getInput":1,"aws:memorydb/getAcl:getAcl":0,"aws:memorydb/getCluster:getCluster":0,"aws:memorydb/getParameterGroup:getParameterGroup":0,"aws:memorydb/getSnapshot:getSnapshot":0,"aws:memorydb/getSubnetGroup:getSubnetGroup":0,"aws:memorydb/getUser:getUser":0,"aws:mq/getBroker:getBroker":0,"aws:mq/getBrokerEngineTypes:getBrokerEngineTypes":0,"aws:mq/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:msk/getBootstrapBrokers:getBootstrapBrokers":0,"aws:msk/getBrokerNodes:getBrokerNodes":0,"aws:msk/getCluster:getCluster":0,"aws:msk/getConfiguration:getConfiguration":0,"aws:msk/getKafkaVersion:getKafkaVersion":0,"aws:msk/getVpcConnection:getVpcConnection":0,"aws:mskconnect/getConnector:getConnector":0,"aws:mskconnect/getCustomPlugin:getCustomPlugin":0,"aws:mskconnect/getWorkerConfiguration:getWorkerConfiguration":0,"aws:neptune/getEngineVersion:getEngineVersion":0,"aws:neptune/getOrderableDbInstance:getOrderableDbInstance":0,"aws:networkfirewall/getFirewall:getFirewall":0,"aws:networkfirewall/getFirewallPolicy:getFirewallPolicy":0,"aws:networkfirewall/getResourcePolicy:getResourcePolicy":0,"aws:networkmanager/getConnection:getConnection":0,"aws:networkmanager/getConnections:getConnections":0,"aws:networkmanager/getCoreNetworkPolicyDocument:getCoreNetworkPolicyDocument":0,"aws:networkmanager/getDevice:getDevice":0,"aws:networkmanager/getDevices:getDevices":0,"aws:networkmanager/getGlobalNetwork:getGlobalNetwork":0,"aws:networkmanager/getGlobalNetworks:getGlobalNetworks":0,"aws:networkmanager/getLink:getLink":0,"aws:networkmanager/getLinks:getLinks":0,"aws:networkmanager/getSite:getSite":0,"aws:networkmanager/getSites:getSites":0,"aws:oam/getLink:getLink":0,"aws:oam/getLinks:getLinks":0,"aws:oam/getSink:getSink":0,"aws:oam/getSinks:getSinks":0,"aws:opensearch/getDomain:getDomain":0,"aws:opensearch/getServerlessAccessPolicy:getServerlessAccessPolicy":1,"aws:opensearch/getServerlessCollection:getServerlessCollection":1,"aws:opensearch/getServerlessLifecyclePolicy:getServerlessLifecyclePolicy":1,"aws:opensearch/getServerlessSecurityConfig:getServerlessSecurityConfig":1,"aws:opensearch/getServerlessSecurityPolicy:getServerlessSecurityPolicy":0,"aws:opensearch/getServerlessVpcEndpoint:getServerlessVpcEndpoint":0,"aws:organizations/getDelegatedAdministrators:getDelegatedAdministrators":0,"aws:organizations/getDelegatedServices:getDelegatedServices":0,"aws:organizations/getOrganization:getOrganization":0,"aws:organizations/getOrganizationalUnit:getOrganizationalUnit":0,"aws:organizations/getOrganizationalUnitChildAccounts:getOrganizationalUnitChildAccounts":0,"aws:organizations/getOrganizationalUnitDescendantAccounts:getOrganizationalUnitDescendantAccounts":0,"aws:organizations/getOrganizationalUnitDescendantOrganizationalUnits:getOrganizationalUnitDescendantOrganizationalUnits":0,"aws:organizations/getOrganizationalUnits:getOrganizationalUnits":0,"aws:organizations/getPolicies:getPolicies":0,"aws:organizations/getPoliciesForTarget:getPoliciesForTarget":0,"aws:organizations/getPolicy:getPolicy":0,"aws:organizations/getResourceTags:getResourceTags":0,"aws:outposts/getAsset:getAsset":0,"aws:outposts/getAssets:getAssets":0,"aws:outposts/getOutpost:getOutpost":0,"aws:outposts/getOutpostInstanceType:getOutpostInstanceType":0,"aws:outposts/getOutpostInstanceTypes:getOutpostInstanceTypes":0,"aws:outposts/getOutposts:getOutposts":0,"aws:outposts/getSite:getSite":0,"aws:outposts/getSites:getSites":0,"aws:polly/getVoices:getVoices":1,"aws:pricing/getProduct:getProduct":0,"aws:qldb/getLedger:getLedger":0,"aws:quicksight/getAnalysis:getAnalysis":0,"aws:quicksight/getDataSet:getDataSet":0,"aws:quicksight/getQuicksightAnalysis:getQuicksightAnalysis":0,"aws:quicksight/getQuicksightGroup:getQuicksightGroup":0,"aws:quicksight/getQuicksightUser:getQuicksightUser":0,"aws:quicksight/getTheme:getTheme":0,"aws:ram/getResourceShare:getResourceShare":0,"aws:rds/getCertificate:getCertificate":0,"aws:rds/getCluster:getCluster":0,"aws:rds/getClusterParameterGroup:getClusterParameterGroup":1,"aws:rds/getClusterSnapshot:getClusterSnapshot":0,"aws:rds/getClusters:getClusters":0,"aws:rds/getEngineVersion:getEngineVersion":0,"aws:rds/getEventCategories:getEventCategories":0,"aws:rds/getInstance:getInstance":0,"aws:rds/getInstances:getInstances":0,"aws:rds/getOrderableDbInstance:getOrderableDbInstance":0,"aws:rds/getParameterGroup:getParameterGroup":0,"aws:rds/getProxy:getProxy":0,"aws:rds/getReservedInstanceOffering:getReservedInstanceOffering":0,"aws:rds/getSnapshot:getSnapshot":0,"aws:rds/getSubnetGroup:getSubnetGroup":0,"aws:redshift/getCluster:getCluster":0,"aws:redshift/getClusterCredentials:getClusterCredentials":0,"aws:redshift/getDataShares:getDataShares":1,"aws:redshift/getOrderableCluster:getOrderableCluster":0,"aws:redshift/getProducerDataShares:getProducerDataShares":1,"aws:redshift/getServiceAccount:getServiceAccount":0,"aws:redshift/getSubnetGroup:getSubnetGroup":0,"aws:redshiftserverless/getCredentials:getCredentials":0,"aws:redshiftserverless/getNamespace:getNamespace":0,"aws:redshiftserverless/getWorkgroup:getWorkgroup":0,"aws:resourceexplorer/search:Search":1,"aws:resourcegroupstaggingapi/getResources:getResources":0,"aws:route53/getDelegationSet:getDelegationSet":0,"aws:route53/getProfilesProfiles:getProfilesProfiles":1,"aws:route53/getQueryLogConfig:getQueryLogConfig":0,"aws:route53/getResolverEndpoint:getResolverEndpoint":0,"aws:route53/getResolverFirewallConfig:getResolverFirewallConfig":0,"aws:route53/getResolverFirewallDomainList:getResolverFirewallDomainList":0,"aws:route53/getResolverFirewallRuleGroup:getResolverFirewallRuleGroup":0,"aws:route53/getResolverFirewallRuleGroupAssociation:getResolverFirewallRuleGroupAssociation":0,"aws:route53/getResolverFirewallRules:getResolverFirewallRules":0,"aws:route53/getResolverRule:getResolverRule":0,"aws:route53/getResolverRules:getResolverRules":0,"aws:route53/getTrafficPolicyDocument:getTrafficPolicyDocument":0,"aws:route53/getZone:getZone":0,"aws:route53/getZones:getZones":1,"aws:s3/getAccountPublicAccessBlock:getAccountPublicAccessBlock":0,"aws:s3/getBucket:getBucket":0,"aws:s3/getBucketObject:getBucketObject":0,"aws:s3/getBucketObjects:getBucketObjects":0,"aws:s3/getBucketPolicy:getBucketPolicy":0,"aws:s3/getCanonicalUserId:getCanonicalUserId":0,"aws:s3/getDirectoryBuckets:getDirectoryBuckets":1,"aws:s3/getObject:getObject":0,"aws:s3/getObjects:getObjects":0,"aws:s3control/getMultiRegionAccessPoint:getMultiRegionAccessPoint":0,"aws:sagemaker/getPrebuiltEcrImage:getPrebuiltEcrImage":0,"aws:secretsmanager/getRandomPassword:getRandomPassword":0,"aws:secretsmanager/getSecret:getSecret":0,"aws:secretsmanager/getSecretRotation:getSecretRotation":0,"aws:secretsmanager/getSecretVersion:getSecretVersion":0,"aws:secretsmanager/getSecretVersions:getSecretVersions":1,"aws:secretsmanager/getSecrets:getSecrets":0,"aws:securityhub/getStandardsControlAssociations:getStandardsControlAssociations":1,"aws:serverlessrepository/getApplication:getApplication":0,"aws:servicecatalog/getAppregistryApplication:getAppregistryApplication":1,"aws:servicecatalog/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}},"aws_wafv2_web_acl":{"maxItemsOneOverrides":{"association_config.$.request_body.$.api_gateway":false,"association_config.$.request_body.$.app_runner_service":false,"association_config.$.request_body.$.cloudfront":false,"association_config.$.request_body.$.cognito_user_pool":false,"association_config.$.request_body.$.verified_access_instance":false}}},"datasources":{"aws_efs_file_system":{"maxItemsOneOverrides":{"lifecycle_policy":true}},"aws_quicksight_analysis":{"renames":["aws:quicksight/getAnalysis:getAnalysis"]},"aws_vpc_ipam_pool":{"renames":["aws:ec2/getVpcIamPool:getVpcIamPool"]},"aws_vpc_ipam_pool_cidrs":{"renames":["aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs"]},"aws_vpc_ipam_pools":{"renames":["aws:ec2/getVpcIamPools:getVpcIamPools"]}}},"mux":{"resources":{"aws:accessanalyzer/analyzer:Analyzer":0,"aws:accessanalyzer/archiveRule:ArchiveRule":0,"aws:account/alternativeContact:AlternativeContact":0,"aws:account/primaryContact:PrimaryContact":0,"aws:account/region:Region":0,"aws:acm/certificate:Certificate":0,"aws:acm/certificateValidation:CertificateValidation":0,"aws:acmpca/certificate:Certificate":0,"aws:acmpca/certificateAuthority:CertificateAuthority":0,"aws:acmpca/certificateAuthorityCertificate:CertificateAuthorityCertificate":0,"aws:acmpca/permission:Permission":0,"aws:acmpca/policy:Policy":0,"aws:alb/listener:Listener":0,"aws:alb/listenerCertificate:ListenerCertificate":0,"aws:alb/listenerRule:ListenerRule":0,"aws:alb/loadBalancer:LoadBalancer":0,"aws:alb/targetGroup:TargetGroup":0,"aws:alb/targetGroupAttachment:TargetGroupAttachment":0,"aws:amp/alertManagerDefinition:AlertManagerDefinition":0,"aws:amp/ruleGroupNamespace:RuleGroupNamespace":0,"aws:amp/scraper:Scraper":1,"aws:amp/workspace:Workspace":0,"aws:amplify/app:App":0,"aws:amplify/backendEnvironment:BackendEnvironment":0,"aws:amplify/branch:Branch":0,"aws:amplify/domainAssociation:DomainAssociation":0,"aws:amplify/webhook:Webhook":0,"aws:apigateway/account:Account":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/restoreTestingPlan:RestoreTestingPlan":1,"aws:backup/restoreTestingSelection:RestoreTestingSelection":1,"aws:backup/selection:Selection":0,"aws:backup/vault:Vault":0,"aws:backup/vaultLockConfiguration:VaultLockConfiguration":0,"aws:backup/vaultNotifications:VaultNotifications":0,"aws:backup/vaultPolicy:VaultPolicy":0,"aws:batch/computeEnvironment:ComputeEnvironment":0,"aws:batch/jobDefinition:JobDefinition":0,"aws:batch/jobQueue:JobQueue":1,"aws:batch/schedulingPolicy:SchedulingPolicy":0,"aws:bcmdata/export:Export":1,"aws:bedrock/agentAgent:AgentAgent":1,"aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup":1,"aws:bedrock/agentAgentAlias:AgentAgentAlias":1,"aws:bedrock/agentAgentKnowledgeBaseAssociation:AgentAgentKnowledgeBaseAssociation":1,"aws:bedrock/agentDataSource:AgentDataSource":1,"aws:bedrock/agentKnowledgeBase:AgentKnowledgeBase":1,"aws:bedrock/customModel:CustomModel":1,"aws:bedrock/guardrail:Guardrail":1,"aws:bedrock/guardrailVersion:GuardrailVersion":1,"aws:bedrock/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:datazone/userProfile:UserProfile":1,"aws:dax/cluster:Cluster":0,"aws:dax/parameterGroup:ParameterGroup":0,"aws:dax/subnetGroup:SubnetGroup":0,"aws:detective/graph:Graph":0,"aws:detective/invitationAccepter:InvitationAccepter":0,"aws:detective/member:Member":0,"aws:detective/organizationAdminAccount:OrganizationAdminAccount":0,"aws:detective/organizationConfiguration:OrganizationConfiguration":0,"aws:devicefarm/devicePool:DevicePool":0,"aws:devicefarm/instanceProfile:InstanceProfile":0,"aws:devicefarm/networkProfile:NetworkProfile":0,"aws:devicefarm/project:Project":0,"aws:devicefarm/testGridProject:TestGridProject":0,"aws:devicefarm/upload:Upload":0,"aws:devopsguru/eventSourcesConfig:EventSourcesConfig":1,"aws:devopsguru/notificationChannel:NotificationChannel":1,"aws:devopsguru/resourceCollection:ResourceCollection":1,"aws:devopsguru/serviceIntegration:ServiceIntegration":1,"aws:directconnect/bgpPeer:BgpPeer":0,"aws:directconnect/connection:Connection":0,"aws:directconnect/connectionAssociation:ConnectionAssociation":0,"aws:directconnect/connectionConfirmation:ConnectionConfirmation":0,"aws:directconnect/gateway:Gateway":0,"aws:directconnect/gatewayAssociation:GatewayAssociation":0,"aws:directconnect/gatewayAssociationProposal:GatewayAssociationProposal":0,"aws:directconnect/hostedConnection:HostedConnection":0,"aws:directconnect/hostedPrivateVirtualInterface:HostedPrivateVirtualInterface":0,"aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter":0,"aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface":0,"aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter":0,"aws:directconnect/hostedTransitVirtualInterface:HostedTransitVirtualInterface":0,"aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor":0,"aws:directconnect/linkAggregationGroup:LinkAggregationGroup":0,"aws:directconnect/macsecKeyAssociation:MacsecKeyAssociation":0,"aws:directconnect/privateVirtualInterface:PrivateVirtualInterface":0,"aws:directconnect/publicVirtualInterface:PublicVirtualInterface":0,"aws:directconnect/transitVirtualInterface:TransitVirtualInterface":0,"aws:directoryservice/conditionalForwader:ConditionalForwader":0,"aws:directoryservice/directory:Directory":0,"aws:directoryservice/logService:LogService":0,"aws:directoryservice/radiusSettings:RadiusSettings":0,"aws:directoryservice/serviceRegion:ServiceRegion":0,"aws:directoryservice/sharedDirectory:SharedDirectory":0,"aws:directoryservice/sharedDirectoryAccepter:SharedDirectoryAccepter":0,"aws:directoryservice/trust:Trust":1,"aws:dlm/lifecyclePolicy:LifecyclePolicy":0,"aws:dms/certificate:Certificate":0,"aws:dms/endpoint:Endpoint":0,"aws:dms/eventSubscription:EventSubscription":0,"aws:dms/replicationConfig:ReplicationConfig":0,"aws:dms/replicationInstance:ReplicationInstance":0,"aws:dms/replicationSubnetGroup:ReplicationSubnetGroup":0,"aws:dms/replicationTask:ReplicationTask":0,"aws:dms/s3Endpoint:S3Endpoint":0,"aws:docdb/cluster:Cluster":0,"aws:docdb/clusterInstance:ClusterInstance":0,"aws:docdb/clusterParameterGroup:ClusterParameterGroup":0,"aws:docdb/clusterSnapshot:ClusterSnapshot":0,"aws:docdb/elasticCluster:ElasticCluster":1,"aws:docdb/eventSubscription:EventSubscription":0,"aws:docdb/globalCluster:GlobalCluster":0,"aws:docdb/subnetGroup:SubnetGroup":0,"aws:drs/replicationConfigurationTemplate:ReplicationConfigurationTemplate":1,"aws:dynamodb/contributorInsights:ContributorInsights":0,"aws:dynamodb/globalTable:GlobalTable":0,"aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination":0,"aws:dynamodb/resourcePolicy:ResourcePolicy":1,"aws:dynamodb/table:Table":0,"aws:dynamodb/tableExport:TableExport":0,"aws:dynamodb/tableItem:TableItem":0,"aws:dynamodb/tableReplica:TableReplica":0,"aws:dynamodb/tag:Tag":0,"aws:ebs/defaultKmsKey:DefaultKmsKey":0,"aws:ebs/encryptionByDefault:EncryptionByDefault":0,"aws:ebs/fastSnapshotRestore:FastSnapshotRestore":1,"aws:ebs/snapshot:Snapshot":0,"aws:ebs/snapshotBlockPublicAccess:SnapshotBlockPublicAccess":0,"aws:ebs/snapshotCopy:SnapshotCopy":0,"aws:ebs/snapshotImport:SnapshotImport":0,"aws:ebs/volume:Volume":0,"aws:ec2/ami:Ami":0,"aws:ec2/amiCopy:AmiCopy":0,"aws:ec2/amiFromInstance:AmiFromInstance":0,"aws:ec2/amiLaunchPermission:AmiLaunchPermission":0,"aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup":0,"aws:ec2/capacityBlockReservation:CapacityBlockReservation":1,"aws:ec2/capacityReservation:CapacityReservation":0,"aws:ec2/carrierGateway:CarrierGateway":0,"aws:ec2/customerGateway:CustomerGateway":0,"aws:ec2/dedicatedHost:DedicatedHost":0,"aws:ec2/defaultNetworkAcl:DefaultNetworkAcl":0,"aws:ec2/defaultRouteTable:DefaultRouteTable":0,"aws:ec2/defaultSecurityGroup:DefaultSecurityGroup":0,"aws:ec2/defaultSubnet:DefaultSubnet":0,"aws:ec2/defaultVpc:DefaultVpc":0,"aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions":0,"aws:ec2/egressOnlyInternetGateway:EgressOnlyInternetGateway":0,"aws:ec2/eip:Eip":0,"aws:ec2/eipAssociation:EipAssociation":0,"aws:ec2/eipDomainName:EipDomainName":1,"aws:ec2/fleet:Fleet":0,"aws:ec2/flowLog:FlowLog":0,"aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess":0,"aws:ec2/instance:Instance":0,"aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults":1,"aws:ec2/internetGateway:InternetGateway":0,"aws:ec2/internetGatewayAttachment:InternetGatewayAttachment":0,"aws:ec2/keyPair:KeyPair":0,"aws:ec2/launchConfiguration:LaunchConfiguration":0,"aws:ec2/launchTemplate:LaunchTemplate":0,"aws:ec2/localGatewayRoute:LocalGatewayRoute":0,"aws:ec2/localGatewayRouteTableVpcAssociation:LocalGatewayRouteTableVpcAssociation":0,"aws:ec2/mainRouteTableAssociation:MainRouteTableAssociation":0,"aws:ec2/managedPrefixList:ManagedPrefixList":0,"aws:ec2/managedPrefixListEntry:ManagedPrefixListEntry":0,"aws:ec2/natGateway:NatGateway":0,"aws:ec2/networkAcl:NetworkAcl":0,"aws:ec2/networkAclAssociation:NetworkAclAssociation":0,"aws:ec2/networkAclRule:NetworkAclRule":0,"aws:ec2/networkInsightsAnalysis:NetworkInsightsAnalysis":0,"aws:ec2/networkInsightsPath:NetworkInsightsPath":0,"aws:ec2/networkInterface:NetworkInterface":0,"aws:ec2/networkInterfaceAttachment:NetworkInterfaceAttachment":0,"aws:ec2/networkInterfaceSecurityGroupAttachment:NetworkInterfaceSecurityGroupAttachment":0,"aws:ec2/peeringConnectionOptions:PeeringConnectionOptions":0,"aws:ec2/placementGroup:PlacementGroup":0,"aws:ec2/proxyProtocolPolicy:ProxyProtocolPolicy":0,"aws:ec2/route:Route":0,"aws:ec2/routeTable:RouteTable":0,"aws:ec2/routeTableAssociation:RouteTableAssociation":0,"aws:ec2/securityGroup:SecurityGroup":0,"aws:ec2/securityGroupAssociation:SecurityGroupAssociation":0,"aws:ec2/securityGroupRule:SecurityGroupRule":0,"aws:ec2/serialConsoleAccess:SerialConsoleAccess":0,"aws:ec2/snapshotCreateVolumePermission:SnapshotCreateVolumePermission":0,"aws:ec2/spotDatafeedSubscription:SpotDatafeedSubscription":0,"aws:ec2/spotFleetRequest:SpotFleetRequest":0,"aws:ec2/spotInstanceRequest:SpotInstanceRequest":0,"aws:ec2/subnet:Subnet":0,"aws:ec2/subnetCidrReservation:SubnetCidrReservation":0,"aws:ec2/tag:Tag":0,"aws:ec2/trafficMirrorFilter:TrafficMirrorFilter":0,"aws:ec2/trafficMirrorFilterRule:TrafficMirrorFilterRule":0,"aws:ec2/trafficMirrorSession:TrafficMirrorSession":0,"aws:ec2/trafficMirrorTarget:TrafficMirrorTarget":0,"aws:ec2/volumeAttachment:VolumeAttachment":0,"aws:ec2/vpc:Vpc":0,"aws:ec2/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/groupPolicyAttachmentsExclusive:GroupPolicyAttachmentsExclusive":1,"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/rolePolicyAttachmentsExclusive:RolePolicyAttachmentsExclusive":1,"aws:iam/samlProvider:SamlProvider":0,"aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences":0,"aws:iam/serverCertificate:ServerCertificate":0,"aws:iam/serviceLinkedRole:ServiceLinkedRole":0,"aws:iam/serviceSpecificCredential:ServiceSpecificCredential":0,"aws:iam/signingCertificate:SigningCertificate":0,"aws:iam/sshKey:SshKey":0,"aws:iam/user:User":0,"aws:iam/userGroupMembership:UserGroupMembership":0,"aws:iam/userLoginProfile:UserLoginProfile":0,"aws:iam/userPoliciesExclusive:UserPoliciesExclusive":1,"aws:iam/userPolicy:UserPolicy":0,"aws:iam/userPolicyAttachment:UserPolicyAttachment":0,"aws:iam/userPolicyAttachmentsExclusive:UserPolicyAttachmentsExclusive":1,"aws:iam/virtualMfaDevice:VirtualMfaDevice":0,"aws:identitystore/group:Group":0,"aws:identitystore/groupMembership:GroupMembership":0,"aws:identitystore/user:User":0,"aws:imagebuilder/component:Component":0,"aws:imagebuilder/containerRecipe:ContainerRecipe":0,"aws:imagebuilder/distributionConfiguration:DistributionConfiguration":0,"aws:imagebuilder/image:Image":0,"aws:imagebuilder/imagePipeline:ImagePipeline":0,"aws:imagebuilder/imageRecipe:ImageRecipe":0,"aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration":0,"aws:imagebuilder/lifecyclePolicy:LifecyclePolicy":1,"aws:imagebuilder/workflow:Workflow":0,"aws:inspector/assessmentTarget:AssessmentTarget":0,"aws:inspector/assessmentTemplate:AssessmentTemplate":0,"aws:inspector/resourceGroup:ResourceGroup":0,"aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount":0,"aws:inspector2/enabler:Enabler":0,"aws:inspector2/memberAssociation:MemberAssociation":0,"aws:inspector2/organizationConfiguration:OrganizationConfiguration":0,"aws:iot/authorizer:Authorizer":0,"aws:iot/billingGroup:BillingGroup":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/smsvoicev2ConfigurationSet:Smsvoicev2ConfigurationSet":1,"aws:pinpoint/smsvoicev2OptOutList:Smsvoicev2OptOutList":1,"aws:pinpoint/smsvoicev2PhoneNumber:Smsvoicev2PhoneNumber":1,"aws:pipes/pipe:Pipe":0,"aws:qldb/ledger:Ledger":0,"aws:qldb/stream:Stream":0,"aws:quicksight/accountSubscription:AccountSubscription":0,"aws:quicksight/analysis:Analysis":0,"aws:quicksight/dashboard:Dashboard":0,"aws:quicksight/dataSet:DataSet":0,"aws:quicksight/dataSource:DataSource":0,"aws:quicksight/folder:Folder":0,"aws:quicksight/folderMembership:FolderMembership":1,"aws:quicksight/group:Group":0,"aws:quicksight/groupMembership:GroupMembership":0,"aws:quicksight/iamPolicyAssignment:IamPolicyAssignment":1,"aws:quicksight/ingestion:Ingestion":1,"aws:quicksight/namespace:Namespace":1,"aws:quicksight/refreshSchedule:RefreshSchedule":1,"aws:quicksight/template:Template":0,"aws:quicksight/templateAlias:TemplateAlias":1,"aws:quicksight/theme:Theme":0,"aws:quicksight/user:User":0,"aws:quicksight/vpcConnection:VpcConnection":1,"aws:ram/principalAssociation:PrincipalAssociation":0,"aws:ram/resourceAssociation:ResourceAssociation":0,"aws:ram/resourceShare:ResourceShare":0,"aws:ram/resourceShareAccepter:ResourceShareAccepter":0,"aws:ram/sharingWithOrganization:SharingWithOrganization":0,"aws:rbin/rule:Rule":0,"aws:rds/certificate:Certificate":0,"aws:rds/cluster:Cluster":0,"aws:rds/clusterActivityStream:ClusterActivityStream":0,"aws:rds/clusterEndpoint:ClusterEndpoint":0,"aws:rds/clusterInstance:ClusterInstance":0,"aws:rds/clusterParameterGroup:ClusterParameterGroup":0,"aws:rds/clusterRoleAssociation:ClusterRoleAssociation":0,"aws:rds/clusterSnapshot:ClusterSnapshot":0,"aws:rds/customDbEngineVersion:CustomDbEngineVersion":0,"aws:rds/eventSubscription:EventSubscription":0,"aws:rds/exportTask:ExportTask":1,"aws:rds/globalCluster:GlobalCluster":0,"aws:rds/instance:Instance":0,"aws:rds/instanceAutomatedBackupsReplication:InstanceAutomatedBackupsReplication":0,"aws:rds/integration:Integration":1,"aws:rds/optionGroup:OptionGroup":0,"aws:rds/parameterGroup:ParameterGroup":0,"aws:rds/proxy:Proxy":0,"aws:rds/proxyDefaultTargetGroup:ProxyDefaultTargetGroup":0,"aws:rds/proxyEndpoint:ProxyEndpoint":0,"aws:rds/proxyTarget:ProxyTarget":0,"aws:rds/reservedInstance:ReservedInstance":0,"aws:rds/roleAssociation:RoleAssociation":0,"aws:rds/snapshot:Snapshot":0,"aws:rds/snapshotCopy:SnapshotCopy":0,"aws:rds/subnetGroup:SubnetGroup":0,"aws:redshift/authenticationProfile:AuthenticationProfile":0,"aws:redshift/cluster:Cluster":0,"aws:redshift/clusterIamRoles:ClusterIamRoles":0,"aws:redshift/clusterSnapshot:ClusterSnapshot":0,"aws:redshift/dataShareAuthorization:DataShareAuthorization":1,"aws:redshift/dataShareConsumerAssociation:DataShareConsumerAssociation":1,"aws:redshift/endpointAccess:EndpointAccess":0,"aws:redshift/endpointAuthorization:EndpointAuthorization":0,"aws:redshift/eventSubscription:EventSubscription":0,"aws:redshift/hsmClientCertificate:HsmClientCertificate":0,"aws:redshift/hsmConfiguration:HsmConfiguration":0,"aws:redshift/logging:Logging":1,"aws:redshift/parameterGroup:ParameterGroup":0,"aws:redshift/partner:Partner":0,"aws:redshift/resourcePolicy:ResourcePolicy":0,"aws:redshift/scheduledAction:ScheduledAction":0,"aws:redshift/snapshotCopy:SnapshotCopy":1,"aws:redshift/snapshotCopyGrant:SnapshotCopyGrant":0,"aws:redshift/snapshotSchedule:SnapshotSchedule":0,"aws:redshift/snapshotScheduleAssociation:SnapshotScheduleAssociation":0,"aws:redshift/subnetGroup:SubnetGroup":0,"aws:redshift/usageLimit:UsageLimit":0,"aws:redshiftdata/statement:Statement":0,"aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation":1,"aws:redshiftserverless/endpointAccess:EndpointAccess":0,"aws:redshiftserverless/namespace:Namespace":0,"aws:redshiftserverless/resourcePolicy:ResourcePolicy":0,"aws:redshiftserverless/snapshot:Snapshot":0,"aws:redshiftserverless/usageLimit:UsageLimit":0,"aws:redshiftserverless/workgroup:Workgroup":0,"aws:rekognition/collection:Collection":1,"aws:rekognition/project:Project":1,"aws:rekognition/streamProcessor:StreamProcessor":1,"aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy":1,"aws:resourceexplorer/index:Index":1,"aws:resourceexplorer/view:View":1,"aws:resourcegroups/group:Group":0,"aws:resourcegroups/resource:Resource":0,"aws:rolesanywhere/profile:Profile":0,"aws:rolesanywhere/trustAnchor:TrustAnchor":0,"aws:route53/cidrCollection:CidrCollection":1,"aws:route53/cidrLocation:CidrLocation":1,"aws:route53/delegationSet:DelegationSet":0,"aws:route53/healthCheck:HealthCheck":0,"aws:route53/hostedZoneDnsSec:HostedZoneDnsSec":0,"aws:route53/keySigningKey:KeySigningKey":0,"aws:route53/profilesAssociation:ProfilesAssociation":1,"aws:route53/profilesProfile:ProfilesProfile":1,"aws:route53/profilesResourceAssociation:ProfilesResourceAssociation":1,"aws:route53/queryLog:QueryLog":0,"aws:route53/record:Record":0,"aws:route53/resolverConfig:ResolverConfig":0,"aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig":0,"aws:route53/resolverEndpoint:ResolverEndpoint":0,"aws:route53/resolverFirewallConfig:ResolverFirewallConfig":0,"aws:route53/resolverFirewallDomainList:ResolverFirewallDomainList":0,"aws:route53/resolverFirewallRule:ResolverFirewallRule":0,"aws:route53/resolverFirewallRuleGroup:ResolverFirewallRuleGroup":0,"aws:route53/resolverFirewallRuleGroupAssociation:ResolverFirewallRuleGroupAssociation":0,"aws:route53/resolverQueryLogConfig:ResolverQueryLogConfig":0,"aws:route53/resolverQueryLogConfigAssociation:ResolverQueryLogConfigAssociation":0,"aws:route53/resolverRule:ResolverRule":0,"aws:route53/resolverRuleAssociation:ResolverRuleAssociation":0,"aws:route53/trafficPolicy:TrafficPolicy":0,"aws:route53/trafficPolicyInstance:TrafficPolicyInstance":0,"aws:route53/vpcAssociationAuthorization:VpcAssociationAuthorization":0,"aws:route53/zone:Zone":0,"aws:route53/zoneAssociation:ZoneAssociation":0,"aws:route53domains/delegationSignerRecord:DelegationSignerRecord":1,"aws:route53domains/registeredDomain:RegisteredDomain":0,"aws:route53recoverycontrol/cluster:Cluster":0,"aws:route53recoverycontrol/controlPanel:ControlPanel":0,"aws:route53recoverycontrol/routingControl:RoutingControl":0,"aws:route53recoverycontrol/safetyRule:SafetyRule":0,"aws:route53recoveryreadiness/cell:Cell":0,"aws:route53recoveryreadiness/readinessCheck:ReadinessCheck":0,"aws:route53recoveryreadiness/recoveryGroup:RecoveryGroup":0,"aws:route53recoveryreadiness/resourceSet:ResourceSet":0,"aws:rum/appMonitor:AppMonitor":0,"aws:rum/metricsDestination:MetricsDestination":0,"aws:s3/accessPoint:AccessPoint":0,"aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock":0,"aws:s3/analyticsConfiguration:AnalyticsConfiguration":0,"aws:s3/bucket:Bucket":0,"aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2":0,"aws:s3/bucketAclV2:BucketAclV2":0,"aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2":0,"aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration":0,"aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2":0,"aws:s3/bucketLoggingV2:BucketLoggingV2":0,"aws:s3/bucketMetric:BucketMetric":0,"aws:s3/bucketNotification:BucketNotification":0,"aws:s3/bucketObject:BucketObject":0,"aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2":0,"aws:s3/bucketObjectv2:BucketObjectv2":0,"aws:s3/bucketOwnershipControls:BucketOwnershipControls":0,"aws:s3/bucketPolicy:BucketPolicy":0,"aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock":0,"aws:s3/bucketReplicationConfig:BucketReplicationConfig":0,"aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2":0,"aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2":0,"aws:s3/bucketV2:BucketV2":0,"aws:s3/bucketVersioningV2:BucketVersioningV2":0,"aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2":0,"aws:s3/directoryBucket:DirectoryBucket":1,"aws:s3/inventory:Inventory":0,"aws:s3/objectCopy:ObjectCopy":0,"aws:s3control/accessGrant:AccessGrant":1,"aws:s3control/accessGrantsInstance:AccessGrantsInstance":1,"aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy":1,"aws:s3control/accessGrantsLocation:AccessGrantsLocation":1,"aws:s3control/accessPointPolicy:AccessPointPolicy":0,"aws:s3control/bucket:Bucket":0,"aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration":0,"aws:s3control/bucketPolicy:BucketPolicy":0,"aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint":0,"aws:s3control/multiRegionAccessPointPolicy:MultiRegionAccessPointPolicy":0,"aws:s3control/objectLambdaAccessPoint:ObjectLambdaAccessPoint":0,"aws:s3control/objectLambdaAccessPointPolicy:ObjectLambdaAccessPointPolicy":0,"aws:s3control/storageLensConfiguration:StorageLensConfiguration":0,"aws:s3outposts/endpoint:Endpoint":0,"aws:sagemaker/app:App":0,"aws:sagemaker/appImageConfig:AppImageConfig":0,"aws:sagemaker/codeRepository:CodeRepository":0,"aws:sagemaker/dataQualityJobDefinition:DataQualityJobDefinition":0,"aws:sagemaker/device:Device":0,"aws:sagemaker/deviceFleet:DeviceFleet":0,"aws:sagemaker/domain:Domain":0,"aws:sagemaker/endpoint:Endpoint":0,"aws:sagemaker/endpointConfiguration:EndpointConfiguration":0,"aws:sagemaker/featureGroup:FeatureGroup":0,"aws:sagemaker/flowDefinition:FlowDefinition":0,"aws:sagemaker/hub:Hub":0,"aws:sagemaker/humanTaskUI:HumanTaskUI":0,"aws:sagemaker/image:Image":0,"aws:sagemaker/imageVersion:ImageVersion":0,"aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer":0,"aws:sagemaker/model:Model":0,"aws:sagemaker/modelPackageGroup:ModelPackageGroup":0,"aws:sagemaker/modelPackageGroupPolicy:ModelPackageGroupPolicy":0,"aws:sagemaker/monitoringSchedule:MonitoringSchedule":0,"aws:sagemaker/notebookInstance:NotebookInstance":0,"aws:sagemaker/notebookInstanceLifecycleConfiguration:NotebookInstanceLifecycleConfiguration":0,"aws:sagemaker/pipeline:Pipeline":0,"aws:sagemaker/project:Project":0,"aws:sagemaker/servicecatalogPortfolioStatus:ServicecatalogPortfolioStatus":0,"aws:sagemaker/space:Space":0,"aws:sagemaker/studioLifecycleConfig:StudioLifecycleConfig":0,"aws:sagemaker/userProfile:UserProfile":0,"aws:sagemaker/workforce:Workforce":0,"aws:sagemaker/workteam:Workteam":0,"aws:scheduler/schedule:Schedule":0,"aws:scheduler/scheduleGroup:ScheduleGroup":0,"aws:schemas/discoverer:Discoverer":0,"aws:schemas/registry:Registry":0,"aws:schemas/registryPolicy:RegistryPolicy":0,"aws:schemas/schema:Schema":0,"aws:secretsmanager/secret:Secret":0,"aws:secretsmanager/secretPolicy:SecretPolicy":0,"aws:secretsmanager/secretRotation:SecretRotation":0,"aws:secretsmanager/secretVersion:SecretVersion":0,"aws:securityhub/account:Account":0,"aws:securityhub/actionTarget:ActionTarget":0,"aws:securityhub/automationRule:AutomationRule":1,"aws:securityhub/configurationPolicy:ConfigurationPolicy":0,"aws:securityhub/configurationPolicyAssociation:ConfigurationPolicyAssociation":0,"aws:securityhub/findingAggregator:FindingAggregator":0,"aws:securityhub/insight:Insight":0,"aws:securityhub/inviteAccepter:InviteAccepter":0,"aws:securityhub/member:Member":0,"aws:securityhub/organizationAdminAccount:OrganizationAdminAccount":0,"aws:securityhub/organizationConfiguration:OrganizationConfiguration":0,"aws:securityhub/productSubscription:ProductSubscription":0,"aws:securityhub/standardsControl:StandardsControl":0,"aws:securityhub/standardsControlAssociation:StandardsControlAssociation":1,"aws:securityhub/standardsSubscription:StandardsSubscription":0,"aws:securitylake/awsLogSource:AwsLogSource":1,"aws:securitylake/customLogSource:CustomLogSource":1,"aws:securitylake/dataLake:DataLake":1,"aws:securitylake/subscriber:Subscriber":1,"aws:securitylake/subscriberNotification:SubscriberNotification":1,"aws:serverlessrepository/cloudFormationStack:CloudFormationStack":0,"aws:servicecatalog/appregistryApplication:AppregistryApplication":1,"aws:servicecatalog/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/getDefaultScraperConfiguration:getDefaultScraperConfiguration":1,"aws:amp/getWorkspace:getWorkspace":0,"aws:amp/getWorkspaces:getWorkspaces":0,"aws:apigateway/getAuthorizer:getAuthorizer":0,"aws:apigateway/getAuthorizers:getAuthorizers":0,"aws:apigateway/getDomainName:getDomainName":0,"aws:apigateway/getExport:getExport":0,"aws:apigateway/getKey:getKey":0,"aws:apigateway/getResource:getResource":0,"aws:apigateway/getRestApi:getRestApi":0,"aws:apigateway/getSdk:getSdk":0,"aws:apigateway/getVpcLink:getVpcLink":0,"aws:apigatewayv2/getApi:getApi":0,"aws:apigatewayv2/getApis:getApis":0,"aws:apigatewayv2/getExport:getExport":0,"aws:apigatewayv2/getVpcLink:getVpcLink":0,"aws:appconfig/getConfigurationProfile:getConfigurationProfile":0,"aws:appconfig/getConfigurationProfiles:getConfigurationProfiles":0,"aws:appconfig/getEnvironment:getEnvironment":0,"aws:appconfig/getEnvironments:getEnvironments":0,"aws:appintegrations/getEventIntegration:getEventIntegration":0,"aws:appmesh/getGatewayRoute:getGatewayRoute":0,"aws:appmesh/getMesh:getMesh":0,"aws:appmesh/getRoute:getRoute":0,"aws:appmesh/getVirtualGateway:getVirtualGateway":0,"aws:appmesh/getVirtualNode:getVirtualNode":0,"aws:appmesh/getVirtualRouter:getVirtualRouter":0,"aws:appmesh/getVirtualService:getVirtualService":0,"aws:apprunner/getHostedZoneId:getHostedZoneId":1,"aws:appstream/getImage:getImage":1,"aws:athena/getNamedQuery:getNamedQuery":0,"aws:auditmanager/getControl:getControl":1,"aws:auditmanager/getFramework:getFramework":1,"aws:autoscaling/getAmiIds:getAmiIds":0,"aws:autoscaling/getGroup:getGroup":0,"aws:backup/getFramework:getFramework":0,"aws:backup/getPlan:getPlan":0,"aws:backup/getReportPlan:getReportPlan":0,"aws:backup/getSelection:getSelection":0,"aws:backup/getVault:getVault":0,"aws:batch/getComputeEnvironment:getComputeEnvironment":0,"aws:batch/getJobDefinition:getJobDefinition":1,"aws:batch/getJobQueue:getJobQueue":0,"aws:batch/getSchedulingPolicy:getSchedulingPolicy":0,"aws:bedrock/getAgentAgentVersions:getAgentAgentVersions":1,"aws:bedrock/getCustomModel:getCustomModel":1,"aws:bedrock/getCustomModels:getCustomModels":1,"aws:bedrock/getInferenceProfile:getInferenceProfile":1,"aws:bedrock/getInferenceProfiles:getInferenceProfiles":1,"aws:bedrockfoundation/getModel:getModel":1,"aws:bedrockfoundation/getModels:getModels":1,"aws:budgets/getBudget:getBudget":0,"aws:chatbot/getSlackWorkspace:getSlackWorkspace":1,"aws:cloudcontrol/getResource:getResource":0,"aws:cloudformation/getCloudFormationType:getCloudFormationType":0,"aws:cloudformation/getExport:getExport":0,"aws:cloudformation/getStack:getStack":0,"aws:cloudfront/getCachePolicy:getCachePolicy":0,"aws:cloudfront/getDistribution:getDistribution":0,"aws:cloudfront/getFunction:getFunction":0,"aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId":0,"aws:cloudfront/getOriginAccessControl:getOriginAccessControl":1,"aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities":0,"aws:cloudfront/getOriginAccessIdentity:getOriginAccessIdentity":0,"aws:cloudfront/getOriginRequestPolicy:getOriginRequestPolicy":0,"aws:cloudfront/getRealtimeLogConfig:getRealtimeLogConfig":0,"aws:cloudfront/getResponseHeadersPolicy:getResponseHeadersPolicy":0,"aws:cloudhsmv2/getCluster:getCluster":0,"aws:cloudtrail/getServiceAccount:getServiceAccount":0,"aws:cloudwatch/getEventBus:getEventBus":0,"aws:cloudwatch/getEventConnection:getEventConnection":0,"aws:cloudwatch/getEventSource:getEventSource":0,"aws:cloudwatch/getLogDataProtectionPolicyDocument:getLogDataProtectionPolicyDocument":0,"aws:cloudwatch/getLogGroup:getLogGroup":0,"aws:cloudwatch/getLogGroups:getLogGroups":0,"aws:codeartifact/getAuthorizationToken:getAuthorizationToken":0,"aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint":0,"aws:codebuild/getFleet:getFleet":0,"aws:codecatalyst/getDevEnvironment:getDevEnvironment":0,"aws:codecommit/getApprovalRuleTemplate:getApprovalRuleTemplate":0,"aws:codecommit/getRepository:getRepository":0,"aws:codeguruprofiler/getProfilingGroup:getProfilingGroup":1,"aws:codestarconnections/getConnection:getConnection":0,"aws:cognito/getIdentityPool:getIdentityPool":0,"aws:cognito/getUserGroup:getUserGroup":1,"aws:cognito/getUserGroups:getUserGroups":1,"aws:cognito/getUserPool:getUserPool":1,"aws:cognito/getUserPoolClient:getUserPoolClient":0,"aws:cognito/getUserPoolClients:getUserPoolClients":0,"aws:cognito/getUserPoolSigningCertificate:getUserPoolSigningCertificate":0,"aws:cognito/getUserPools:getUserPools":0,"aws:connect/getBotAssociation:getBotAssociation":0,"aws:connect/getContactFlow:getContactFlow":0,"aws:connect/getContactFlowModule:getContactFlowModule":0,"aws:connect/getHoursOfOperation:getHoursOfOperation":0,"aws:connect/getInstance:getInstance":0,"aws:connect/getInstanceStorageConfig:getInstanceStorageConfig":0,"aws:connect/getLambdaFunctionAssociation:getLambdaFunctionAssociation":0,"aws:connect/getPrompt:getPrompt":0,"aws:connect/getQueue:getQueue":0,"aws:connect/getQuickConnect:getQuickConnect":0,"aws:connect/getRoutingProfile:getRoutingProfile":0,"aws:connect/getSecurityProfile:getSecurityProfile":0,"aws:connect/getUser:getUser":0,"aws:connect/getUserHierarchyGroup:getUserHierarchyGroup":0,"aws:connect/getUserHierarchyStructure:getUserHierarchyStructure":0,"aws:connect/getVocabulary:getVocabulary":0,"aws:controltower/getControls:getControls":0,"aws:costexplorer/getCostCategory:getCostCategory":0,"aws:costexplorer/getTags:getTags":0,"aws:cur/getReportDefinition:getReportDefinition":0,"aws:datapipeline/getPipeline:getPipeline":0,"aws:datapipeline/getPipelineDefinition:getPipelineDefinition":0,"aws:datazone/getEnvironmentBlueprint:getEnvironmentBlueprint":1,"aws:devopsguru/getNotificationChannel:getNotificationChannel":1,"aws:devopsguru/getResourceCollection:getResourceCollection":1,"aws:directconnect/getConnection:getConnection":0,"aws:directconnect/getGateway:getGateway":0,"aws:directconnect/getLocation:getLocation":0,"aws:directconnect/getLocations:getLocations":0,"aws:directconnect/getRouterConfiguration:getRouterConfiguration":0,"aws:directoryservice/getDirectory:getDirectory":0,"aws:dms/getCertificate:getCertificate":0,"aws:dms/getEndpoint:getEndpoint":0,"aws:dms/getReplicationInstance:getReplicationInstance":0,"aws:dms/getReplicationSubnetGroup:getReplicationSubnetGroup":0,"aws:dms/getReplicationTask:getReplicationTask":0,"aws:docdb/getEngineVersion:getEngineVersion":0,"aws:docdb/getOrderableDbInstance:getOrderableDbInstance":0,"aws:dynamodb/getTable:getTable":0,"aws:dynamodb/getTableItem:getTableItem":0,"aws:ebs/getDefaultKmsKey:getDefaultKmsKey":0,"aws:ebs/getEbsVolumes:getEbsVolumes":0,"aws:ebs/getEncryptionByDefault:getEncryptionByDefault":0,"aws:ebs/getSnapshot:getSnapshot":0,"aws:ebs/getSnapshotIds:getSnapshotIds":0,"aws:ebs/getVolume:getVolume":0,"aws:ec2/getAmi:getAmi":0,"aws:ec2/getAmiIds:getAmiIds":0,"aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering":1,"aws:ec2/getCoipPool:getCoipPool":0,"aws:ec2/getCoipPools:getCoipPools":0,"aws:ec2/getCustomerGateway:getCustomerGateway":0,"aws:ec2/getDedicatedHost:getDedicatedHost":0,"aws:ec2/getEips:getEips":0,"aws:ec2/getElasticIp:getElasticIp":0,"aws:ec2/getInstance:getInstance":0,"aws:ec2/getInstanceType:getInstanceType":0,"aws:ec2/getInstanceTypeOffering:getInstanceTypeOffering":0,"aws:ec2/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:ec2/getInstanceTypes:getInstanceTypes":0,"aws:ec2/getInstances:getInstances":0,"aws:ec2/getInternetGateway:getInternetGateway":0,"aws:ec2/getIpamPreviewNextCidr:getIpamPreviewNextCidr":0,"aws:ec2/getKeyPair:getKeyPair":0,"aws:ec2/getLaunchConfiguration:getLaunchConfiguration":0,"aws:ec2/getLaunchTemplate:getLaunchTemplate":0,"aws:ec2/getLocalGateway:getLocalGateway":0,"aws:ec2/getLocalGatewayRouteTable:getLocalGatewayRouteTable":0,"aws:ec2/getLocalGatewayRouteTables:getLocalGatewayRouteTables":0,"aws:ec2/getLocalGatewayVirtualInterface:getLocalGatewayVirtualInterface":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroup:getLocalGatewayVirtualInterfaceGroup":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroups:getLocalGatewayVirtualInterfaceGroups":0,"aws:ec2/getLocalGateways:getLocalGateways":0,"aws:ec2/getManagedPrefixList:getManagedPrefixList":0,"aws:ec2/getManagedPrefixLists:getManagedPrefixLists":0,"aws:ec2/getNatGateway:getNatGateway":0,"aws:ec2/getNatGateways:getNatGateways":0,"aws:ec2/getNetworkAcls:getNetworkAcls":0,"aws:ec2/getNetworkInsightsAnalysis:getNetworkInsightsAnalysis":0,"aws:ec2/getNetworkInsightsPath:getNetworkInsightsPath":0,"aws:ec2/getNetworkInterface:getNetworkInterface":0,"aws:ec2/getNetworkInterfaces:getNetworkInterfaces":0,"aws:ec2/getPrefixList:getPrefixList":0,"aws:ec2/getPublicIpv4Pool:getPublicIpv4Pool":0,"aws:ec2/getPublicIpv4Pools:getPublicIpv4Pools":0,"aws:ec2/getRoute:getRoute":0,"aws:ec2/getRouteTable:getRouteTable":0,"aws:ec2/getRouteTables:getRouteTables":0,"aws:ec2/getSecurityGroup:getSecurityGroup":0,"aws:ec2/getSecurityGroups:getSecurityGroups":0,"aws:ec2/getSerialConsoleAccess:getSerialConsoleAccess":0,"aws:ec2/getSpotPrice:getSpotPrice":0,"aws:ec2/getSubnet:getSubnet":0,"aws:ec2/getSubnets:getSubnets":0,"aws:ec2/getTransitGatewayRouteTables:getTransitGatewayRouteTables":0,"aws:ec2/getVpc:getVpc":0,"aws:ec2/getVpcDhcpOptions:getVpcDhcpOptions":0,"aws:ec2/getVpcEndpoint:getVpcEndpoint":0,"aws:ec2/getVpcEndpointService:getVpcEndpointService":0,"aws:ec2/getVpcIamPool:getVpcIamPool":0,"aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs":0,"aws:ec2/getVpcIamPools:getVpcIamPools":0,"aws:ec2/getVpcIpamPool:getVpcIpamPool":0,"aws:ec2/getVpcIpamPoolCidrs:getVpcIpamPoolCidrs":0,"aws:ec2/getVpcIpamPools:getVpcIpamPools":0,"aws:ec2/getVpcPeeringConnection:getVpcPeeringConnection":0,"aws:ec2/getVpcPeeringConnections:getVpcPeeringConnections":0,"aws:ec2/getVpcs:getVpcs":0,"aws:ec2/getVpnGateway:getVpnGateway":0,"aws:ec2clientvpn/getEndpoint:getEndpoint":0,"aws:ec2transitgateway/getAttachment:getAttachment":0,"aws:ec2transitgateway/getAttachments:getAttachments":0,"aws:ec2transitgateway/getConnect:getConnect":0,"aws:ec2transitgateway/getConnectPeer:getConnectPeer":0,"aws:ec2transitgateway/getDirectConnectGatewayAttachment:getDirectConnectGatewayAttachment":0,"aws:ec2transitgateway/getMulticastDomain:getMulticastDomain":0,"aws:ec2transitgateway/getPeeringAttachment:getPeeringAttachment":0,"aws:ec2transitgateway/getPeeringAttachments:getPeeringAttachments":0,"aws:ec2transitgateway/getRouteTable:getRouteTable":0,"aws:ec2transitgateway/getRouteTableAssociations:getRouteTableAssociations":0,"aws:ec2transitgateway/getRouteTablePropagations:getRouteTablePropagations":0,"aws:ec2transitgateway/getRouteTableRoutes:getRouteTableRoutes":0,"aws:ec2transitgateway/getTransitGateway:getTransitGateway":0,"aws:ec2transitgateway/getVpcAttachment:getVpcAttachment":0,"aws:ec2transitgateway/getVpcAttachments:getVpcAttachments":0,"aws:ec2transitgateway/getVpnAttachment:getVpnAttachment":0,"aws:ecr/getAuthorizationToken:getAuthorizationToken":0,"aws:ecr/getCredentials:getCredentials":0,"aws:ecr/getImage:getImage":0,"aws:ecr/getLifecyclePolicyDocument:getLifecyclePolicyDocument":1,"aws:ecr/getPullThroughCacheRule:getPullThroughCacheRule":0,"aws:ecr/getRepositories:getRepositories":1,"aws:ecr/getRepository:getRepository":0,"aws:ecr/getRepositoryCreationTemplate:getRepositoryCreationTemplate":0,"aws:ecrpublic/getAuthorizationToken:getAuthorizationToken":0,"aws:ecs/getCluster:getCluster":0,"aws:ecs/getContainerDefinition:getContainerDefinition":0,"aws:ecs/getService:getService":0,"aws:ecs/getTaskDefinition:getTaskDefinition":0,"aws:ecs/getTaskExecution:getTaskExecution":0,"aws:efs/getAccessPoint:getAccessPoint":0,"aws:efs/getAccessPoints:getAccessPoints":0,"aws:efs/getFileSystem:getFileSystem":0,"aws:efs/getMountTarget:getMountTarget":0,"aws:eks/getAccessEntry:getAccessEntry":0,"aws:eks/getAddon:getAddon":0,"aws:eks/getAddonVersion:getAddonVersion":0,"aws:eks/getCluster:getCluster":0,"aws:eks/getClusterAuth:getClusterAuth":0,"aws:eks/getClusters:getClusters":0,"aws:eks/getNodeGroup:getNodeGroup":0,"aws:eks/getNodeGroups:getNodeGroups":0,"aws:elasticache/getCluster:getCluster":0,"aws:elasticache/getReplicationGroup:getReplicationGroup":0,"aws:elasticache/getReservedCacheNodeOffering:getReservedCacheNodeOffering":1,"aws:elasticache/getServerlessCache:getServerlessCache":1,"aws:elasticache/getSubnetGroup:getSubnetGroup":0,"aws:elasticache/getUser:getUser":0,"aws:elasticbeanstalk/getApplication:getApplication":0,"aws:elasticbeanstalk/getHostedZone:getHostedZone":0,"aws:elasticbeanstalk/getSolutionStack:getSolutionStack":0,"aws:elasticsearch/getDomain:getDomain":0,"aws:elb/getHostedZoneId:getHostedZoneId":0,"aws:elb/getLoadBalancer:getLoadBalancer":0,"aws:elb/getServiceAccount:getServiceAccount":0,"aws:emr/getReleaseLabels:getReleaseLabels":0,"aws:emr/getSupportedInstanceTypes:getSupportedInstanceTypes":1,"aws:emrcontainers/getVirtualCluster:getVirtualCluster":0,"aws:fsx/getOntapFileSystem:getOntapFileSystem":0,"aws:fsx/getOntapStorageVirtualMachine:getOntapStorageVirtualMachine":0,"aws:fsx/getOntapStorageVirtualMachines:getOntapStorageVirtualMachines":0,"aws:fsx/getOpenZfsSnapshot:getOpenZfsSnapshot":0,"aws:fsx/getWindowsFileSystem:getWindowsFileSystem":0,"aws:globalaccelerator/getAccelerator:getAccelerator":1,"aws:globalaccelerator/getCustomRoutingAccelerator:getCustomRoutingAccelerator":0,"aws:glue/getCatalogTable:getCatalogTable":0,"aws:glue/getConnection:getConnection":0,"aws:glue/getDataCatalogEncryptionSettings:getDataCatalogEncryptionSettings":0,"aws:glue/getRegistry:getRegistry":1,"aws:glue/getScript:getScript":0,"aws:grafana/getWorkspace:getWorkspace":0,"aws:guardduty/getDetector:getDetector":0,"aws:guardduty/getFindingIds:getFindingIds":1,"aws:iam/getAccessKeys:getAccessKeys":0,"aws:iam/getAccountAlias:getAccountAlias":0,"aws:iam/getGroup:getGroup":0,"aws:iam/getInstanceProfile:getInstanceProfile":0,"aws:iam/getInstanceProfiles:getInstanceProfiles":0,"aws:iam/getOpenIdConnectProvider:getOpenIdConnectProvider":0,"aws:iam/getPolicy:getPolicy":0,"aws:iam/getPolicyDocument:getPolicyDocument":0,"aws:iam/getPrincipalPolicySimulation:getPrincipalPolicySimulation":0,"aws:iam/getRole:getRole":0,"aws:iam/getRoles:getRoles":0,"aws:iam/getSamlProvider:getSamlProvider":0,"aws:iam/getServerCertificate:getServerCertificate":0,"aws:iam/getSessionContext:getSessionContext":0,"aws:iam/getUser:getUser":0,"aws:iam/getUserSshKey:getUserSshKey":0,"aws:iam/getUsers:getUsers":0,"aws:identitystore/getGroup:getGroup":0,"aws:identitystore/getGroups:getGroups":1,"aws:identitystore/getUser:getUser":0,"aws:imagebuilder/getComponent:getComponent":0,"aws:imagebuilder/getComponents:getComponents":0,"aws:imagebuilder/getContainerRecipe:getContainerRecipe":0,"aws:imagebuilder/getContainerRecipes:getContainerRecipes":0,"aws:imagebuilder/getDistributionConfiguration:getDistributionConfiguration":0,"aws:imagebuilder/getDistributionConfigurations:getDistributionConfigurations":0,"aws:imagebuilder/getImage:getImage":0,"aws:imagebuilder/getImagePipeline:getImagePipeline":0,"aws:imagebuilder/getImagePipelines:getImagePipelines":0,"aws:imagebuilder/getImageRecipe:getImageRecipe":0,"aws:imagebuilder/getImageRecipes:getImageRecipes":0,"aws:imagebuilder/getInfrastructureConfiguration:getInfrastructureConfiguration":0,"aws:imagebuilder/getInfrastructureConfigurations:getInfrastructureConfigurations":0,"aws:index/getArn:getArn":1,"aws:index/getAvailabilityZone:getAvailabilityZone":0,"aws:index/getAvailabilityZones:getAvailabilityZones":0,"aws:index/getBillingServiceAccount:getBillingServiceAccount":1,"aws:index/getCallerIdentity:getCallerIdentity":1,"aws:index/getDefaultTags:getDefaultTags":1,"aws:index/getIpRanges:getIpRanges":1,"aws:index/getPartition:getPartition":1,"aws:index/getRegion:getRegion":1,"aws:index/getRegions:getRegions":1,"aws:index/getService:getService":1,"aws:index/getServicePrincipal:getServicePrincipal":1,"aws:inspector/getRulesPackages:getRulesPackages":0,"aws:iot/getEndpoint:getEndpoint":0,"aws:iot/getRegistrationCode:getRegistrationCode":0,"aws:ivs/getStreamKey:getStreamKey":0,"aws:kendra/getExperience:getExperience":0,"aws:kendra/getFaq:getFaq":0,"aws:kendra/getIndex:getIndex":0,"aws:kendra/getQuerySuggestionsBlockList:getQuerySuggestionsBlockList":0,"aws:kendra/getThesaurus:getThesaurus":0,"aws:kinesis/getFirehoseDeliveryStream:getFirehoseDeliveryStream":0,"aws:kinesis/getStream:getStream":0,"aws:kinesis/getStreamConsumer:getStreamConsumer":0,"aws:kms/getAlias:getAlias":0,"aws:kms/getCipherText:getCipherText":0,"aws:kms/getCustomKeyStore:getCustomKeyStore":0,"aws:kms/getKey:getKey":0,"aws:kms/getPublicKey:getPublicKey":0,"aws:kms/getSecret:getSecret":0,"aws:kms/getSecrets:getSecrets":0,"aws:lakeformation/getDataLakeSettings:getDataLakeSettings":0,"aws:lakeformation/getPermissions:getPermissions":0,"aws:lakeformation/getResource:getResource":0,"aws:lambda/getAlias:getAlias":0,"aws:lambda/getCodeSigningConfig:getCodeSigningConfig":0,"aws:lambda/getFunction:getFunction":0,"aws:lambda/getFunctionUrl:getFunctionUrl":0,"aws:lambda/getFunctions:getFunctions":0,"aws:lambda/getInvocation:getInvocation":0,"aws:lambda/getLayerVersion:getLayerVersion":0,"aws:lb/getHostedZoneId:getHostedZoneId":0,"aws:lb/getLbs:getLbs":0,"aws:lb/getListener:getListener":0,"aws:lb/getLoadBalancer:getLoadBalancer":0,"aws:lb/getTargetGroup:getTargetGroup":0,"aws:lb/getTrustStore:getTrustStore":0,"aws:lex/getBot:getBot":0,"aws:lex/getBotAlias:getBotAlias":0,"aws:lex/getIntent:getIntent":0,"aws:lex/getSlotType:getSlotType":0,"aws:licensemanager/getLicenseGrants:getLicenseGrants":0,"aws:licensemanager/getReceivedLicense:getReceivedLicense":0,"aws:licensemanager/getReceivedLicenses:getReceivedLicenses":0,"aws:location/getGeofenceCollection:getGeofenceCollection":0,"aws:location/getMap:getMap":0,"aws:location/getPlaceIndex:getPlaceIndex":0,"aws:location/getRouteCalculator:getRouteCalculator":0,"aws:location/getTracker:getTracker":0,"aws:location/getTrackerAssociation:getTrackerAssociation":0,"aws:location/getTrackerAssociations:getTrackerAssociations":0,"aws:mediaconvert/getQueue:getQueue":0,"aws:medialive/getInput:getInput":1,"aws:memorydb/getAcl:getAcl":0,"aws:memorydb/getCluster:getCluster":0,"aws:memorydb/getParameterGroup:getParameterGroup":0,"aws:memorydb/getSnapshot:getSnapshot":0,"aws:memorydb/getSubnetGroup:getSubnetGroup":0,"aws:memorydb/getUser:getUser":0,"aws:mq/getBroker:getBroker":0,"aws:mq/getBrokerEngineTypes:getBrokerEngineTypes":0,"aws:mq/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:msk/getBootstrapBrokers:getBootstrapBrokers":0,"aws:msk/getBrokerNodes:getBrokerNodes":0,"aws:msk/getCluster:getCluster":0,"aws:msk/getConfiguration:getConfiguration":0,"aws:msk/getKafkaVersion:getKafkaVersion":0,"aws:msk/getVpcConnection:getVpcConnection":0,"aws:mskconnect/getConnector:getConnector":0,"aws:mskconnect/getCustomPlugin:getCustomPlugin":0,"aws:mskconnect/getWorkerConfiguration:getWorkerConfiguration":0,"aws:neptune/getEngineVersion:getEngineVersion":0,"aws:neptune/getOrderableDbInstance:getOrderableDbInstance":0,"aws:networkfirewall/getFirewall:getFirewall":0,"aws:networkfirewall/getFirewallPolicy:getFirewallPolicy":0,"aws:networkfirewall/getResourcePolicy:getResourcePolicy":0,"aws:networkmanager/getConnection:getConnection":0,"aws:networkmanager/getConnections:getConnections":0,"aws:networkmanager/getCoreNetworkPolicyDocument:getCoreNetworkPolicyDocument":0,"aws:networkmanager/getDevice:getDevice":0,"aws:networkmanager/getDevices:getDevices":0,"aws:networkmanager/getGlobalNetwork:getGlobalNetwork":0,"aws:networkmanager/getGlobalNetworks:getGlobalNetworks":0,"aws:networkmanager/getLink:getLink":0,"aws:networkmanager/getLinks:getLinks":0,"aws:networkmanager/getSite:getSite":0,"aws:networkmanager/getSites:getSites":0,"aws:oam/getLink:getLink":0,"aws:oam/getLinks:getLinks":0,"aws:oam/getSink:getSink":0,"aws:oam/getSinks:getSinks":0,"aws:opensearch/getDomain:getDomain":0,"aws:opensearch/getServerlessAccessPolicy:getServerlessAccessPolicy":1,"aws:opensearch/getServerlessCollection:getServerlessCollection":1,"aws:opensearch/getServerlessLifecyclePolicy:getServerlessLifecyclePolicy":1,"aws:opensearch/getServerlessSecurityConfig:getServerlessSecurityConfig":1,"aws:opensearch/getServerlessSecurityPolicy:getServerlessSecurityPolicy":0,"aws:opensearch/getServerlessVpcEndpoint:getServerlessVpcEndpoint":0,"aws:organizations/getDelegatedAdministrators:getDelegatedAdministrators":0,"aws:organizations/getDelegatedServices:getDelegatedServices":0,"aws:organizations/getOrganization:getOrganization":0,"aws:organizations/getOrganizationalUnit:getOrganizationalUnit":0,"aws:organizations/getOrganizationalUnitChildAccounts:getOrganizationalUnitChildAccounts":0,"aws:organizations/getOrganizationalUnitDescendantAccounts:getOrganizationalUnitDescendantAccounts":0,"aws:organizations/getOrganizationalUnitDescendantOrganizationalUnits:getOrganizationalUnitDescendantOrganizationalUnits":0,"aws:organizations/getOrganizationalUnits:getOrganizationalUnits":0,"aws:organizations/getPolicies:getPolicies":0,"aws:organizations/getPoliciesForTarget:getPoliciesForTarget":0,"aws:organizations/getPolicy:getPolicy":0,"aws:organizations/getResourceTags:getResourceTags":0,"aws:outposts/getAsset:getAsset":0,"aws:outposts/getAssets:getAssets":0,"aws:outposts/getOutpost:getOutpost":0,"aws:outposts/getOutpostInstanceType:getOutpostInstanceType":0,"aws:outposts/getOutpostInstanceTypes:getOutpostInstanceTypes":0,"aws:outposts/getOutposts:getOutposts":0,"aws:outposts/getSite:getSite":0,"aws:outposts/getSites:getSites":0,"aws:polly/getVoices:getVoices":1,"aws:pricing/getProduct:getProduct":0,"aws:qldb/getLedger:getLedger":0,"aws:quicksight/getAnalysis:getAnalysis":0,"aws:quicksight/getDataSet:getDataSet":0,"aws:quicksight/getQuicksightAnalysis:getQuicksightAnalysis":0,"aws:quicksight/getQuicksightGroup:getQuicksightGroup":0,"aws:quicksight/getQuicksightUser:getQuicksightUser":0,"aws:quicksight/getTheme:getTheme":0,"aws:ram/getResourceShare:getResourceShare":0,"aws:rds/getCertificate:getCertificate":0,"aws:rds/getCluster:getCluster":0,"aws:rds/getClusterParameterGroup:getClusterParameterGroup":1,"aws:rds/getClusterSnapshot:getClusterSnapshot":0,"aws:rds/getClusters:getClusters":0,"aws:rds/getEngineVersion:getEngineVersion":0,"aws:rds/getEventCategories:getEventCategories":0,"aws:rds/getInstance:getInstance":0,"aws:rds/getInstances:getInstances":0,"aws:rds/getOrderableDbInstance:getOrderableDbInstance":0,"aws:rds/getParameterGroup:getParameterGroup":0,"aws:rds/getProxy:getProxy":0,"aws:rds/getReservedInstanceOffering:getReservedInstanceOffering":0,"aws:rds/getSnapshot:getSnapshot":0,"aws:rds/getSubnetGroup:getSubnetGroup":0,"aws:redshift/getCluster:getCluster":0,"aws:redshift/getClusterCredentials:getClusterCredentials":0,"aws:redshift/getDataShares:getDataShares":1,"aws:redshift/getOrderableCluster:getOrderableCluster":0,"aws:redshift/getProducerDataShares:getProducerDataShares":1,"aws:redshift/getServiceAccount:getServiceAccount":0,"aws:redshift/getSubnetGroup:getSubnetGroup":0,"aws:redshiftserverless/getCredentials:getCredentials":0,"aws:redshiftserverless/getNamespace:getNamespace":0,"aws:redshiftserverless/getWorkgroup:getWorkgroup":0,"aws:resourceexplorer/search:Search":1,"aws:resourcegroupstaggingapi/getResources:getResources":0,"aws:route53/getDelegationSet:getDelegationSet":0,"aws:route53/getProfilesProfiles:getProfilesProfiles":1,"aws:route53/getQueryLogConfig:getQueryLogConfig":0,"aws:route53/getResolverEndpoint:getResolverEndpoint":0,"aws:route53/getResolverFirewallConfig:getResolverFirewallConfig":0,"aws:route53/getResolverFirewallDomainList:getResolverFirewallDomainList":0,"aws:route53/getResolverFirewallRuleGroup:getResolverFirewallRuleGroup":0,"aws:route53/getResolverFirewallRuleGroupAssociation:getResolverFirewallRuleGroupAssociation":0,"aws:route53/getResolverFirewallRules:getResolverFirewallRules":0,"aws:route53/getResolverRule:getResolverRule":0,"aws:route53/getResolverRules:getResolverRules":0,"aws:route53/getTrafficPolicyDocument:getTrafficPolicyDocument":0,"aws:route53/getZone:getZone":0,"aws:route53/getZones:getZones":1,"aws:s3/getAccountPublicAccessBlock:getAccountPublicAccessBlock":0,"aws:s3/getBucket:getBucket":0,"aws:s3/getBucketObject:getBucketObject":0,"aws:s3/getBucketObjects:getBucketObjects":0,"aws:s3/getBucketPolicy:getBucketPolicy":0,"aws:s3/getCanonicalUserId:getCanonicalUserId":0,"aws:s3/getDirectoryBuckets:getDirectoryBuckets":1,"aws:s3/getObject:getObject":0,"aws:s3/getObjects:getObjects":0,"aws:s3control/getMultiRegionAccessPoint:getMultiRegionAccessPoint":0,"aws:sagemaker/getPrebuiltEcrImage:getPrebuiltEcrImage":0,"aws:secretsmanager/getRandomPassword:getRandomPassword":0,"aws:secretsmanager/getSecret:getSecret":0,"aws:secretsmanager/getSecretRotation:getSecretRotation":0,"aws:secretsmanager/getSecretVersion:getSecretVersion":0,"aws:secretsmanager/getSecretVersions:getSecretVersions":1,"aws:secretsmanager/getSecrets:getSecrets":0,"aws:securityhub/getStandardsControlAssociations:getStandardsControlAssociations":1,"aws:serverlessrepository/getApplication:getApplication":0,"aws:servicecatalog/getAppregistryApplication:getAppregistryApplication":1,"aws:servicecatalog/getConstraint:getConstraint":0,"aws:servicecatalog/getLaunchPaths:getLaunchPaths":0,"aws:servicecatalog/getPortfolio:getPortfolio":0,"aws:servicecatalog/getPortfolioConstraints:getPortfolioConstraints":0,"aws:servicecatalog/getProduct:getProduct":0,"aws:servicecatalog/getProvisioningArtifacts:getProvisioningArtifacts":0,"aws:servicediscovery/getDnsNamespace:getDnsNamespace":0,"aws:servicediscovery/getHttpNamespace:getHttpNamespace":0,"aws:servicediscovery/getService:getService":0,"aws:servicequotas/getService:getService":0,"aws:servicequotas/getServiceQuota:getServiceQuota":0,"aws:servicequotas/getTemplates:getTemplates":1,"aws:ses/getActiveReceiptRuleSet:getActiveReceiptRuleSet":0,"aws:ses/getDomainIdentity:getDomainIdentity":0,"aws:ses/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getConfigurationSet:getConfigurationSet":0,"aws:sesv2/getDedicatedIpPool:getDedicatedIpPool":0,"aws:sesv2/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getEmailIdentityMailFromAttributes:getEmailIdentityMailFromAttributes":0,"aws:sfn/getActivity:getActivity":0,"aws:sfn/getAlias:getAlias":0,"aws:sfn/getStateMachine:getStateMachine":0,"aws:sfn/getStateMachineVersions:getStateMachineVersions":0,"aws:shield/getProtection:getProtection":1,"aws:signer/getSigningJob:getSigningJob":0,"aws:signer/getSigningProfile:getSigningProfile":0,"aws:sns/getTopic:getTopic":0,"aws:sqs/getQueue:getQueue":0,"aws:sqs/getQueues:getQueues":0,"aws:ssm/getContactsRotation:getContactsRotation":1,"aws:ssm/getDocument:getDocument":0,"aws:ssm/getInstances:getInstances":0,"aws:ssm/getMaintenanceWindows:getMaintenanceWindows":0,"aws:ssm/getParameter:getParameter":0,"aws:ssm/getParametersByPath:getParametersByPath":0,"aws:ssm/getPatchBaseline:getPatchBaseline":0,"aws:ssm/getPatchBaselines:getPatchBaselines":1,"aws:ssmcontacts/getContact:getContact":0,"aws:ssmcontacts/getContactChannel:getContactChannel":0,"aws:ssmcontacts/getPlan:getPlan":0,"aws:ssmincidents/getReplicationSet:getReplicationSet":0,"aws:ssmincidents/getResponsePlan:getResponsePlan":0,"aws:ssoadmin/getApplication:getApplication":1,"aws:ssoadmin/getApplicationAssignments:getApplicationAssignments":1,"aws:ssoadmin/getApplicationProviders:getApplicationProviders":1,"aws:ssoadmin/getInstances:getInstances":0,"aws:ssoadmin/getPermissionSet:getPermissionSet":0,"aws:ssoadmin/getPermissionSets:getPermissionSets":1,"aws:ssoadmin/getPrincipalApplicationAssignments:getPrincipalApplicationAssignments":1,"aws:storagegateway/getLocalDisk:getLocalDisk":0,"aws:synthetics/getRuntimeVersion:getRuntimeVersion":1,"aws:synthetics/getRuntimeVersions:getRuntimeVersions":1,"aws:timestreamwrite/getDatabase:getDatabase":1,"aws:timestreamwrite/getTable:getTable":1,"aws:transfer/getConnector:getConnector":1,"aws:transfer/getServer:getServer":0,"aws:verifiedpermissions/getPolicyStore:getPolicyStore":1,"aws:vpc/getSecurityGroupRule:getSecurityGroupRule":1,"aws:vpc/getSecurityGroupRules:getSecurityGroupRules":1,"aws:vpclattice/getAuthPolicy:getAuthPolicy":0,"aws:vpclattice/getListener:getListener":0,"aws:vpclattice/getResourcePolicy:getResourcePolicy":0,"aws:vpclattice/getService:getService":0,"aws:vpclattice/getServiceNetwork:getServiceNetwork":0,"aws:waf/getIpset:getIpset":0,"aws:waf/getRateBasedRule:getRateBasedRule":0,"aws:waf/getRule:getRule":0,"aws:waf/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:waf/getWebAcl:getWebAcl":0,"aws:wafregional/getIpset:getIpset":0,"aws:wafregional/getRateBasedMod:getRateBasedMod":0,"aws:wafregional/getRule:getRule":0,"aws:wafregional/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:wafregional/getWebAcl:getWebAcl":0,"aws:wafv2/getIpSet:getIpSet":0,"aws:wafv2/getRegexPatternSet:getRegexPatternSet":0,"aws:wafv2/getRuleGroup:getRuleGroup":0,"aws:wafv2/getWebAcl:getWebAcl":0,"aws:workspaces/getBundle:getBundle":0,"aws:workspaces/getDirectory:getDirectory":0,"aws:workspaces/getImage:getImage":0,"aws:workspaces/getWorkspace:getWorkspace":0}}} \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-aws/schema-minimal.json b/provider/cmd/pulumi-resource-aws/schema-minimal.json index 5443bbede05..692e9171408 100644 --- a/provider/cmd/pulumi-resource-aws/schema-minimal.json +++ b/provider/cmd/pulumi-resource-aws/schema-minimal.json @@ -182,6 +182,7 @@ "redshiftdata": "RedshiftData", "redshiftserverless": "RedshiftServerless", "rekognition": "Rekognition", + "resiliencehub": "ResilienceHub", "resourceexplorer": "ResourceExplorer", "resourcegroups": "ResourceGroups", "resourcegroupstaggingapi": "ResourceGroupsTaggingApi", @@ -30018,6 +30019,41 @@ }, "type": "object" }, + "aws:codedeploy/DeploymentConfigZonalConfig:DeploymentConfigZonalConfig": { + "properties": { + "firstZoneMonitorDurationInSeconds": { + "type": "integer", + "description": "The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone.\n", + "willReplaceOnChanges": true + }, + "minimumHealthyHostsPerZone": { + "$ref": "#/types/aws:codedeploy/DeploymentConfigZonalConfigMinimumHealthyHostsPerZone:DeploymentConfigZonalConfigMinimumHealthyHostsPerZone", + "description": "The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below.\n", + "willReplaceOnChanges": true + }, + "monitorDurationInSeconds": { + "type": "integer", + "description": "The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + }, + "aws:codedeploy/DeploymentConfigZonalConfigMinimumHealthyHostsPerZone:DeploymentConfigZonalConfigMinimumHealthyHostsPerZone": { + "properties": { + "type": { + "type": "string", + "description": "The type can either be `FLEET_PERCENT` or `HOST_COUNT`.\n", + "willReplaceOnChanges": true + }, + "value": { + "type": "integer", + "description": "The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + }, "aws:codedeploy/DeploymentGroupAlarmConfiguration:DeploymentGroupAlarmConfiguration": { "properties": { "alarms": { @@ -35940,14 +35976,14 @@ }, "not": { "$ref": "#/types/aws:costexplorer/AnomalySubscriptionThresholdExpressionNot:AnomalySubscriptionThresholdExpressionNot", - "description": "Return results that match both Dimension object.\n" + "description": "Return results that do not match the Dimension object.\n" }, "ors": { "type": "array", "items": { "$ref": "#/types/aws:costexplorer/AnomalySubscriptionThresholdExpressionOr:AnomalySubscriptionThresholdExpressionOr" }, - "description": "Return results that match both Dimension object.\n" + "description": "Return results that match either Dimension object.\n" }, "tags": { "$ref": "#/types/aws:costexplorer/AnomalySubscriptionThresholdExpressionTags:AnomalySubscriptionThresholdExpressionTags", @@ -78591,7 +78627,14 @@ "willReplaceOnChanges": true } }, - "type": "object" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "noDevice" + ] + } + } }, "aws:imagebuilder/ContainerRecipeInstanceConfigurationBlockDeviceMappingEbs:ContainerRecipeInstanceConfigurationBlockDeviceMappingEbs": { "properties": { @@ -79160,7 +79203,14 @@ "willReplaceOnChanges": true } }, - "type": "object" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "noDevice" + ] + } + } }, "aws:imagebuilder/ImageRecipeBlockDeviceMappingEbs:ImageRecipeBlockDeviceMappingEbs": { "properties": { @@ -79350,6 +79400,193 @@ "s3BucketName" ] }, + "aws:imagebuilder/LifecyclePolicyPolicyDetail:LifecyclePolicyPolicyDetail": { + "properties": { + "action": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailAction:LifecyclePolicyPolicyDetailAction", + "description": "Configuration details for the policy action.\n" + }, + "exclusionRules": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRules:LifecyclePolicyPolicyDetailExclusionRules", + "description": "Additional rules to specify resources that should be exempt from policy actions.\n" + }, + "filter": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailFilter:LifecyclePolicyPolicyDetailFilter", + "description": "Specifies the resources that the lifecycle policy applies to.\n\nThe following arguments are optional:\n" + } + }, + "type": "object" + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailAction:LifecyclePolicyPolicyDetailAction": { + "properties": { + "includeResources": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailActionIncludeResources:LifecyclePolicyPolicyDetailActionIncludeResources", + "description": "Specifies the resources that the lifecycle policy applies to. Detailed below.\n" + }, + "type": { + "type": "string", + "description": "Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`.\n\nThe following arguments are optional:\n" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailActionIncludeResources:LifecyclePolicyPolicyDetailActionIncludeResources": { + "properties": { + "amis": { + "type": "boolean", + "description": "Specifies whether the lifecycle action should apply to distributed AMIs.\n" + }, + "containers": { + "type": "boolean", + "description": "Specifies whether the lifecycle action should apply to distributed containers.\n" + }, + "snapshots": { + "type": "boolean", + "description": "Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "amis", + "containers", + "snapshots" + ] + } + } + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRules:LifecyclePolicyPolicyDetailExclusionRules": { + "properties": { + "amis": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRulesAmis:LifecyclePolicyPolicyDetailExclusionRulesAmis", + "description": "Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below.\n" + }, + "tagMap": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them.\n" + } + }, + "type": "object" + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRulesAmis:LifecyclePolicyPolicyDetailExclusionRulesAmis": { + "properties": { + "isPublic": { + "type": "boolean", + "description": "Configures whether public AMIs are excluded from the lifecycle action.\n" + }, + "lastLaunched": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched:LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched", + "description": "Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below.\n" + }, + "regions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Configures AWS Regions that are excluded from the lifecycle action.\n" + }, + "sharedAccounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Specifies AWS accounts whose resources are excluded from the lifecycle action.\n" + }, + "tagMap": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Lists tags that should be excluded from lifecycle actions for the AMIs that have them.\n" + } + }, + "type": "object" + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched:LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched": { + "properties": { + "unit": { + "type": "string", + "description": "Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`.\n" + }, + "value": { + "type": "integer", + "description": "The integer number of units for the time period. For example 6 (months).\n" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ] + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailFilter:LifecyclePolicyPolicyDetailFilter": { + "properties": { + "retainAtLeast": { + "type": "integer", + "description": "For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted.\n" + }, + "type": { + "type": "string", + "description": "Filter resources based on either age or count. Valid values: `AGE` or `COUNT`.\n" + }, + "unit": { + "type": "string", + "description": "Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`.\n" + }, + "value": { + "type": "integer", + "description": "The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs.\n\nThe following arguments are optional:\n" + } + }, + "type": "object", + "required": [ + "type", + "value" + ] + }, + "aws:imagebuilder/LifecyclePolicyResourceSelection:LifecyclePolicyResourceSelection": { + "properties": { + "recipes": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyResourceSelectionRecipe:LifecyclePolicyResourceSelectionRecipe" + }, + "description": "A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below.\n" + }, + "tagMap": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to.\n" + } + }, + "type": "object" + }, + "aws:imagebuilder/LifecyclePolicyResourceSelectionRecipe:LifecyclePolicyResourceSelectionRecipe": { + "properties": { + "name": { + "type": "string", + "description": "The name of an Image Builder recipe that the lifecycle policy uses for resource selection.\n" + }, + "semanticVersion": { + "type": "string", + "description": "The version of the Image Builder recipe specified by the name field.\n" + } + }, + "type": "object", + "required": [ + "name", + "semanticVersion" + ] + }, "aws:imagebuilder/getComponentsFilter:getComponentsFilter": { "properties": { "name": { @@ -85963,7 +86200,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -85975,7 +86212,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -86470,7 +86707,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -86482,7 +86719,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -86679,7 +86916,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -86691,7 +86928,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -86833,6 +87070,238 @@ } } }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfiguration:FirehoseDeliveryStreamIcebergConfiguration": { + "properties": { + "bufferingInterval": { + "type": "integer", + "description": "Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300.\n" + }, + "bufferingSize": { + "type": "integer", + "description": "Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5.\n" + }, + "catalogArn": { + "type": "string", + "description": "Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog`\n", + "willReplaceOnChanges": true + }, + "cloudwatchLoggingOptions": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions", + "description": "The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details.\n" + }, + "destinationTableConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration:FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration" + }, + "description": "Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details.\n", + "willReplaceOnChanges": true + }, + "processingConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration:FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration", + "description": "The data processing configuration. See `processing_configuration` block below for details.\n" + }, + "retryDuration": { + "type": "integer", + "description": "The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination.\n" + }, + "roleArn": { + "type": "string", + "description": "The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables.\n" + }, + "s3BackupMode": { + "type": "string" + }, + "s3Configuration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationS3Configuration:FirehoseDeliveryStreamIcebergConfigurationS3Configuration", + "description": "The S3 Configuration. See `s3_configuration` block below for details.\n" + } + }, + "type": "object", + "required": [ + "catalogArn", + "roleArn", + "s3Configuration" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "catalogArn", + "cloudwatchLoggingOptions", + "roleArn", + "s3Configuration" + ] + } + } + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables the logging. Defaults to `false`.\n" + }, + "logGroupName": { + "type": "string", + "description": "The CloudWatch group name for logging. This value is required if `enabled` is true.\n" + }, + "logStreamName": { + "type": "string", + "description": "The CloudWatch log stream name for logging. This value is required if `enabled` is true.\n" + } + }, + "type": "object" + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration:FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration": { + "properties": { + "databaseName": { + "type": "string", + "description": "The name of the Apache Iceberg database.\n" + }, + "s3ErrorOutputPrefix": { + "type": "string", + "description": "The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination.\n" + }, + "tableName": { + "type": "string", + "description": "The name of the Apache Iceberg Table.\n" + }, + "uniqueKeys": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table.\n" + } + }, + "type": "object", + "required": [ + "databaseName", + "tableName" + ] + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration:FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables data processing.\n" + }, + "processors": { + "type": "array", + "items": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor:FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor" + }, + "description": "Specifies the data processors as multiple blocks. See `processors` block below for details.\n" + } + }, + "type": "object" + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor:FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor": { + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter:FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter" + }, + "description": "Specifies the processor parameters as multiple blocks. See `parameters` block below for details.\n" + }, + "type": { + "type": "string", + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter:FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter": { + "properties": { + "parameterName": { + "type": "string", + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" + }, + "parameterValue": { + "type": "string", + "description": "Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well.\n\n\u003e **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values.\n" + } + }, + "type": "object", + "required": [ + "parameterName", + "parameterValue" + ] + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationS3Configuration:FirehoseDeliveryStreamIcebergConfigurationS3Configuration": { + "properties": { + "bucketArn": { + "type": "string", + "description": "The ARN of the S3 bucket\n" + }, + "bufferingInterval": { + "type": "integer", + "description": "Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300.\n" + }, + "bufferingSize": { + "type": "integer", + "description": "Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5.\nWe recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher.\n" + }, + "cloudwatchLoggingOptions": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions", + "description": "The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details.\n" + }, + "compressionFormat": { + "type": "string", + "description": "The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, \u0026 `HADOOP_SNAPPY`.\n" + }, + "errorOutputPrefix": { + "type": "string", + "description": "Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).\n" + }, + "kmsKeyArn": { + "type": "string", + "description": "Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will\nbe used.\n" + }, + "prefix": { + "type": "string", + "description": "The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket\n" + }, + "roleArn": { + "type": "string", + "description": "The ARN of the AWS credentials.\n" + } + }, + "type": "object", + "required": [ + "bucketArn", + "roleArn" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "bucketArn", + "cloudwatchLoggingOptions", + "roleArn" + ] + } + } + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables the logging. Defaults to `false`.\n" + }, + "logGroupName": { + "type": "string", + "description": "The CloudWatch group name for logging. This value is required if `enabled` is true.\n" + }, + "logStreamName": { + "type": "string", + "description": "The CloudWatch log stream name for logging. This value is required if `enabled` is true.\n" + } + }, + "type": "object" + }, "aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration": { "properties": { "kinesisStreamArn": { @@ -87034,7 +87503,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -87046,7 +87515,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -87286,7 +87755,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -87298,7 +87767,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -87549,7 +88018,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -87561,7 +88030,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -87911,7 +88380,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -87923,7 +88392,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -88167,7 +88636,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -88179,7 +88648,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -133820,6 +134289,108 @@ }, "type": "object" }, + "aws:resiliencehub/ResiliencyPolicyPolicy:ResiliencyPolicyPolicy": { + "properties": { + "az": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicyAz:ResiliencyPolicyPolicyAz", + "description": "Specifies Availability Zone failure policy. See `policy.az`\n" + }, + "hardware": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicyHardware:ResiliencyPolicyPolicyHardware", + "description": "Specifies Infrastructure failure policy. See `policy.hardware`\n" + }, + "region": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicyRegion:ResiliencyPolicyPolicyRegion", + "description": "Specifies Region failure policy. `policy.region`\n" + }, + "software": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicySoftware:ResiliencyPolicyPolicySoftware", + "description": "Specifies Application failure policy. See `policy.software`\n\nThe following arguments are optional:\n" + } + }, + "type": "object" + }, + "aws:resiliencehub/ResiliencyPolicyPolicyAz:ResiliencyPolicyPolicyAz": { + "properties": { + "rpo": { + "type": "string", + "description": "Recovery Point Objective (RPO) as a Go duration.\n" + }, + "rto": { + "type": "string", + "description": "Recovery Time Objective (RTO) as a Go duration.\n" + } + }, + "type": "object", + "required": [ + "rpo", + "rto" + ] + }, + "aws:resiliencehub/ResiliencyPolicyPolicyHardware:ResiliencyPolicyPolicyHardware": { + "properties": { + "rpo": { + "type": "string", + "description": "Recovery Point Objective (RPO) as a Go duration.\n" + }, + "rto": { + "type": "string", + "description": "Recovery Time Objective (RTO) as a Go duration.\n" + } + }, + "type": "object", + "required": [ + "rpo", + "rto" + ] + }, + "aws:resiliencehub/ResiliencyPolicyPolicyRegion:ResiliencyPolicyPolicyRegion": { + "properties": { + "rpo": { + "type": "string", + "description": "Recovery Point Objective (RPO) as a Go duration.\n" + }, + "rto": { + "type": "string", + "description": "Recovery Time Objective (RTO) as a Go duration.\n" + } + }, + "type": "object" + }, + "aws:resiliencehub/ResiliencyPolicyPolicySoftware:ResiliencyPolicyPolicySoftware": { + "properties": { + "rpo": { + "type": "string", + "description": "Recovery Point Objective (RPO) as a Go duration.\n" + }, + "rto": { + "type": "string", + "description": "Recovery Time Objective (RTO) as a Go duration.\n" + } + }, + "type": "object", + "required": [ + "rpo", + "rto" + ] + }, + "aws:resiliencehub/ResiliencyPolicyTimeouts:ResiliencyPolicyTimeouts": { + "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:resourceexplorer/IndexTimeouts:IndexTimeouts": { "properties": { "create": { @@ -134173,9 +134744,9 @@ "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" }, - "read": { + "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). Read operations occur during any refresh or planning operation when refresh is enabled.\n" + "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" @@ -139272,6 +139843,14 @@ }, "aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettings:DomainDefaultSpaceSettingsJupyterLabAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement:DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement", + "description": "Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below.\n" + }, + "builtInLifecycleConfigArn": { + "type": "string", + "description": "The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration.\n" + }, "codeRepositories": { "type": "array", "items": { @@ -139290,6 +139869,10 @@ "$ref": "#/types/aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec:DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below.\n" }, + "emrSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings:DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings", + "description": "The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below.\n" + }, "lifecycleConfigArns": { "type": "array", "items": { @@ -139300,6 +139883,36 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement:DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. see `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + }, + "lifecycleManagement": { + "type": "string", + "description": "Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`.\n" + }, + "maxIdleTimeoutInMinutes": { + "type": "integer", + "description": "The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + }, + "minIdleTimeoutInMinutes": { + "type": "integer", + "description": "The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository:DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository": { "properties": { "repositoryUrl": { @@ -139358,6 +139971,25 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings:DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings": { + "properties": { + "assumableRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain.\n" + }, + "executionRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultSpaceSettingsJupyterServerAppSettings:DomainDefaultSpaceSettingsJupyterServerAppSettings": { "properties": { "codeRepositories": { @@ -139515,6 +140147,10 @@ }, "aws:sagemaker/DomainDefaultUserSettings:DomainDefaultUserSettings": { "properties": { + "autoMountHomeEfs": { + "type": "string", + "description": "Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`.\n" + }, "canvasAppSettings": { "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettings:DomainDefaultUserSettingsCanvasAppSettings", "description": "The Canvas app settings. See `canvas_app_settings` Block below.\n" @@ -139597,6 +140233,7 @@ "language": { "nodejs": { "requiredOutputs": [ + "autoMountHomeEfs", "defaultLandingUri", "executionRole", "spaceStorageSettings", @@ -139611,6 +140248,10 @@ "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings:DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings", "description": "The model deployment settings for the SageMaker Canvas application. See `direct_deploy_settings` Block below.\n" }, + "emrServerlessSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings:DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings", + "description": "The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below.\n" + }, "generativeAiSettings": { "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings:DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings" }, @@ -139649,6 +140290,19 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings:DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings": { + "properties": { + "executionRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless.\n" + }, + "status": { + "type": "string", + "description": "Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings:DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings": { "properties": { "amazonBedrockRoleArn": { @@ -139727,6 +140381,14 @@ }, "aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettings:DomainDefaultUserSettingsCodeEditorAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement:DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement", + "description": "Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below.\n" + }, + "builtInLifecycleConfigArn": { + "type": "string", + "description": "The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration.\n" + }, "customImages": { "type": "array", "items": { @@ -139748,6 +140410,36 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement:DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. see `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + }, + "lifecycleManagement": { + "type": "string", + "description": "Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`.\n" + }, + "maxIdleTimeoutInMinutes": { + "type": "integer", + "description": "The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + }, + "minIdleTimeoutInMinutes": { + "type": "integer", + "description": "The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage:DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage": { "properties": { "appImageConfigName": { @@ -139839,6 +140531,14 @@ }, "aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettings:DomainDefaultUserSettingsJupyterLabAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement:DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement", + "description": "Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below.\n" + }, + "builtInLifecycleConfigArn": { + "type": "string", + "description": "The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration.\n" + }, "codeRepositories": { "type": "array", "items": { @@ -139857,6 +140557,10 @@ "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec:DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below.\n" }, + "emrSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings:DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings", + "description": "The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below.\n" + }, "lifecycleConfigArns": { "type": "array", "items": { @@ -139867,6 +140571,36 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement:DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. see `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + }, + "lifecycleManagement": { + "type": "string", + "description": "Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`.\n" + }, + "maxIdleTimeoutInMinutes": { + "type": "integer", + "description": "The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + }, + "minIdleTimeoutInMinutes": { + "type": "integer", + "description": "The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository:DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository": { "properties": { "repositoryUrl": { @@ -139925,6 +140659,25 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings:DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings": { + "properties": { + "assumableRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain.\n" + }, + "executionRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultUserSettingsJupyterServerAppSettings:DomainDefaultUserSettingsJupyterServerAppSettings": { "properties": { "codeRepositories": { @@ -140181,6 +140934,13 @@ }, "description": "The Applications supported in Studio that are hidden from the Studio left navigation pane.\n" }, + "hiddenInstanceTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The instance types you are hiding from the Studio user interface.\n" + }, "hiddenMlTools": { "type": "array", "items": { @@ -141001,6 +141761,14 @@ }, "aws:sagemaker/FeatureGroupFeatureDefinition:FeatureGroupFeatureDefinition": { "properties": { + "collectionConfig": { + "$ref": "#/types/aws:sagemaker/FeatureGroupFeatureDefinitionCollectionConfig:FeatureGroupFeatureDefinitionCollectionConfig", + "willReplaceOnChanges": true + }, + "collectionType": { + "type": "string", + "willReplaceOnChanges": true + }, "featureName": { "type": "string", "description": "The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`.\n", @@ -141014,6 +141782,24 @@ }, "type": "object" }, + "aws:sagemaker/FeatureGroupFeatureDefinitionCollectionConfig:FeatureGroupFeatureDefinitionCollectionConfig": { + "properties": { + "vectorConfig": { + "$ref": "#/types/aws:sagemaker/FeatureGroupFeatureDefinitionCollectionConfigVectorConfig:FeatureGroupFeatureDefinitionCollectionConfigVectorConfig", + "willReplaceOnChanges": true + } + }, + "type": "object" + }, + "aws:sagemaker/FeatureGroupFeatureDefinitionCollectionConfigVectorConfig:FeatureGroupFeatureDefinitionCollectionConfigVectorConfig": { + "properties": { + "dimension": { + "type": "integer", + "willReplaceOnChanges": true + } + }, + "type": "object" + }, "aws:sagemaker/FeatureGroupOfflineStoreConfig:FeatureGroupOfflineStoreConfig": { "properties": { "dataCatalogConfig": { @@ -141157,6 +141943,27 @@ }, "type": "object" }, + "aws:sagemaker/FeatureGroupThroughputConfig:FeatureGroupThroughputConfig": { + "properties": { + "provisionedReadCapacityUnits": { + "type": "integer" + }, + "provisionedWriteCapacityUnits": { + "type": "integer" + }, + "throughputMode": { + "type": "string" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "throughputMode" + ] + } + } + }, "aws:sagemaker/FlowDefinitionHumanLoopActivationConfig:FlowDefinitionHumanLoopActivationConfig": { "properties": { "humanLoopActivationConditionsConfig": { @@ -141300,6 +142107,16 @@ "s3OutputPath" ] }, + "aws:sagemaker/HubS3StorageConfig:HubS3StorageConfig": { + "properties": { + "s3OutputPath": { + "type": "string", + "description": "The Amazon S3 bucket prefix for hosting hub content.interface.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + }, "aws:sagemaker/HumanTaskUIUiTemplate:HumanTaskUIUiTemplate": { "properties": { "content": { @@ -141881,6 +142698,10 @@ }, "aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettings:SpaceSpaceSettingsCodeEditorAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement:SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement", + "description": "Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below.\n" + }, "defaultResourceSpec": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec:SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below.\n" @@ -141891,6 +142712,24 @@ "defaultResourceSpec" ] }, + "aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement:SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. See `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec:SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec": { "properties": { "instanceType": { @@ -141942,6 +142781,10 @@ }, "aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettings:SpaceSpaceSettingsJupyterLabAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement:SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement", + "description": "Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below.\n" + }, "codeRepositories": { "type": "array", "items": { @@ -141959,6 +142802,24 @@ "defaultResourceSpec" ] }, + "aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement:SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. See `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository:SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository": { "properties": { "repositoryUrl": { @@ -142169,6 +143030,10 @@ }, "aws:sagemaker/UserProfileUserSettings:UserProfileUserSettings": { "properties": { + "autoMountHomeEfs": { + "type": "string", + "description": "Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`.\n" + }, "canvasAppSettings": { "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCanvasAppSettings:UserProfileUserSettingsCanvasAppSettings", "description": "The Canvas app settings. See Canvas App Settings below.\n" @@ -142251,6 +143116,7 @@ "language": { "nodejs": { "requiredOutputs": [ + "autoMountHomeEfs", "executionRole", "spaceStorageSettings", "studioWebPortal" @@ -142264,6 +143130,10 @@ "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings:UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings", "description": "The model deployment settings for the SageMaker Canvas application. See Direct Deploy Settings below.\n" }, + "emrServerlessSettings": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings:UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings", + "description": "The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below.\n" + }, "generativeAiSettings": { "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings:UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings" }, @@ -142302,6 +143172,19 @@ }, "type": "object" }, + "aws:sagemaker/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings:UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings": { + "properties": { + "executionRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless.\n" + }, + "status": { + "type": "string", + "description": "Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings:UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings": { "properties": { "amazonBedrockRoleArn": { @@ -142380,6 +143263,14 @@ }, "aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettings:UserProfileUserSettingsCodeEditorAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement:UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement", + "description": "Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below.\n" + }, + "builtInLifecycleConfigArn": { + "type": "string", + "description": "The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration.\n" + }, "customImages": { "type": "array", "items": { @@ -142401,6 +143292,36 @@ }, "type": "object" }, + "aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement:UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. see `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + }, + "lifecycleManagement": { + "type": "string", + "description": "Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`.\n" + }, + "maxIdleTimeoutInMinutes": { + "type": "integer", + "description": "The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + }, + "minIdleTimeoutInMinutes": { + "type": "integer", + "description": "The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettingsCustomImage:UserProfileUserSettingsCodeEditorAppSettingsCustomImage": { "properties": { "appImageConfigName": { @@ -142494,6 +143415,14 @@ }, "aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettings:UserProfileUserSettingsJupyterLabAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement:UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement", + "description": "Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below.\n" + }, + "builtInLifecycleConfigArn": { + "type": "string", + "description": "The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration.\n" + }, "codeRepositories": { "type": "array", "items": { @@ -142511,6 +143440,10 @@ "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec:UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below.\n" }, + "emrSettings": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsEmrSettings:UserProfileUserSettingsJupyterLabAppSettingsEmrSettings", + "description": "The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below.\n" + }, "lifecycleConfigArns": { "type": "array", "items": { @@ -142521,6 +143454,36 @@ }, "type": "object" }, + "aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement:UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. see `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + }, + "lifecycleManagement": { + "type": "string", + "description": "Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`.\n" + }, + "maxIdleTimeoutInMinutes": { + "type": "integer", + "description": "The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + }, + "minIdleTimeoutInMinutes": { + "type": "integer", + "description": "The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsCodeRepository:UserProfileUserSettingsJupyterLabAppSettingsCodeRepository": { "properties": { "repositoryUrl": { @@ -142579,6 +143542,25 @@ }, "type": "object" }, + "aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsEmrSettings:UserProfileUserSettingsJupyterLabAppSettingsEmrSettings": { + "properties": { + "assumableRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain.\n" + }, + "executionRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements.\n" + } + }, + "type": "object" + }, "aws:sagemaker/UserProfileUserSettingsJupyterServerAppSettings:UserProfileUserSettingsJupyterServerAppSettings": { "properties": { "codeRepositories": { @@ -142835,6 +143817,13 @@ }, "description": "The Applications supported in Studio that are hidden from the Studio left navigation pane.\n" }, + "hiddenInstanceTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The instance types you are hiding from the Studio user interface.\n" + }, "hiddenMlTools": { "type": "array", "items": { @@ -150564,6 +151553,63 @@ } } }, + "aws:ssm/getPatchBaselinesBaselineIdentity:getPatchBaselinesBaselineIdentity": { + "properties": { + "baselineDescription": { + "type": "string", + "description": "Description of the patch baseline.\n" + }, + "baselineId": { + "type": "string", + "description": "ID of the patch baseline.\n" + }, + "baselineName": { + "type": "string", + "description": "Name of the patch baseline.\n" + }, + "defaultBaseline": { + "type": "boolean", + "description": "Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.\n" + }, + "operatingSystem": { + "type": "string", + "description": "Operating system the patch baseline applies to.\n" + } + }, + "type": "object", + "required": [ + "baselineDescription", + "baselineId", + "baselineName", + "defaultBaseline", + "operatingSystem" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:ssm/getPatchBaselinesFilter:getPatchBaselinesFilter": { + "properties": { + "key": { + "type": "string", + "description": "Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values.\n" + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values.\n" + } + }, + "type": "object", + "required": [ + "key", + "values" + ] + }, "aws:ssmcontacts/ContactChannelDeliveryAddress:ContactChannelDeliveryAddress": { "properties": { "simpleAddress": { @@ -170259,6 +171305,10 @@ }, "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." + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "required": [ @@ -170313,6 +171363,10 @@ "type": "string" }, "description": "A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "requiredInputs": [ @@ -170376,6 +171430,10 @@ }, "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." + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "type": "object" @@ -170651,6 +171709,10 @@ "type": "boolean", "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" }, + "enableZonalShift": { + "type": "boolean", + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" @@ -170801,6 +171863,10 @@ "type": "boolean", "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" }, + "enableZonalShift": { + "type": "boolean", + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" @@ -170938,6 +172004,10 @@ "type": "boolean", "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" }, + "enableZonalShift": { + "type": "boolean", + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" @@ -205239,6 +206309,10 @@ "trafficRoutingConfig": { "$ref": "#/types/aws:codedeploy/DeploymentConfigTrafficRoutingConfig:DeploymentConfigTrafficRoutingConfig", "description": "A traffic_routing_config block. Traffic Routing Config is documented below.\n" + }, + "zonalConfig": { + "$ref": "#/types/aws:codedeploy/DeploymentConfigZonalConfig:DeploymentConfigZonalConfig", + "description": "A zonal_config block. Zonal Config is documented below.\n" } }, "required": [ @@ -205266,6 +206340,11 @@ "$ref": "#/types/aws:codedeploy/DeploymentConfigTrafficRoutingConfig:DeploymentConfigTrafficRoutingConfig", "description": "A traffic_routing_config block. Traffic Routing Config is documented below.\n", "willReplaceOnChanges": true + }, + "zonalConfig": { + "$ref": "#/types/aws:codedeploy/DeploymentConfigZonalConfig:DeploymentConfigZonalConfig", + "description": "A zonal_config block. Zonal Config is documented below.\n", + "willReplaceOnChanges": true } }, "stateInputs": { @@ -205298,6 +206377,11 @@ "$ref": "#/types/aws:codedeploy/DeploymentConfigTrafficRoutingConfig:DeploymentConfigTrafficRoutingConfig", "description": "A traffic_routing_config block. Traffic Routing Config is documented below.\n", "willReplaceOnChanges": true + }, + "zonalConfig": { + "$ref": "#/types/aws:codedeploy/DeploymentConfigZonalConfig:DeploymentConfigZonalConfig", + "description": "A zonal_config block. Zonal Config is documented below.\n", + "willReplaceOnChanges": true } }, "type": "object" @@ -227799,22 +228883,32 @@ } }, "aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination": { - "description": "Enables a [Kinesis streaming destination](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html) for data replication of a DynamoDB table.\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.dynamodb.Table(\"example\", {\n name: \"orders\",\n hashKey: \"id\",\n attributes: [{\n name: \"id\",\n type: \"S\",\n }],\n});\nconst exampleStream = new aws.kinesis.Stream(\"example\", {\n name: \"order_item_changes\",\n shardCount: 1,\n});\nconst exampleKinesisStreamingDestination = new aws.dynamodb.KinesisStreamingDestination(\"example\", {\n streamArn: exampleStream.arn,\n tableName: example.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.dynamodb.Table(\"example\",\n name=\"orders\",\n hash_key=\"id\",\n attributes=[{\n \"name\": \"id\",\n \"type\": \"S\",\n }])\nexample_stream = aws.kinesis.Stream(\"example\",\n name=\"order_item_changes\",\n shard_count=1)\nexample_kinesis_streaming_destination = aws.dynamodb.KinesisStreamingDestination(\"example\",\n stream_arn=example_stream.arn,\n table_name=example.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.DynamoDB.Table(\"example\", new()\n {\n Name = \"orders\",\n HashKey = \"id\",\n Attributes = new[]\n {\n new Aws.DynamoDB.Inputs.TableAttributeArgs\n {\n Name = \"id\",\n Type = \"S\",\n },\n },\n });\n\n var exampleStream = new Aws.Kinesis.Stream(\"example\", new()\n {\n Name = \"order_item_changes\",\n ShardCount = 1,\n });\n\n var exampleKinesisStreamingDestination = new Aws.DynamoDB.KinesisStreamingDestination(\"example\", new()\n {\n StreamArn = exampleStream.Arn,\n TableName = example.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb\"\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\texample, err := dynamodb.NewTable(ctx, \"example\", \u0026dynamodb.TableArgs{\n\t\t\tName: pulumi.String(\"orders\"),\n\t\t\tHashKey: pulumi.String(\"id\"),\n\t\t\tAttributes: dynamodb.TableAttributeArray{\n\t\t\t\t\u0026dynamodb.TableAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"id\"),\n\t\t\t\t\tType: pulumi.String(\"S\"),\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\texampleStream, err := kinesis.NewStream(ctx, \"example\", \u0026kinesis.StreamArgs{\n\t\t\tName: pulumi.String(\"order_item_changes\"),\n\t\t\tShardCount: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dynamodb.NewKinesisStreamingDestination(ctx, \"example\", \u0026dynamodb.KinesisStreamingDestinationArgs{\n\t\t\tStreamArn: exampleStream.Arn,\n\t\t\tTableName: example.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.dynamodb.Table;\nimport com.pulumi.aws.dynamodb.TableArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;\nimport com.pulumi.aws.kinesis.Stream;\nimport com.pulumi.aws.kinesis.StreamArgs;\nimport com.pulumi.aws.dynamodb.KinesisStreamingDestination;\nimport com.pulumi.aws.dynamodb.KinesisStreamingDestinationArgs;\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 Table(\"example\", TableArgs.builder()\n .name(\"orders\")\n .hashKey(\"id\")\n .attributes(TableAttributeArgs.builder()\n .name(\"id\")\n .type(\"S\")\n .build())\n .build());\n\n var exampleStream = new Stream(\"exampleStream\", StreamArgs.builder()\n .name(\"order_item_changes\")\n .shardCount(1)\n .build());\n\n var exampleKinesisStreamingDestination = new KinesisStreamingDestination(\"exampleKinesisStreamingDestination\", KinesisStreamingDestinationArgs.builder()\n .streamArn(exampleStream.arn())\n .tableName(example.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:dynamodb:Table\n properties:\n name: orders\n hashKey: id\n attributes:\n - name: id\n type: S\n exampleStream:\n type: aws:kinesis:Stream\n name: example\n properties:\n name: order_item_changes\n shardCount: 1\n exampleKinesisStreamingDestination:\n type: aws:dynamodb:KinesisStreamingDestination\n name: example\n properties:\n streamArn: ${exampleStream.arn}\n tableName: ${example.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DynamoDB Kinesis Streaming Destinations using the `table_name` and `stream_arn` separated by `,`. For example:\n\n```sh\n$ pulumi import aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination example example,arn:aws:kinesis:us-east-1:111122223333:exampleStreamName\n```\n", + "description": "Enables a [Kinesis streaming destination](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html) for data replication of a DynamoDB table.\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.dynamodb.Table(\"example\", {\n name: \"orders\",\n hashKey: \"id\",\n attributes: [{\n name: \"id\",\n type: \"S\",\n }],\n});\nconst exampleStream = new aws.kinesis.Stream(\"example\", {\n name: \"order_item_changes\",\n shardCount: 1,\n});\nconst exampleKinesisStreamingDestination = new aws.dynamodb.KinesisStreamingDestination(\"example\", {\n streamArn: exampleStream.arn,\n tableName: example.name,\n approximateCreationDateTimePrecision: \"MICROSECOND\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.dynamodb.Table(\"example\",\n name=\"orders\",\n hash_key=\"id\",\n attributes=[{\n \"name\": \"id\",\n \"type\": \"S\",\n }])\nexample_stream = aws.kinesis.Stream(\"example\",\n name=\"order_item_changes\",\n shard_count=1)\nexample_kinesis_streaming_destination = aws.dynamodb.KinesisStreamingDestination(\"example\",\n stream_arn=example_stream.arn,\n table_name=example.name,\n approximate_creation_date_time_precision=\"MICROSECOND\")\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.DynamoDB.Table(\"example\", new()\n {\n Name = \"orders\",\n HashKey = \"id\",\n Attributes = new[]\n {\n new Aws.DynamoDB.Inputs.TableAttributeArgs\n {\n Name = \"id\",\n Type = \"S\",\n },\n },\n });\n\n var exampleStream = new Aws.Kinesis.Stream(\"example\", new()\n {\n Name = \"order_item_changes\",\n ShardCount = 1,\n });\n\n var exampleKinesisStreamingDestination = new Aws.DynamoDB.KinesisStreamingDestination(\"example\", new()\n {\n StreamArn = exampleStream.Arn,\n TableName = example.Name,\n ApproximateCreationDateTimePrecision = \"MICROSECOND\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb\"\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\texample, err := dynamodb.NewTable(ctx, \"example\", \u0026dynamodb.TableArgs{\n\t\t\tName: pulumi.String(\"orders\"),\n\t\t\tHashKey: pulumi.String(\"id\"),\n\t\t\tAttributes: dynamodb.TableAttributeArray{\n\t\t\t\t\u0026dynamodb.TableAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"id\"),\n\t\t\t\t\tType: pulumi.String(\"S\"),\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\texampleStream, err := kinesis.NewStream(ctx, \"example\", \u0026kinesis.StreamArgs{\n\t\t\tName: pulumi.String(\"order_item_changes\"),\n\t\t\tShardCount: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dynamodb.NewKinesisStreamingDestination(ctx, \"example\", \u0026dynamodb.KinesisStreamingDestinationArgs{\n\t\t\tStreamArn: exampleStream.Arn,\n\t\t\tTableName: example.Name,\n\t\t\tApproximateCreationDateTimePrecision: pulumi.String(\"MICROSECOND\"),\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.dynamodb.Table;\nimport com.pulumi.aws.dynamodb.TableArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;\nimport com.pulumi.aws.kinesis.Stream;\nimport com.pulumi.aws.kinesis.StreamArgs;\nimport com.pulumi.aws.dynamodb.KinesisStreamingDestination;\nimport com.pulumi.aws.dynamodb.KinesisStreamingDestinationArgs;\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 Table(\"example\", TableArgs.builder()\n .name(\"orders\")\n .hashKey(\"id\")\n .attributes(TableAttributeArgs.builder()\n .name(\"id\")\n .type(\"S\")\n .build())\n .build());\n\n var exampleStream = new Stream(\"exampleStream\", StreamArgs.builder()\n .name(\"order_item_changes\")\n .shardCount(1)\n .build());\n\n var exampleKinesisStreamingDestination = new KinesisStreamingDestination(\"exampleKinesisStreamingDestination\", KinesisStreamingDestinationArgs.builder()\n .streamArn(exampleStream.arn())\n .tableName(example.name())\n .approximateCreationDateTimePrecision(\"MICROSECOND\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:dynamodb:Table\n properties:\n name: orders\n hashKey: id\n attributes:\n - name: id\n type: S\n exampleStream:\n type: aws:kinesis:Stream\n name: example\n properties:\n name: order_item_changes\n shardCount: 1\n exampleKinesisStreamingDestination:\n type: aws:dynamodb:KinesisStreamingDestination\n name: example\n properties:\n streamArn: ${exampleStream.arn}\n tableName: ${example.name}\n approximateCreationDateTimePrecision: MICROSECOND\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DynamoDB Kinesis Streaming Destinations using the `table_name` and `stream_arn` separated by `,`. For example:\n\n```sh\n$ pulumi import aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination example example,arn:aws:kinesis:us-east-1:111122223333:exampleStreamName\n```\n", "properties": { + "approximateCreationDateTimePrecision": { + "type": "string", + "description": "Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`.\n" + }, "streamArn": { "type": "string", "description": "The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table.\n" }, "tableName": { "type": "string", - "description": "The name of the DynamoDB table. There\ncan only be one Kinesis streaming destination for a given DynamoDB table.\n" + "description": "The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table.\n" } }, "required": [ + "approximateCreationDateTimePrecision", "streamArn", "tableName" ], "inputProperties": { + "approximateCreationDateTimePrecision": { + "type": "string", + "description": "Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`.\n", + "willReplaceOnChanges": true + }, "streamArn": { "type": "string", "description": "The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table.\n", @@ -227822,7 +228916,7 @@ }, "tableName": { "type": "string", - "description": "The name of the DynamoDB table. There\ncan only be one Kinesis streaming destination for a given DynamoDB table.\n", + "description": "The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table.\n", "willReplaceOnChanges": true } }, @@ -227833,6 +228927,11 @@ "stateInputs": { "description": "Input properties used for looking up and filtering KinesisStreamingDestination resources.\n", "properties": { + "approximateCreationDateTimePrecision": { + "type": "string", + "description": "Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`.\n", + "willReplaceOnChanges": true + }, "streamArn": { "type": "string", "description": "The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table.\n", @@ -227840,7 +228939,7 @@ }, "tableName": { "type": "string", - "description": "The name of the DynamoDB table. There\ncan only be one Kinesis streaming destination for a given DynamoDB table.\n", + "description": "The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table.\n", "willReplaceOnChanges": true } }, @@ -254227,7 +255326,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n" + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`.\n" }, "engineVersion": { "type": "string", @@ -254398,7 +255497,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n", + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`.\n", "willReplaceOnChanges": true }, "engineVersion": { @@ -254561,7 +255660,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n", + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`.\n", "willReplaceOnChanges": true }, "engineVersion": { @@ -254694,7 +255793,7 @@ } }, "aws:elasticache/globalReplicationGroup:GlobalReplicationGroup": { - "description": "Provides an ElastiCache Global Replication Group resource, which manages replication between two or more Replication Groups in different regions. For more information, see the [ElastiCache User Guide](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html).\n\n## Example Usage\n\n### Global replication group with one secondary replication group\n\nThe global replication group depends on the primary group existing. Secondary replication groups depend on the global replication group. the provider dependency management will handle this transparently using resource value references.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"5.0.6\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"5.0.6\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id)\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"5.0.6\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"5.0.6\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: 5.0.6\n nodeType: cache.m5.large\n numCacheClusters: 1\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Managing Redis Engine Versions\n\nThe initial Redis version is determined by the version set on the primary replication group.\nHowever, once it is part of a Global Replication Group,\nthe Global Replication Group manages the version of all member replication groups.\n\nThe member replication groups must have `lifecycle.ignore_changes[engine_version]` set,\nor the provider will always return a diff.\n\nIn this example,\nthe primary replication group will be created with Redis 6.0,\nand then upgraded to Redis 6.2 once added to the Global Replication Group.\nThe secondary replication group will be created with Redis 6.2.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"6.0\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n engineVersion: \"6.2\",\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"6.0\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id,\n engine_version=\"6.2\")\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"6.0\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n EngineVersion = \"6.2\",\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"6.0\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t\tEngineVersion: pulumi.String(\"6.2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"6.0\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .engineVersion(\"6.2\")\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n engineVersion: '6.2'\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: '6.0'\n nodeType: cache.m5.large\n numCacheClusters: 1\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Global Replication Groups using the `global_replication_group_id`. For example:\n\n```sh\n$ pulumi import aws:elasticache/globalReplicationGroup:GlobalReplicationGroup my_global_replication_group okuqm-global-replication-group-1\n```\n", + "description": "Provides an ElastiCache Global Replication Group resource, which manages replication between two or more Replication Groups in different regions. For more information, see the [ElastiCache User Guide](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html).\n\n## Example Usage\n\n### Global replication group with one secondary replication group\n\nThe global replication group depends on the primary group existing. Secondary replication groups depend on the global replication group. the provider dependency management will handle this transparently using resource value references.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"5.0.6\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"5.0.6\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id)\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"5.0.6\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"5.0.6\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: 5.0.6\n nodeType: cache.m5.large\n numCacheClusters: 1\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Managing Redis OOS/Valkey Engine Versions\n\nThe initial Redis version is determined by the version set on the primary replication group.\nHowever, once it is part of a Global Replication Group,\nthe Global Replication Group manages the version of all member replication groups.\n\nThe member replication groups must have `lifecycle.ignore_changes[engine_version]` set,\nor the provider will always return a diff.\n\nIn this example,\nthe primary replication group will be created with Redis 6.0,\nand then upgraded to Redis 6.2 once added to the Global Replication Group.\nThe secondary replication group will be created with Redis 6.2.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"6.0\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n engineVersion: \"6.2\",\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"6.0\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id,\n engine_version=\"6.2\")\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"6.0\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n EngineVersion = \"6.2\",\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"6.0\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t\tEngineVersion: pulumi.String(\"6.2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"6.0\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .engineVersion(\"6.2\")\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n engineVersion: '6.2'\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: '6.0'\n nodeType: cache.m5.large\n numCacheClusters: 1\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Global Replication Groups using the `global_replication_group_id`. For example:\n\n```sh\n$ pulumi import aws:elasticache/globalReplicationGroup:GlobalReplicationGroup my_global_replication_group okuqm-global-replication-group-1\n```\n", "properties": { "arn": { "type": "string", @@ -255040,7 +256139,7 @@ } }, "aws:elasticache/replicationGroup:ReplicationGroup": { - "description": "Provides an ElastiCache Replication Group resource.\n\nFor working with a [Memcached cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html) or a\n[single-node Redis instance (Cluster Mode Disabled)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html),\nsee the `aws.elasticache.Cluster` resource.\n\n\u003e **Note:** When you change an attribute, such as `engine_version`, by\ndefault the ElastiCache API applies it in the next maintenance window. Because\nof this, this provider may report a difference in its planning phase because the\nactual modification has not yet taken place. You can use the\n`apply_immediately` flag to instruct the service to apply the change\nimmediately. Using `apply_immediately` can result in a brief downtime as\nservers reboots.\nSee the AWS Documentation on\n[Modifying an ElastiCache Cache Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Modify.html)\nfor more information.\n\n\u003e **Note:** Any attribute changes that re-create the resource will be applied immediately, regardless of the value of `apply_immediately`.\n\n\u003e **Note:** Be aware of the terminology collision around \"cluster\" for `aws.elasticache.ReplicationGroup`. For example, it is possible to create a [\"Cluster Mode Disabled [Redis] Cluster\"](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Create.CON.Redis.html). With \"Cluster Mode Enabled\", the data will be stored in shards (called \"node groups\"). See [Redis Cluster Configuration](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/cluster-create-determine-requirements.html#redis-cluster-configuration) for a diagram of the differences. To enable cluster mode, use a parameter group that has cluster mode enabled. The default parameter groups provided by AWS end with \".cluster.on\", for example `default.redis6.x.cluster.on`.\n\n## Example Usage\n\n### Redis Cluster Mode Disabled\n\nTo create a single shard primary with single read replica:\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.elasticache.ReplicationGroup(\"example\", {\n automaticFailoverEnabled: true,\n preferredCacheClusterAzs: [\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replicationGroupId: \"tf-rep-group-1\",\n description: \"example description\",\n nodeType: \"cache.m4.large\",\n numCacheClusters: 2,\n parameterGroupName: \"default.redis3.2\",\n port: 6379,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n automatic_failover_enabled=True,\n preferred_cache_cluster_azs=[\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replication_group_id=\"tf-rep-group-1\",\n description=\"example description\",\n node_type=\"cache.m4.large\",\n num_cache_clusters=2,\n parameter_group_name=\"default.redis3.2\",\n port=6379)\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.ElastiCache.ReplicationGroup(\"example\", new()\n {\n AutomaticFailoverEnabled = true,\n PreferredCacheClusterAzs = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n },\n ReplicationGroupId = \"tf-rep-group-1\",\n Description = \"example description\",\n NodeType = \"cache.m4.large\",\n NumCacheClusters = 2,\n ParameterGroupName = \"default.redis3.2\",\n Port = 6379,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tPreferredCacheClusterAzs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t},\n\t\t\tReplicationGroupId: pulumi.String(\"tf-rep-group-1\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.m4.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(2),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2\"),\n\t\t\tPort: pulumi.Int(6379),\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .automaticFailoverEnabled(true)\n .preferredCacheClusterAzs( \n \"us-west-2a\",\n \"us-west-2b\")\n .replicationGroupId(\"tf-rep-group-1\")\n .description(\"example description\")\n .nodeType(\"cache.m4.large\")\n .numCacheClusters(2)\n .parameterGroupName(\"default.redis3.2\")\n .port(6379)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n automaticFailoverEnabled: true\n preferredCacheClusterAzs:\n - us-west-2a\n - us-west-2b\n replicationGroupId: tf-rep-group-1\n description: example description\n nodeType: cache.m4.large\n numCacheClusters: 2\n parameterGroupName: default.redis3.2\n port: 6379\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nYou have two options for adjusting the number of replicas:\n\n* Adjusting `num_cache_clusters` directly. This will attempt to automatically add or remove replicas, but provides no granular control (e.g., preferred availability zone, cache cluster ID) for the added or removed replicas. This also currently expects cache cluster IDs in the form of `replication_group_id-00#`.\n* Otherwise for fine grained control of the underlying cache clusters, they can be added or removed with the `aws.elasticache.Cluster` resource and its `replication_group_id` attribute. In this situation, you will need to utilize [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to prevent perpetual differences with the `number_cache_cluster` attribute.\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.elasticache.ReplicationGroup(\"example\", {\n automaticFailoverEnabled: true,\n preferredCacheClusterAzs: [\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replicationGroupId: \"tf-rep-group-1\",\n description: \"example description\",\n nodeType: \"cache.m4.large\",\n numCacheClusters: 2,\n parameterGroupName: \"default.redis3.2\",\n port: 6379,\n});\nconst replica: aws.elasticache.Cluster[] = [];\nfor (const range = {value: 0}; range.value \u003c 1; range.value++) {\n replica.push(new aws.elasticache.Cluster(`replica-${range.value}`, {\n clusterId: `tf-rep-group-1-${range.value}`,\n replicationGroupId: example.id,\n }));\n}\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n automatic_failover_enabled=True,\n preferred_cache_cluster_azs=[\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replication_group_id=\"tf-rep-group-1\",\n description=\"example description\",\n node_type=\"cache.m4.large\",\n num_cache_clusters=2,\n parameter_group_name=\"default.redis3.2\",\n port=6379)\nreplica = []\nfor range in [{\"value\": i} for i in range(0, 1)]:\n replica.append(aws.elasticache.Cluster(f\"replica-{range['value']}\",\n cluster_id=f\"tf-rep-group-1-{range['value']}\",\n replication_group_id=example.id))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.ElastiCache.ReplicationGroup(\"example\", new()\n {\n AutomaticFailoverEnabled = true,\n PreferredCacheClusterAzs = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n },\n ReplicationGroupId = \"tf-rep-group-1\",\n Description = \"example description\",\n NodeType = \"cache.m4.large\",\n NumCacheClusters = 2,\n ParameterGroupName = \"default.redis3.2\",\n Port = 6379,\n });\n\n var replica = new List\u003cAws.ElastiCache.Cluster\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 1; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n replica.Add(new Aws.ElastiCache.Cluster($\"replica-{range.Value}\", new()\n {\n ClusterId = $\"tf-rep-group-1-{range.Value}\",\n ReplicationGroupId = example.Id,\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/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tPreferredCacheClusterAzs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t},\n\t\t\tReplicationGroupId: pulumi.String(\"tf-rep-group-1\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.m4.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(2),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar replica []*elasticache.Cluster\n\t\tfor index := 0; index \u003c 1; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := elasticache.NewCluster(ctx, fmt.Sprintf(\"replica-%v\", key0), \u0026elasticache.ClusterArgs{\n\t\t\t\tClusterId: pulumi.Sprintf(\"tf-rep-group-1-%v\", val0),\n\t\t\t\tReplicationGroupId: example.ID(),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treplica = append(replica, __res)\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.Cluster;\nimport com.pulumi.aws.elasticache.ClusterArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .automaticFailoverEnabled(true)\n .preferredCacheClusterAzs( \n \"us-west-2a\",\n \"us-west-2b\")\n .replicationGroupId(\"tf-rep-group-1\")\n .description(\"example description\")\n .nodeType(\"cache.m4.large\")\n .numCacheClusters(2)\n .parameterGroupName(\"default.redis3.2\")\n .port(6379)\n .build());\n\n for (var i = 0; i \u003c 1; i++) {\n new Cluster(\"replica-\" + i, ClusterArgs.builder()\n .clusterId(String.format(\"tf-rep-group-1-%s\", range.value()))\n .replicationGroupId(example.id())\n .build());\n\n \n}\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n automaticFailoverEnabled: true\n preferredCacheClusterAzs:\n - us-west-2a\n - us-west-2b\n replicationGroupId: tf-rep-group-1\n description: example description\n nodeType: cache.m4.large\n numCacheClusters: 2\n parameterGroupName: default.redis3.2\n port: 6379\n replica:\n type: aws:elasticache:Cluster\n properties:\n clusterId: tf-rep-group-1-${range.value}\n replicationGroupId: ${example.id}\n options: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis Cluster Mode Enabled\n\nTo create two shards with a primary and a single read replica each:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst baz = new aws.elasticache.ReplicationGroup(\"baz\", {\n replicationGroupId: \"tf-redis-cluster\",\n description: \"example description\",\n nodeType: \"cache.t2.small\",\n port: 6379,\n parameterGroupName: \"default.redis3.2.cluster.on\",\n automaticFailoverEnabled: true,\n numNodeGroups: 2,\n replicasPerNodeGroup: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbaz = aws.elasticache.ReplicationGroup(\"baz\",\n replication_group_id=\"tf-redis-cluster\",\n description=\"example description\",\n node_type=\"cache.t2.small\",\n port=6379,\n parameter_group_name=\"default.redis3.2.cluster.on\",\n automatic_failover_enabled=True,\n num_node_groups=2,\n replicas_per_node_group=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 baz = new Aws.ElastiCache.ReplicationGroup(\"baz\", new()\n {\n ReplicationGroupId = \"tf-redis-cluster\",\n Description = \"example description\",\n NodeType = \"cache.t2.small\",\n Port = 6379,\n ParameterGroupName = \"default.redis3.2.cluster.on\",\n AutomaticFailoverEnabled = true,\n NumNodeGroups = 2,\n ReplicasPerNodeGroup = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"baz\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"tf-redis-cluster\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.t2.small\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2.cluster.on\"),\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tNumNodeGroups: pulumi.Int(2),\n\t\t\tReplicasPerNodeGroup: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 baz = new ReplicationGroup(\"baz\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"tf-redis-cluster\")\n .description(\"example description\")\n .nodeType(\"cache.t2.small\")\n .port(6379)\n .parameterGroupName(\"default.redis3.2.cluster.on\")\n .automaticFailoverEnabled(true)\n .numNodeGroups(2)\n .replicasPerNodeGroup(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n baz:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: tf-redis-cluster\n description: example description\n nodeType: cache.t2.small\n port: 6379\n parameterGroupName: default.redis3.2.cluster.on\n automaticFailoverEnabled: true\n numNodeGroups: 2\n replicasPerNodeGroup: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis Log Delivery configuration\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.elasticache.ReplicationGroup(\"test\", {\n replicationGroupId: \"myreplicaciongroup\",\n description: \"test description\",\n nodeType: \"cache.t3.small\",\n port: 6379,\n applyImmediately: true,\n autoMinorVersionUpgrade: false,\n maintenanceWindow: \"tue:06:30-tue:07:30\",\n snapshotWindow: \"01:00-02:00\",\n logDeliveryConfigurations: [\n {\n destination: example.name,\n destinationType: \"cloudwatch-logs\",\n logFormat: \"text\",\n logType: \"slow-log\",\n },\n {\n destination: exampleAwsKinesisFirehoseDeliveryStream.name,\n destinationType: \"kinesis-firehose\",\n logFormat: \"json\",\n logType: \"engine-log\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.elasticache.ReplicationGroup(\"test\",\n replication_group_id=\"myreplicaciongroup\",\n description=\"test description\",\n node_type=\"cache.t3.small\",\n port=6379,\n apply_immediately=True,\n auto_minor_version_upgrade=False,\n maintenance_window=\"tue:06:30-tue:07:30\",\n snapshot_window=\"01:00-02:00\",\n log_delivery_configurations=[\n {\n \"destination\": example[\"name\"],\n \"destination_type\": \"cloudwatch-logs\",\n \"log_format\": \"text\",\n \"log_type\": \"slow-log\",\n },\n {\n \"destination\": example_aws_kinesis_firehose_delivery_stream[\"name\"],\n \"destination_type\": \"kinesis-firehose\",\n \"log_format\": \"json\",\n \"log_type\": \"engine-log\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.ElastiCache.ReplicationGroup(\"test\", new()\n {\n ReplicationGroupId = \"myreplicaciongroup\",\n Description = \"test description\",\n NodeType = \"cache.t3.small\",\n Port = 6379,\n ApplyImmediately = true,\n AutoMinorVersionUpgrade = false,\n MaintenanceWindow = \"tue:06:30-tue:07:30\",\n SnapshotWindow = \"01:00-02:00\",\n LogDeliveryConfigurations = new[]\n {\n new Aws.ElastiCache.Inputs.ReplicationGroupLogDeliveryConfigurationArgs\n {\n Destination = example.Name,\n DestinationType = \"cloudwatch-logs\",\n LogFormat = \"text\",\n LogType = \"slow-log\",\n },\n new Aws.ElastiCache.Inputs.ReplicationGroupLogDeliveryConfigurationArgs\n {\n Destination = exampleAwsKinesisFirehoseDeliveryStream.Name,\n DestinationType = \"kinesis-firehose\",\n LogFormat = \"json\",\n LogType = \"engine-log\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"test\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"myreplicaciongroup\"),\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tNodeType: pulumi.String(\"cache.t3.small\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\tAutoMinorVersionUpgrade: pulumi.Bool(false),\n\t\t\tMaintenanceWindow: pulumi.String(\"tue:06:30-tue:07:30\"),\n\t\t\tSnapshotWindow: pulumi.String(\"01:00-02:00\"),\n\t\t\tLogDeliveryConfigurations: elasticache.ReplicationGroupLogDeliveryConfigurationArray{\n\t\t\t\t\u0026elasticache.ReplicationGroupLogDeliveryConfigurationArgs{\n\t\t\t\t\tDestination: pulumi.Any(example.Name),\n\t\t\t\t\tDestinationType: pulumi.String(\"cloudwatch-logs\"),\n\t\t\t\t\tLogFormat: pulumi.String(\"text\"),\n\t\t\t\t\tLogType: pulumi.String(\"slow-log\"),\n\t\t\t\t},\n\t\t\t\t\u0026elasticache.ReplicationGroupLogDeliveryConfigurationArgs{\n\t\t\t\t\tDestination: pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name),\n\t\t\t\t\tDestinationType: pulumi.String(\"kinesis-firehose\"),\n\t\t\t\t\tLogFormat: pulumi.String(\"json\"),\n\t\t\t\t\tLogType: pulumi.String(\"engine-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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.inputs.ReplicationGroupLogDeliveryConfigurationArgs;\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 ReplicationGroup(\"test\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"myreplicaciongroup\")\n .description(\"test description\")\n .nodeType(\"cache.t3.small\")\n .port(6379)\n .applyImmediately(true)\n .autoMinorVersionUpgrade(false)\n .maintenanceWindow(\"tue:06:30-tue:07:30\")\n .snapshotWindow(\"01:00-02:00\")\n .logDeliveryConfigurations( \n ReplicationGroupLogDeliveryConfigurationArgs.builder()\n .destination(example.name())\n .destinationType(\"cloudwatch-logs\")\n .logFormat(\"text\")\n .logType(\"slow-log\")\n .build(),\n ReplicationGroupLogDeliveryConfigurationArgs.builder()\n .destination(exampleAwsKinesisFirehoseDeliveryStream.name())\n .destinationType(\"kinesis-firehose\")\n .logFormat(\"json\")\n .logType(\"engine-log\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: myreplicaciongroup\n description: test description\n nodeType: cache.t3.small\n port: 6379\n applyImmediately: true\n autoMinorVersionUpgrade: false\n maintenanceWindow: tue:06:30-tue:07:30\n snapshotWindow: 01:00-02:00\n logDeliveryConfigurations:\n - destination: ${example.name}\n destinationType: cloudwatch-logs\n logFormat: text\n logType: slow-log\n - destination: ${exampleAwsKinesisFirehoseDeliveryStream.name}\n destinationType: kinesis-firehose\n logFormat: json\n logType: engine-log\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **Note:** We currently do not support passing a `primary_cluster_id` in order to create the Replication Group.\n\n\u003e **Note:** Automatic Failover is unavailable for Redis versions earlier than 2.8.6,\nand unavailable on T1 node types. For T2 node types, it is only available on Redis version 3.2.4 or later with cluster mode enabled. See the [High Availability Using Replication Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.html) guide\nfor full details on using Replication Groups.\n\n### Creating a secondary replication group for a global replication group\n\nA Global Replication Group can have one one two secondary Replication Groups in different regions. These are added to an existing Global Replication Group.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"5.0.6\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"5.0.6\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id)\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"5.0.6\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"5.0.6\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: 5.0.6\n nodeType: cache.m5.large\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis AUTH and In-Transit Encryption Enabled\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.elasticache.ReplicationGroup(\"example\", {\n replicationGroupId: \"example\",\n description: \"example with authentication\",\n nodeType: \"cache.t2.micro\",\n numCacheClusters: 1,\n port: 6379,\n subnetGroupName: exampleAwsElasticacheSubnetGroup.name,\n securityGroupIds: [exampleAwsSecurityGroup.id],\n parameterGroupName: \"default.redis5.0\",\n engineVersion: \"5.0.6\",\n transitEncryptionEnabled: true,\n authToken: \"abcdefgh1234567890\",\n authTokenUpdateStrategy: \"ROTATE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n replication_group_id=\"example\",\n description=\"example with authentication\",\n node_type=\"cache.t2.micro\",\n num_cache_clusters=1,\n port=6379,\n subnet_group_name=example_aws_elasticache_subnet_group[\"name\"],\n security_group_ids=[example_aws_security_group[\"id\"]],\n parameter_group_name=\"default.redis5.0\",\n engine_version=\"5.0.6\",\n transit_encryption_enabled=True,\n auth_token=\"abcdefgh1234567890\",\n auth_token_update_strategy=\"ROTATE\")\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.ElastiCache.ReplicationGroup(\"example\", new()\n {\n ReplicationGroupId = \"example\",\n Description = \"example with authentication\",\n NodeType = \"cache.t2.micro\",\n NumCacheClusters = 1,\n Port = 6379,\n SubnetGroupName = exampleAwsElasticacheSubnetGroup.Name,\n SecurityGroupIds = new[]\n {\n exampleAwsSecurityGroup.Id,\n },\n ParameterGroupName = \"default.redis5.0\",\n EngineVersion = \"5.0.6\",\n TransitEncryptionEnabled = true,\n AuthToken = \"abcdefgh1234567890\",\n AuthTokenUpdateStrategy = \"ROTATE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"example with authentication\"),\n\t\t\tNodeType: pulumi.String(\"cache.t2.micro\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tSubnetGroupName: pulumi.Any(exampleAwsElasticacheSubnetGroup.Name),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleAwsSecurityGroup.Id,\n\t\t\t},\n\t\t\tParameterGroupName: pulumi.String(\"default.redis5.0\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tTransitEncryptionEnabled: pulumi.Bool(true),\n\t\t\tAuthToken: pulumi.String(\"abcdefgh1234567890\"),\n\t\t\tAuthTokenUpdateStrategy: pulumi.String(\"ROTATE\"),\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example\")\n .description(\"example with authentication\")\n .nodeType(\"cache.t2.micro\")\n .numCacheClusters(1)\n .port(6379)\n .subnetGroupName(exampleAwsElasticacheSubnetGroup.name())\n .securityGroupIds(exampleAwsSecurityGroup.id())\n .parameterGroupName(\"default.redis5.0\")\n .engineVersion(\"5.0.6\")\n .transitEncryptionEnabled(true)\n .authToken(\"abcdefgh1234567890\")\n .authTokenUpdateStrategy(\"ROTATE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example\n description: example with authentication\n nodeType: cache.t2.micro\n numCacheClusters: 1\n port: 6379\n subnetGroupName: ${exampleAwsElasticacheSubnetGroup.name}\n securityGroupIds:\n - ${exampleAwsSecurityGroup.id}\n parameterGroupName: default.redis5.0\n engineVersion: 5.0.6\n transitEncryptionEnabled: true\n authToken: abcdefgh1234567890\n authTokenUpdateStrategy: ROTATE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e When adding a new `auth_token` to a previously passwordless replication group, using the `ROTATE` update strategy will result in support for **both** the new token and passwordless authentication. To immediately require authorization when adding the initial token, use the `SET` strategy instead. See the [Authenticating with the Redis AUTH command](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html) guide for additional details.\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Replication Groups using the `replication_group_id`. For example:\n\n```sh\n$ pulumi import aws:elasticache/replicationGroup:ReplicationGroup my_replication_group replication-group-1\n```\n", + "description": "Provides an ElastiCache Replication Group resource.\n\nFor working with a [Memcached cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html) or a\n[single-node Redis instance (Cluster Mode Disabled)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html),\nsee the `aws.elasticache.Cluster` resource.\n\n\u003e **Note:** When you change an attribute, such as `engine_version`, by\ndefault the ElastiCache API applies it in the next maintenance window. Because\nof this, this provider may report a difference in its planning phase because the\nactual modification has not yet taken place. You can use the\n`apply_immediately` flag to instruct the service to apply the change\nimmediately. Using `apply_immediately` can result in a brief downtime as\nservers reboots.\nSee the AWS Documentation on\n[Modifying an ElastiCache Cache Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Modify.html)\nfor more information.\n\n\u003e **Note:** Any attribute changes that re-create the resource will be applied immediately, regardless of the value of `apply_immediately`.\n\n\u003e **Note:** Be aware of the terminology collision around \"cluster\" for `aws.elasticache.ReplicationGroup`. For example, it is possible to create a [\"Cluster Mode Disabled [Redis] Cluster\"](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Create.CON.Redis.html). With \"Cluster Mode Enabled\", the data will be stored in shards (called \"node groups\"). See [Redis Cluster Configuration](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/cluster-create-determine-requirements.html#redis-cluster-configuration) for a diagram of the differences. To enable cluster mode, use a parameter group that has cluster mode enabled. The default parameter groups provided by AWS end with \".cluster.on\", for example `default.redis6.x.cluster.on`.\n\n## Example Usage\n\n### Redis OSS/Valkey Cluster Mode Disabled\n\nTo create a single shard primary with single read replica:\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.elasticache.ReplicationGroup(\"example\", {\n automaticFailoverEnabled: true,\n preferredCacheClusterAzs: [\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replicationGroupId: \"tf-rep-group-1\",\n description: \"example description\",\n nodeType: \"cache.m4.large\",\n numCacheClusters: 2,\n parameterGroupName: \"default.redis3.2\",\n port: 6379,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n automatic_failover_enabled=True,\n preferred_cache_cluster_azs=[\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replication_group_id=\"tf-rep-group-1\",\n description=\"example description\",\n node_type=\"cache.m4.large\",\n num_cache_clusters=2,\n parameter_group_name=\"default.redis3.2\",\n port=6379)\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.ElastiCache.ReplicationGroup(\"example\", new()\n {\n AutomaticFailoverEnabled = true,\n PreferredCacheClusterAzs = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n },\n ReplicationGroupId = \"tf-rep-group-1\",\n Description = \"example description\",\n NodeType = \"cache.m4.large\",\n NumCacheClusters = 2,\n ParameterGroupName = \"default.redis3.2\",\n Port = 6379,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tPreferredCacheClusterAzs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t},\n\t\t\tReplicationGroupId: pulumi.String(\"tf-rep-group-1\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.m4.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(2),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2\"),\n\t\t\tPort: pulumi.Int(6379),\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .automaticFailoverEnabled(true)\n .preferredCacheClusterAzs( \n \"us-west-2a\",\n \"us-west-2b\")\n .replicationGroupId(\"tf-rep-group-1\")\n .description(\"example description\")\n .nodeType(\"cache.m4.large\")\n .numCacheClusters(2)\n .parameterGroupName(\"default.redis3.2\")\n .port(6379)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n automaticFailoverEnabled: true\n preferredCacheClusterAzs:\n - us-west-2a\n - us-west-2b\n replicationGroupId: tf-rep-group-1\n description: example description\n nodeType: cache.m4.large\n numCacheClusters: 2\n parameterGroupName: default.redis3.2\n port: 6379\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nYou have two options for adjusting the number of replicas:\n\n* Adjusting `num_cache_clusters` directly. This will attempt to automatically add or remove replicas, but provides no granular control (e.g., preferred availability zone, cache cluster ID) for the added or removed replicas. This also currently expects cache cluster IDs in the form of `replication_group_id-00#`.\n* Otherwise for fine grained control of the underlying cache clusters, they can be added or removed with the `aws.elasticache.Cluster` resource and its `replication_group_id` attribute. In this situation, you will need to utilize [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to prevent perpetual differences with the `number_cache_cluster` attribute.\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.elasticache.ReplicationGroup(\"example\", {\n automaticFailoverEnabled: true,\n preferredCacheClusterAzs: [\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replicationGroupId: \"tf-rep-group-1\",\n description: \"example description\",\n nodeType: \"cache.m4.large\",\n numCacheClusters: 2,\n parameterGroupName: \"default.redis3.2\",\n port: 6379,\n});\nconst replica: aws.elasticache.Cluster[] = [];\nfor (const range = {value: 0}; range.value \u003c 1; range.value++) {\n replica.push(new aws.elasticache.Cluster(`replica-${range.value}`, {\n clusterId: `tf-rep-group-1-${range.value}`,\n replicationGroupId: example.id,\n }));\n}\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n automatic_failover_enabled=True,\n preferred_cache_cluster_azs=[\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replication_group_id=\"tf-rep-group-1\",\n description=\"example description\",\n node_type=\"cache.m4.large\",\n num_cache_clusters=2,\n parameter_group_name=\"default.redis3.2\",\n port=6379)\nreplica = []\nfor range in [{\"value\": i} for i in range(0, 1)]:\n replica.append(aws.elasticache.Cluster(f\"replica-{range['value']}\",\n cluster_id=f\"tf-rep-group-1-{range['value']}\",\n replication_group_id=example.id))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.ElastiCache.ReplicationGroup(\"example\", new()\n {\n AutomaticFailoverEnabled = true,\n PreferredCacheClusterAzs = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n },\n ReplicationGroupId = \"tf-rep-group-1\",\n Description = \"example description\",\n NodeType = \"cache.m4.large\",\n NumCacheClusters = 2,\n ParameterGroupName = \"default.redis3.2\",\n Port = 6379,\n });\n\n var replica = new List\u003cAws.ElastiCache.Cluster\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 1; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n replica.Add(new Aws.ElastiCache.Cluster($\"replica-{range.Value}\", new()\n {\n ClusterId = $\"tf-rep-group-1-{range.Value}\",\n ReplicationGroupId = example.Id,\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/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tPreferredCacheClusterAzs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t},\n\t\t\tReplicationGroupId: pulumi.String(\"tf-rep-group-1\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.m4.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(2),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar replica []*elasticache.Cluster\n\t\tfor index := 0; index \u003c 1; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := elasticache.NewCluster(ctx, fmt.Sprintf(\"replica-%v\", key0), \u0026elasticache.ClusterArgs{\n\t\t\t\tClusterId: pulumi.Sprintf(\"tf-rep-group-1-%v\", val0),\n\t\t\t\tReplicationGroupId: example.ID(),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treplica = append(replica, __res)\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.Cluster;\nimport com.pulumi.aws.elasticache.ClusterArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .automaticFailoverEnabled(true)\n .preferredCacheClusterAzs( \n \"us-west-2a\",\n \"us-west-2b\")\n .replicationGroupId(\"tf-rep-group-1\")\n .description(\"example description\")\n .nodeType(\"cache.m4.large\")\n .numCacheClusters(2)\n .parameterGroupName(\"default.redis3.2\")\n .port(6379)\n .build());\n\n for (var i = 0; i \u003c 1; i++) {\n new Cluster(\"replica-\" + i, ClusterArgs.builder()\n .clusterId(String.format(\"tf-rep-group-1-%s\", range.value()))\n .replicationGroupId(example.id())\n .build());\n\n \n}\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n automaticFailoverEnabled: true\n preferredCacheClusterAzs:\n - us-west-2a\n - us-west-2b\n replicationGroupId: tf-rep-group-1\n description: example description\n nodeType: cache.m4.large\n numCacheClusters: 2\n parameterGroupName: default.redis3.2\n port: 6379\n replica:\n type: aws:elasticache:Cluster\n properties:\n clusterId: tf-rep-group-1-${range.value}\n replicationGroupId: ${example.id}\n options: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis OSS/Valkey Cluster Mode Enabled\n\nTo create two shards with a primary and a single read replica each:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst baz = new aws.elasticache.ReplicationGroup(\"baz\", {\n replicationGroupId: \"tf-redis-cluster\",\n description: \"example description\",\n nodeType: \"cache.t2.small\",\n port: 6379,\n parameterGroupName: \"default.redis3.2.cluster.on\",\n automaticFailoverEnabled: true,\n numNodeGroups: 2,\n replicasPerNodeGroup: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbaz = aws.elasticache.ReplicationGroup(\"baz\",\n replication_group_id=\"tf-redis-cluster\",\n description=\"example description\",\n node_type=\"cache.t2.small\",\n port=6379,\n parameter_group_name=\"default.redis3.2.cluster.on\",\n automatic_failover_enabled=True,\n num_node_groups=2,\n replicas_per_node_group=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 baz = new Aws.ElastiCache.ReplicationGroup(\"baz\", new()\n {\n ReplicationGroupId = \"tf-redis-cluster\",\n Description = \"example description\",\n NodeType = \"cache.t2.small\",\n Port = 6379,\n ParameterGroupName = \"default.redis3.2.cluster.on\",\n AutomaticFailoverEnabled = true,\n NumNodeGroups = 2,\n ReplicasPerNodeGroup = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"baz\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"tf-redis-cluster\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.t2.small\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2.cluster.on\"),\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tNumNodeGroups: pulumi.Int(2),\n\t\t\tReplicasPerNodeGroup: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 baz = new ReplicationGroup(\"baz\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"tf-redis-cluster\")\n .description(\"example description\")\n .nodeType(\"cache.t2.small\")\n .port(6379)\n .parameterGroupName(\"default.redis3.2.cluster.on\")\n .automaticFailoverEnabled(true)\n .numNodeGroups(2)\n .replicasPerNodeGroup(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n baz:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: tf-redis-cluster\n description: example description\n nodeType: cache.t2.small\n port: 6379\n parameterGroupName: default.redis3.2.cluster.on\n automaticFailoverEnabled: true\n numNodeGroups: 2\n replicasPerNodeGroup: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis Log Delivery configuration\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.elasticache.ReplicationGroup(\"test\", {\n replicationGroupId: \"myreplicaciongroup\",\n description: \"test description\",\n nodeType: \"cache.t3.small\",\n port: 6379,\n applyImmediately: true,\n autoMinorVersionUpgrade: false,\n maintenanceWindow: \"tue:06:30-tue:07:30\",\n snapshotWindow: \"01:00-02:00\",\n logDeliveryConfigurations: [\n {\n destination: example.name,\n destinationType: \"cloudwatch-logs\",\n logFormat: \"text\",\n logType: \"slow-log\",\n },\n {\n destination: exampleAwsKinesisFirehoseDeliveryStream.name,\n destinationType: \"kinesis-firehose\",\n logFormat: \"json\",\n logType: \"engine-log\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.elasticache.ReplicationGroup(\"test\",\n replication_group_id=\"myreplicaciongroup\",\n description=\"test description\",\n node_type=\"cache.t3.small\",\n port=6379,\n apply_immediately=True,\n auto_minor_version_upgrade=False,\n maintenance_window=\"tue:06:30-tue:07:30\",\n snapshot_window=\"01:00-02:00\",\n log_delivery_configurations=[\n {\n \"destination\": example[\"name\"],\n \"destination_type\": \"cloudwatch-logs\",\n \"log_format\": \"text\",\n \"log_type\": \"slow-log\",\n },\n {\n \"destination\": example_aws_kinesis_firehose_delivery_stream[\"name\"],\n \"destination_type\": \"kinesis-firehose\",\n \"log_format\": \"json\",\n \"log_type\": \"engine-log\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.ElastiCache.ReplicationGroup(\"test\", new()\n {\n ReplicationGroupId = \"myreplicaciongroup\",\n Description = \"test description\",\n NodeType = \"cache.t3.small\",\n Port = 6379,\n ApplyImmediately = true,\n AutoMinorVersionUpgrade = false,\n MaintenanceWindow = \"tue:06:30-tue:07:30\",\n SnapshotWindow = \"01:00-02:00\",\n LogDeliveryConfigurations = new[]\n {\n new Aws.ElastiCache.Inputs.ReplicationGroupLogDeliveryConfigurationArgs\n {\n Destination = example.Name,\n DestinationType = \"cloudwatch-logs\",\n LogFormat = \"text\",\n LogType = \"slow-log\",\n },\n new Aws.ElastiCache.Inputs.ReplicationGroupLogDeliveryConfigurationArgs\n {\n Destination = exampleAwsKinesisFirehoseDeliveryStream.Name,\n DestinationType = \"kinesis-firehose\",\n LogFormat = \"json\",\n LogType = \"engine-log\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"test\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"myreplicaciongroup\"),\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tNodeType: pulumi.String(\"cache.t3.small\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\tAutoMinorVersionUpgrade: pulumi.Bool(false),\n\t\t\tMaintenanceWindow: pulumi.String(\"tue:06:30-tue:07:30\"),\n\t\t\tSnapshotWindow: pulumi.String(\"01:00-02:00\"),\n\t\t\tLogDeliveryConfigurations: elasticache.ReplicationGroupLogDeliveryConfigurationArray{\n\t\t\t\t\u0026elasticache.ReplicationGroupLogDeliveryConfigurationArgs{\n\t\t\t\t\tDestination: pulumi.Any(example.Name),\n\t\t\t\t\tDestinationType: pulumi.String(\"cloudwatch-logs\"),\n\t\t\t\t\tLogFormat: pulumi.String(\"text\"),\n\t\t\t\t\tLogType: pulumi.String(\"slow-log\"),\n\t\t\t\t},\n\t\t\t\t\u0026elasticache.ReplicationGroupLogDeliveryConfigurationArgs{\n\t\t\t\t\tDestination: pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name),\n\t\t\t\t\tDestinationType: pulumi.String(\"kinesis-firehose\"),\n\t\t\t\t\tLogFormat: pulumi.String(\"json\"),\n\t\t\t\t\tLogType: pulumi.String(\"engine-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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.inputs.ReplicationGroupLogDeliveryConfigurationArgs;\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 ReplicationGroup(\"test\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"myreplicaciongroup\")\n .description(\"test description\")\n .nodeType(\"cache.t3.small\")\n .port(6379)\n .applyImmediately(true)\n .autoMinorVersionUpgrade(false)\n .maintenanceWindow(\"tue:06:30-tue:07:30\")\n .snapshotWindow(\"01:00-02:00\")\n .logDeliveryConfigurations( \n ReplicationGroupLogDeliveryConfigurationArgs.builder()\n .destination(example.name())\n .destinationType(\"cloudwatch-logs\")\n .logFormat(\"text\")\n .logType(\"slow-log\")\n .build(),\n ReplicationGroupLogDeliveryConfigurationArgs.builder()\n .destination(exampleAwsKinesisFirehoseDeliveryStream.name())\n .destinationType(\"kinesis-firehose\")\n .logFormat(\"json\")\n .logType(\"engine-log\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: myreplicaciongroup\n description: test description\n nodeType: cache.t3.small\n port: 6379\n applyImmediately: true\n autoMinorVersionUpgrade: false\n maintenanceWindow: tue:06:30-tue:07:30\n snapshotWindow: 01:00-02:00\n logDeliveryConfigurations:\n - destination: ${example.name}\n destinationType: cloudwatch-logs\n logFormat: text\n logType: slow-log\n - destination: ${exampleAwsKinesisFirehoseDeliveryStream.name}\n destinationType: kinesis-firehose\n logFormat: json\n logType: engine-log\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **Note:** We currently do not support passing a `primary_cluster_id` in order to create the Replication Group.\n\n\u003e **Note:** Automatic Failover is unavailable for Redis versions earlier than 2.8.6,\nand unavailable on T1 node types. For T2 node types, it is only available on Redis version 3.2.4 or later with cluster mode enabled. See the [High Availability Using Replication Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.html) guide\nfor full details on using Replication Groups.\n\n### Creating a secondary replication group for a global replication group\n\nA Global Replication Group can have one one two secondary Replication Groups in different regions. These are added to an existing Global Replication Group.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"5.0.6\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"5.0.6\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id)\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"5.0.6\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"5.0.6\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: 5.0.6\n nodeType: cache.m5.large\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis AUTH and In-Transit Encryption Enabled\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.elasticache.ReplicationGroup(\"example\", {\n replicationGroupId: \"example\",\n description: \"example with authentication\",\n nodeType: \"cache.t2.micro\",\n numCacheClusters: 1,\n port: 6379,\n subnetGroupName: exampleAwsElasticacheSubnetGroup.name,\n securityGroupIds: [exampleAwsSecurityGroup.id],\n parameterGroupName: \"default.redis5.0\",\n engineVersion: \"5.0.6\",\n transitEncryptionEnabled: true,\n authToken: \"abcdefgh1234567890\",\n authTokenUpdateStrategy: \"ROTATE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n replication_group_id=\"example\",\n description=\"example with authentication\",\n node_type=\"cache.t2.micro\",\n num_cache_clusters=1,\n port=6379,\n subnet_group_name=example_aws_elasticache_subnet_group[\"name\"],\n security_group_ids=[example_aws_security_group[\"id\"]],\n parameter_group_name=\"default.redis5.0\",\n engine_version=\"5.0.6\",\n transit_encryption_enabled=True,\n auth_token=\"abcdefgh1234567890\",\n auth_token_update_strategy=\"ROTATE\")\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.ElastiCache.ReplicationGroup(\"example\", new()\n {\n ReplicationGroupId = \"example\",\n Description = \"example with authentication\",\n NodeType = \"cache.t2.micro\",\n NumCacheClusters = 1,\n Port = 6379,\n SubnetGroupName = exampleAwsElasticacheSubnetGroup.Name,\n SecurityGroupIds = new[]\n {\n exampleAwsSecurityGroup.Id,\n },\n ParameterGroupName = \"default.redis5.0\",\n EngineVersion = \"5.0.6\",\n TransitEncryptionEnabled = true,\n AuthToken = \"abcdefgh1234567890\",\n AuthTokenUpdateStrategy = \"ROTATE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"example with authentication\"),\n\t\t\tNodeType: pulumi.String(\"cache.t2.micro\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tSubnetGroupName: pulumi.Any(exampleAwsElasticacheSubnetGroup.Name),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleAwsSecurityGroup.Id,\n\t\t\t},\n\t\t\tParameterGroupName: pulumi.String(\"default.redis5.0\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tTransitEncryptionEnabled: pulumi.Bool(true),\n\t\t\tAuthToken: pulumi.String(\"abcdefgh1234567890\"),\n\t\t\tAuthTokenUpdateStrategy: pulumi.String(\"ROTATE\"),\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example\")\n .description(\"example with authentication\")\n .nodeType(\"cache.t2.micro\")\n .numCacheClusters(1)\n .port(6379)\n .subnetGroupName(exampleAwsElasticacheSubnetGroup.name())\n .securityGroupIds(exampleAwsSecurityGroup.id())\n .parameterGroupName(\"default.redis5.0\")\n .engineVersion(\"5.0.6\")\n .transitEncryptionEnabled(true)\n .authToken(\"abcdefgh1234567890\")\n .authTokenUpdateStrategy(\"ROTATE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example\n description: example with authentication\n nodeType: cache.t2.micro\n numCacheClusters: 1\n port: 6379\n subnetGroupName: ${exampleAwsElasticacheSubnetGroup.name}\n securityGroupIds:\n - ${exampleAwsSecurityGroup.id}\n parameterGroupName: default.redis5.0\n engineVersion: 5.0.6\n transitEncryptionEnabled: true\n authToken: abcdefgh1234567890\n authTokenUpdateStrategy: ROTATE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e When adding a new `auth_token` to a previously passwordless replication group, using the `ROTATE` update strategy will result in support for **both** the new token and passwordless authentication. To immediately require authorization when adding the initial token, use the `SET` strategy instead. See the [Authenticating with the Redis AUTH command](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html) guide for additional details.\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Replication Groups using the `replication_group_id`. For example:\n\n```sh\n$ pulumi import aws:elasticache/replicationGroup:ReplicationGroup my_replication_group replication-group-1\n```\n", "properties": { "applyImmediately": { "type": "boolean", @@ -255065,7 +256164,7 @@ }, "autoMinorVersionUpgrade": { "type": "boolean", - "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine type `\"redis\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" + "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine types `\"redis\"` and `\"valkey\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" }, "automaticFailoverEnabled": { "type": "boolean", @@ -255093,7 +256192,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.\n" + "description": "Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.\n" }, "engineVersion": { "type": "string", @@ -255124,7 +256223,7 @@ "items": { "$ref": "#/types/aws:elasticache/ReplicationGroupLogDeliveryConfiguration:ReplicationGroupLogDeliveryConfiguration" }, - "description": "Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" + "description": "Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" }, "maintenanceWindow": { "type": "string", @@ -255314,7 +256413,7 @@ }, "autoMinorVersionUpgrade": { "type": "boolean", - "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine type `\"redis\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" + "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine types `\"redis\"` and `\"valkey\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" }, "automaticFailoverEnabled": { "type": "boolean", @@ -255335,8 +256434,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.\n", - "willReplaceOnChanges": true + "description": "Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.\n" }, "engineVersion": { "type": "string", @@ -255365,7 +256463,7 @@ "items": { "$ref": "#/types/aws:elasticache/ReplicationGroupLogDeliveryConfiguration:ReplicationGroupLogDeliveryConfiguration" }, - "description": "Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" + "description": "Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" }, "maintenanceWindow": { "type": "string", @@ -255515,7 +256613,7 @@ }, "autoMinorVersionUpgrade": { "type": "boolean", - "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine type `\"redis\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" + "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine types `\"redis\"` and `\"valkey\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" }, "automaticFailoverEnabled": { "type": "boolean", @@ -255544,8 +256642,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.\n", - "willReplaceOnChanges": true + "description": "Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.\n" }, "engineVersion": { "type": "string", @@ -255578,7 +256675,7 @@ "items": { "$ref": "#/types/aws:elasticache/ReplicationGroupLogDeliveryConfiguration:ReplicationGroupLogDeliveryConfiguration" }, - "description": "Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" + "description": "Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" }, "maintenanceWindow": { "type": "string", @@ -255912,7 +257009,7 @@ } }, "aws:elasticache/serverlessCache:ServerlessCache": { - "description": "Provides an ElastiCache Serverless Cache resource which manages memcached or redis.\n\n## Example Usage\n\n### Memcached Serverless\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.elasticache.ServerlessCache(\"example\", {\n engine: \"memcached\",\n name: \"example\",\n cacheUsageLimits: {\n dataStorage: {\n maximum: 10,\n unit: \"GB\",\n },\n ecpuPerSeconds: [{\n maximum: 5000,\n }],\n },\n description: \"Test Server\",\n kmsKeyId: test.arn,\n majorEngineVersion: \"1.6\",\n securityGroupIds: [testAwsSecurityGroup.id],\n subnetIds: testAwsSubnet.map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ServerlessCache(\"example\",\n engine=\"memcached\",\n name=\"example\",\n cache_usage_limits={\n \"data_storage\": {\n \"maximum\": 10,\n \"unit\": \"GB\",\n },\n \"ecpu_per_seconds\": [{\n \"maximum\": 5000,\n }],\n },\n description=\"Test Server\",\n kms_key_id=test[\"arn\"],\n major_engine_version=\"1.6\",\n security_group_ids=[test_aws_security_group[\"id\"]],\n subnet_ids=[__item[\"id\"] for __item in test_aws_subnet])\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.ElastiCache.ServerlessCache(\"example\", new()\n {\n Engine = \"memcached\",\n Name = \"example\",\n CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs\n {\n DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs\n {\n Maximum = 10,\n Unit = \"GB\",\n },\n EcpuPerSeconds = new[]\n {\n new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs\n {\n Maximum = 5000,\n },\n },\n },\n Description = \"Test Server\",\n KmsKeyId = test.Arn,\n MajorEngineVersion = \"1.6\",\n SecurityGroupIds = new[]\n {\n testAwsSecurityGroup.Id,\n },\n SubnetIds = testAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range testAwsSubnet {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := elasticache.NewServerlessCache(ctx, \"example\", \u0026elasticache.ServerlessCacheArgs{\nEngine: pulumi.String(\"memcached\"),\nName: pulumi.String(\"example\"),\nCacheUsageLimits: \u0026elasticache.ServerlessCacheCacheUsageLimitsArgs{\nDataStorage: \u0026elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{\nMaximum: pulumi.Int(10),\nUnit: pulumi.String(\"GB\"),\n},\nEcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{\n\u0026elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{\nMaximum: pulumi.Int(5000),\n},\n},\n},\nDescription: pulumi.String(\"Test Server\"),\nKmsKeyId: pulumi.Any(test.Arn),\nMajorEngineVersion: pulumi.String(\"1.6\"),\nSecurityGroupIds: pulumi.StringArray{\ntestAwsSecurityGroup.Id,\n},\nSubnetIds: toPulumiArray(splat0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.elasticache.ServerlessCache;\nimport com.pulumi.aws.elasticache.ServerlessCacheArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;\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 ServerlessCache(\"example\", ServerlessCacheArgs.builder()\n .engine(\"memcached\")\n .name(\"example\")\n .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()\n .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()\n .maximum(10)\n .unit(\"GB\")\n .build())\n .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()\n .maximum(5000)\n .build())\n .build())\n .description(\"Test Server\")\n .kmsKeyId(test.arn())\n .majorEngineVersion(\"1.6\")\n .securityGroupIds(testAwsSecurityGroup.id())\n .subnetIds(testAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis Serverless\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.elasticache.ServerlessCache(\"example\", {\n engine: \"redis\",\n name: \"example\",\n cacheUsageLimits: {\n dataStorage: {\n maximum: 10,\n unit: \"GB\",\n },\n ecpuPerSeconds: [{\n maximum: 5000,\n }],\n },\n dailySnapshotTime: \"09:00\",\n description: \"Test Server\",\n kmsKeyId: test.arn,\n majorEngineVersion: \"7\",\n snapshotRetentionLimit: 1,\n securityGroupIds: [testAwsSecurityGroup.id],\n subnetIds: testAwsSubnet.map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ServerlessCache(\"example\",\n engine=\"redis\",\n name=\"example\",\n cache_usage_limits={\n \"data_storage\": {\n \"maximum\": 10,\n \"unit\": \"GB\",\n },\n \"ecpu_per_seconds\": [{\n \"maximum\": 5000,\n }],\n },\n daily_snapshot_time=\"09:00\",\n description=\"Test Server\",\n kms_key_id=test[\"arn\"],\n major_engine_version=\"7\",\n snapshot_retention_limit=1,\n security_group_ids=[test_aws_security_group[\"id\"]],\n subnet_ids=[__item[\"id\"] for __item in test_aws_subnet])\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.ElastiCache.ServerlessCache(\"example\", new()\n {\n Engine = \"redis\",\n Name = \"example\",\n CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs\n {\n DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs\n {\n Maximum = 10,\n Unit = \"GB\",\n },\n EcpuPerSeconds = new[]\n {\n new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs\n {\n Maximum = 5000,\n },\n },\n },\n DailySnapshotTime = \"09:00\",\n Description = \"Test Server\",\n KmsKeyId = test.Arn,\n MajorEngineVersion = \"7\",\n SnapshotRetentionLimit = 1,\n SecurityGroupIds = new[]\n {\n testAwsSecurityGroup.Id,\n },\n SubnetIds = testAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range testAwsSubnet {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := elasticache.NewServerlessCache(ctx, \"example\", \u0026elasticache.ServerlessCacheArgs{\nEngine: pulumi.String(\"redis\"),\nName: pulumi.String(\"example\"),\nCacheUsageLimits: \u0026elasticache.ServerlessCacheCacheUsageLimitsArgs{\nDataStorage: \u0026elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{\nMaximum: pulumi.Int(10),\nUnit: pulumi.String(\"GB\"),\n},\nEcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{\n\u0026elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{\nMaximum: pulumi.Int(5000),\n},\n},\n},\nDailySnapshotTime: pulumi.String(\"09:00\"),\nDescription: pulumi.String(\"Test Server\"),\nKmsKeyId: pulumi.Any(test.Arn),\nMajorEngineVersion: pulumi.String(\"7\"),\nSnapshotRetentionLimit: pulumi.Int(1),\nSecurityGroupIds: pulumi.StringArray{\ntestAwsSecurityGroup.Id,\n},\nSubnetIds: toPulumiArray(splat0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.elasticache.ServerlessCache;\nimport com.pulumi.aws.elasticache.ServerlessCacheArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;\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 ServerlessCache(\"example\", ServerlessCacheArgs.builder()\n .engine(\"redis\")\n .name(\"example\")\n .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()\n .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()\n .maximum(10)\n .unit(\"GB\")\n .build())\n .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()\n .maximum(5000)\n .build())\n .build())\n .dailySnapshotTime(\"09:00\")\n .description(\"Test Server\")\n .kmsKeyId(test.arn())\n .majorEngineVersion(\"7\")\n .snapshotRetentionLimit(1)\n .securityGroupIds(testAwsSecurityGroup.id())\n .subnetIds(testAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Serverless Cache using the `name`. For example:\n\n```sh\n$ pulumi import aws:elasticache/serverlessCache:ServerlessCache my_cluster my_cluster\n```\n", + "description": "Provides an ElastiCache Serverless Cache resource which manages memcached, redis or valkey.\n\n## Example Usage\n\n### Memcached Serverless\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.elasticache.ServerlessCache(\"example\", {\n engine: \"memcached\",\n name: \"example\",\n cacheUsageLimits: {\n dataStorage: {\n maximum: 10,\n unit: \"GB\",\n },\n ecpuPerSeconds: [{\n maximum: 5000,\n }],\n },\n description: \"Test Server\",\n kmsKeyId: test.arn,\n majorEngineVersion: \"1.6\",\n securityGroupIds: [testAwsSecurityGroup.id],\n subnetIds: testAwsSubnet.map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ServerlessCache(\"example\",\n engine=\"memcached\",\n name=\"example\",\n cache_usage_limits={\n \"data_storage\": {\n \"maximum\": 10,\n \"unit\": \"GB\",\n },\n \"ecpu_per_seconds\": [{\n \"maximum\": 5000,\n }],\n },\n description=\"Test Server\",\n kms_key_id=test[\"arn\"],\n major_engine_version=\"1.6\",\n security_group_ids=[test_aws_security_group[\"id\"]],\n subnet_ids=[__item[\"id\"] for __item in test_aws_subnet])\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.ElastiCache.ServerlessCache(\"example\", new()\n {\n Engine = \"memcached\",\n Name = \"example\",\n CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs\n {\n DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs\n {\n Maximum = 10,\n Unit = \"GB\",\n },\n EcpuPerSeconds = new[]\n {\n new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs\n {\n Maximum = 5000,\n },\n },\n },\n Description = \"Test Server\",\n KmsKeyId = test.Arn,\n MajorEngineVersion = \"1.6\",\n SecurityGroupIds = new[]\n {\n testAwsSecurityGroup.Id,\n },\n SubnetIds = testAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range testAwsSubnet {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := elasticache.NewServerlessCache(ctx, \"example\", \u0026elasticache.ServerlessCacheArgs{\nEngine: pulumi.String(\"memcached\"),\nName: pulumi.String(\"example\"),\nCacheUsageLimits: \u0026elasticache.ServerlessCacheCacheUsageLimitsArgs{\nDataStorage: \u0026elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{\nMaximum: pulumi.Int(10),\nUnit: pulumi.String(\"GB\"),\n},\nEcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{\n\u0026elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{\nMaximum: pulumi.Int(5000),\n},\n},\n},\nDescription: pulumi.String(\"Test Server\"),\nKmsKeyId: pulumi.Any(test.Arn),\nMajorEngineVersion: pulumi.String(\"1.6\"),\nSecurityGroupIds: pulumi.StringArray{\ntestAwsSecurityGroup.Id,\n},\nSubnetIds: toPulumiArray(splat0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.elasticache.ServerlessCache;\nimport com.pulumi.aws.elasticache.ServerlessCacheArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;\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 ServerlessCache(\"example\", ServerlessCacheArgs.builder()\n .engine(\"memcached\")\n .name(\"example\")\n .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()\n .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()\n .maximum(10)\n .unit(\"GB\")\n .build())\n .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()\n .maximum(5000)\n .build())\n .build())\n .description(\"Test Server\")\n .kmsKeyId(test.arn())\n .majorEngineVersion(\"1.6\")\n .securityGroupIds(testAwsSecurityGroup.id())\n .subnetIds(testAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis OSS Serverless\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.elasticache.ServerlessCache(\"example\", {\n engine: \"redis\",\n name: \"example\",\n cacheUsageLimits: {\n dataStorage: {\n maximum: 10,\n unit: \"GB\",\n },\n ecpuPerSeconds: [{\n maximum: 5000,\n }],\n },\n dailySnapshotTime: \"09:00\",\n description: \"Test Server\",\n kmsKeyId: test.arn,\n majorEngineVersion: \"7\",\n snapshotRetentionLimit: 1,\n securityGroupIds: [testAwsSecurityGroup.id],\n subnetIds: testAwsSubnet.map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ServerlessCache(\"example\",\n engine=\"redis\",\n name=\"example\",\n cache_usage_limits={\n \"data_storage\": {\n \"maximum\": 10,\n \"unit\": \"GB\",\n },\n \"ecpu_per_seconds\": [{\n \"maximum\": 5000,\n }],\n },\n daily_snapshot_time=\"09:00\",\n description=\"Test Server\",\n kms_key_id=test[\"arn\"],\n major_engine_version=\"7\",\n snapshot_retention_limit=1,\n security_group_ids=[test_aws_security_group[\"id\"]],\n subnet_ids=[__item[\"id\"] for __item in test_aws_subnet])\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.ElastiCache.ServerlessCache(\"example\", new()\n {\n Engine = \"redis\",\n Name = \"example\",\n CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs\n {\n DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs\n {\n Maximum = 10,\n Unit = \"GB\",\n },\n EcpuPerSeconds = new[]\n {\n new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs\n {\n Maximum = 5000,\n },\n },\n },\n DailySnapshotTime = \"09:00\",\n Description = \"Test Server\",\n KmsKeyId = test.Arn,\n MajorEngineVersion = \"7\",\n SnapshotRetentionLimit = 1,\n SecurityGroupIds = new[]\n {\n testAwsSecurityGroup.Id,\n },\n SubnetIds = testAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range testAwsSubnet {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := elasticache.NewServerlessCache(ctx, \"example\", \u0026elasticache.ServerlessCacheArgs{\nEngine: pulumi.String(\"redis\"),\nName: pulumi.String(\"example\"),\nCacheUsageLimits: \u0026elasticache.ServerlessCacheCacheUsageLimitsArgs{\nDataStorage: \u0026elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{\nMaximum: pulumi.Int(10),\nUnit: pulumi.String(\"GB\"),\n},\nEcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{\n\u0026elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{\nMaximum: pulumi.Int(5000),\n},\n},\n},\nDailySnapshotTime: pulumi.String(\"09:00\"),\nDescription: pulumi.String(\"Test Server\"),\nKmsKeyId: pulumi.Any(test.Arn),\nMajorEngineVersion: pulumi.String(\"7\"),\nSnapshotRetentionLimit: pulumi.Int(1),\nSecurityGroupIds: pulumi.StringArray{\ntestAwsSecurityGroup.Id,\n},\nSubnetIds: toPulumiArray(splat0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.elasticache.ServerlessCache;\nimport com.pulumi.aws.elasticache.ServerlessCacheArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;\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 ServerlessCache(\"example\", ServerlessCacheArgs.builder()\n .engine(\"redis\")\n .name(\"example\")\n .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()\n .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()\n .maximum(10)\n .unit(\"GB\")\n .build())\n .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()\n .maximum(5000)\n .build())\n .build())\n .dailySnapshotTime(\"09:00\")\n .description(\"Test Server\")\n .kmsKeyId(test.arn())\n .majorEngineVersion(\"7\")\n .snapshotRetentionLimit(1)\n .securityGroupIds(testAwsSecurityGroup.id())\n .subnetIds(testAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Valkey Serverless\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.elasticache.ServerlessCache(\"example\", {\n engine: \"valkey\",\n name: \"example\",\n cacheUsageLimits: {\n dataStorage: {\n maximum: 10,\n unit: \"GB\",\n },\n ecpuPerSeconds: [{\n maximum: 5000,\n }],\n },\n dailySnapshotTime: \"09:00\",\n description: \"Test Server\",\n kmsKeyId: test.arn,\n majorEngineVersion: \"7\",\n snapshotRetentionLimit: 1,\n securityGroupIds: [testAwsSecurityGroup.id],\n subnetIds: testAwsSubnet.map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ServerlessCache(\"example\",\n engine=\"valkey\",\n name=\"example\",\n cache_usage_limits={\n \"data_storage\": {\n \"maximum\": 10,\n \"unit\": \"GB\",\n },\n \"ecpu_per_seconds\": [{\n \"maximum\": 5000,\n }],\n },\n daily_snapshot_time=\"09:00\",\n description=\"Test Server\",\n kms_key_id=test[\"arn\"],\n major_engine_version=\"7\",\n snapshot_retention_limit=1,\n security_group_ids=[test_aws_security_group[\"id\"]],\n subnet_ids=[__item[\"id\"] for __item in test_aws_subnet])\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.ElastiCache.ServerlessCache(\"example\", new()\n {\n Engine = \"valkey\",\n Name = \"example\",\n CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs\n {\n DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs\n {\n Maximum = 10,\n Unit = \"GB\",\n },\n EcpuPerSeconds = new[]\n {\n new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs\n {\n Maximum = 5000,\n },\n },\n },\n DailySnapshotTime = \"09:00\",\n Description = \"Test Server\",\n KmsKeyId = test.Arn,\n MajorEngineVersion = \"7\",\n SnapshotRetentionLimit = 1,\n SecurityGroupIds = new[]\n {\n testAwsSecurityGroup.Id,\n },\n SubnetIds = testAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range testAwsSubnet {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := elasticache.NewServerlessCache(ctx, \"example\", \u0026elasticache.ServerlessCacheArgs{\nEngine: pulumi.String(\"valkey\"),\nName: pulumi.String(\"example\"),\nCacheUsageLimits: \u0026elasticache.ServerlessCacheCacheUsageLimitsArgs{\nDataStorage: \u0026elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{\nMaximum: pulumi.Int(10),\nUnit: pulumi.String(\"GB\"),\n},\nEcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{\n\u0026elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{\nMaximum: pulumi.Int(5000),\n},\n},\n},\nDailySnapshotTime: pulumi.String(\"09:00\"),\nDescription: pulumi.String(\"Test Server\"),\nKmsKeyId: pulumi.Any(test.Arn),\nMajorEngineVersion: pulumi.String(\"7\"),\nSnapshotRetentionLimit: pulumi.Int(1),\nSecurityGroupIds: pulumi.StringArray{\ntestAwsSecurityGroup.Id,\n},\nSubnetIds: toPulumiArray(splat0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.elasticache.ServerlessCache;\nimport com.pulumi.aws.elasticache.ServerlessCacheArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;\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 ServerlessCache(\"example\", ServerlessCacheArgs.builder()\n .engine(\"valkey\")\n .name(\"example\")\n .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()\n .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()\n .maximum(10)\n .unit(\"GB\")\n .build())\n .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()\n .maximum(5000)\n .build())\n .build())\n .dailySnapshotTime(\"09:00\")\n .description(\"Test Server\")\n .kmsKeyId(test.arn())\n .majorEngineVersion(\"7\")\n .snapshotRetentionLimit(1)\n .securityGroupIds(testAwsSecurityGroup.id())\n .subnetIds(testAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Serverless Cache using the `name`. For example:\n\n```sh\n$ pulumi import aws:elasticache/serverlessCache:ServerlessCache my_cluster my_cluster\n```\n", "properties": { "arn": { "type": "string", @@ -255928,7 +257025,7 @@ }, "dailySnapshotTime": { "type": "string", - "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `\"redis\"`. Defaults to `0`.\n" + "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `\"redis\"` or `\"valkey\"`. Defaults to `0`.\n" }, "description": { "type": "string", @@ -255943,7 +257040,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n" + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`.\n" }, "fullEngineVersion": { "type": "string", @@ -256043,7 +257140,7 @@ }, "dailySnapshotTime": { "type": "string", - "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `\"redis\"`. Defaults to `0`.\n" + "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `\"redis\"` or `\"valkey\"`. Defaults to `0`.\n" }, "description": { "type": "string", @@ -256051,7 +257148,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n" + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`.\n" }, "kmsKeyId": { "type": "string", @@ -256125,7 +257222,7 @@ }, "dailySnapshotTime": { "type": "string", - "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `\"redis\"`. Defaults to `0`.\n" + "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `\"redis\"` or `\"valkey\"`. Defaults to `0`.\n" }, "description": { "type": "string", @@ -256140,7 +257237,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n" + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`.\n" }, "fullEngineVersion": { "type": "string", @@ -280046,6 +281143,169 @@ "type": "object" } }, + "aws:imagebuilder/lifecyclePolicy:LifecyclePolicy": { + "description": "Manages an Image Builder Lifecycle Policy.\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 current = aws.getRegion({});\nconst currentGetPartition = aws.getPartition({});\nconst example = new aws.iam.Role(\"example\", {\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Principal: {\n Service: currentGetPartition.then(currentGetPartition =\u003e `imagebuilder.${currentGetPartition.dnsSuffix}`),\n },\n }],\n }),\n name: \"example\",\n});\nconst exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment(\"example\", {\n policyArn: currentGetPartition.then(currentGetPartition =\u003e `arn:${currentGetPartition.partition}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy`),\n role: example.name,\n});\nconst exampleLifecyclePolicy = new aws.imagebuilder.LifecyclePolicy(\"example\", {\n name: \"name\",\n description: \"Example description\",\n executionRole: example.arn,\n resourceType: \"AMI_IMAGE\",\n policyDetails: [{\n action: {\n type: \"DELETE\",\n },\n filter: {\n type: \"AGE\",\n value: 6,\n retainAtLeast: 10,\n unit: \"YEARS\",\n },\n }],\n resourceSelection: {\n tagMap: {\n key1: \"value1\",\n key2: \"value2\",\n },\n },\n}, {\n dependsOn: [exampleRolePolicyAttachment],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ncurrent = aws.get_region()\ncurrent_get_partition = aws.get_partition()\nexample = aws.iam.Role(\"example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": f\"imagebuilder.{current_get_partition.dns_suffix}\",\n },\n }],\n }),\n name=\"example\")\nexample_role_policy_attachment = aws.iam.RolePolicyAttachment(\"example\",\n policy_arn=f\"arn:{current_get_partition.partition}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy\",\n role=example.name)\nexample_lifecycle_policy = aws.imagebuilder.LifecyclePolicy(\"example\",\n name=\"name\",\n description=\"Example description\",\n execution_role=example.arn,\n resource_type=\"AMI_IMAGE\",\n policy_details=[{\n \"action\": {\n \"type\": \"DELETE\",\n },\n \"filter\": {\n \"type\": \"AGE\",\n \"value\": 6,\n \"retain_at_least\": 10,\n \"unit\": \"YEARS\",\n },\n }],\n resource_selection={\n \"tag_map\": {\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[example_role_policy_attachment]))\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 current = Aws.GetRegion.Invoke();\n\n var currentGetPartition = Aws.GetPartition.Invoke();\n\n var example = new Aws.Iam.Role(\"example\", new()\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 [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = $\"imagebuilder.{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.DnsSuffix)}\",\n },\n },\n },\n }),\n Name = \"example\",\n });\n\n var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment(\"example\", new()\n {\n PolicyArn = $\"arn:{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.Partition)}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy\",\n Role = example.Name,\n });\n\n var exampleLifecyclePolicy = new Aws.ImageBuilder.LifecyclePolicy(\"example\", new()\n {\n Name = \"name\",\n Description = \"Example description\",\n ExecutionRole = example.Arn,\n ResourceType = \"AMI_IMAGE\",\n PolicyDetails = new[]\n {\n new Aws.ImageBuilder.Inputs.LifecyclePolicyPolicyDetailArgs\n {\n Action = new Aws.ImageBuilder.Inputs.LifecyclePolicyPolicyDetailActionArgs\n {\n Type = \"DELETE\",\n },\n Filter = new Aws.ImageBuilder.Inputs.LifecyclePolicyPolicyDetailFilterArgs\n {\n Type = \"AGE\",\n Value = 6,\n RetainAtLeast = 10,\n Unit = \"YEARS\",\n },\n },\n },\n ResourceSelection = new Aws.ImageBuilder.Inputs.LifecyclePolicyResourceSelectionArgs\n {\n TagMap = \n {\n { \"key1\", \"value1\" },\n { \"key2\", \"value2\" },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n exampleRolePolicyAttachment,\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\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/imagebuilder\"\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 := aws.GetRegion(ctx, \u0026aws.GetRegionArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetPartition, err := aws.GetPartition(ctx, \u0026aws.GetPartitionArgs{}, 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\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": fmt.Sprintf(\"imagebuilder.%v\", currentGetPartition.DnsSuffix),\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\texample, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\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\texampleRolePolicyAttachment, err := iam.NewRolePolicyAttachment(ctx, \"example\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.Sprintf(\"arn:%v:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy\", currentGetPartition.Partition),\n\t\t\tRole: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = imagebuilder.NewLifecyclePolicy(ctx, \"example\", \u0026imagebuilder.LifecyclePolicyArgs{\n\t\t\tName: pulumi.String(\"name\"),\n\t\t\tDescription: pulumi.String(\"Example description\"),\n\t\t\tExecutionRole: example.Arn,\n\t\t\tResourceType: pulumi.String(\"AMI_IMAGE\"),\n\t\t\tPolicyDetails: imagebuilder.LifecyclePolicyPolicyDetailArray{\n\t\t\t\t\u0026imagebuilder.LifecyclePolicyPolicyDetailArgs{\n\t\t\t\t\tAction: \u0026imagebuilder.LifecyclePolicyPolicyDetailActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"DELETE\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilter: \u0026imagebuilder.LifecyclePolicyPolicyDetailFilterArgs{\n\t\t\t\t\t\tType: pulumi.String(\"AGE\"),\n\t\t\t\t\t\tValue: pulumi.Int(6),\n\t\t\t\t\t\tRetainAtLeast: pulumi.Int(10),\n\t\t\t\t\t\tUnit: pulumi.String(\"YEARS\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceSelection: \u0026imagebuilder.LifecyclePolicyResourceSelectionArgs{\n\t\t\t\tTagMap: pulumi.StringMap{\n\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleRolePolicyAttachment,\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.GetPartitionArgs;\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.imagebuilder.LifecyclePolicy;\nimport com.pulumi.aws.imagebuilder.LifecyclePolicyArgs;\nimport com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailArgs;\nimport com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailActionArgs;\nimport com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailFilterArgs;\nimport com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyResourceSelectionArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getRegion();\n\n final var currentGetPartition = AwsFunctions.getPartition();\n\n var example = new Role(\"example\", RoleArgs.builder()\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(\"Principal\", jsonObject(\n jsonProperty(\"Service\", String.format(\"imagebuilder.%s\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.dnsSuffix())))\n ))\n )))\n )))\n .name(\"example\")\n .build());\n\n var exampleRolePolicyAttachment = new RolePolicyAttachment(\"exampleRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n .policyArn(String.format(\"arn:%s:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.partition())))\n .role(example.name())\n .build());\n\n var exampleLifecyclePolicy = new LifecyclePolicy(\"exampleLifecyclePolicy\", LifecyclePolicyArgs.builder()\n .name(\"name\")\n .description(\"Example description\")\n .executionRole(example.arn())\n .resourceType(\"AMI_IMAGE\")\n .policyDetails(LifecyclePolicyPolicyDetailArgs.builder()\n .action(LifecyclePolicyPolicyDetailActionArgs.builder()\n .type(\"DELETE\")\n .build())\n .filter(LifecyclePolicyPolicyDetailFilterArgs.builder()\n .type(\"AGE\")\n .value(6)\n .retainAtLeast(10)\n .unit(\"YEARS\")\n .build())\n .build())\n .resourceSelection(LifecyclePolicyResourceSelectionArgs.builder()\n .tagMap(Map.ofEntries(\n Map.entry(\"key1\", \"value1\"),\n Map.entry(\"key2\", \"value2\")\n ))\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(exampleRolePolicyAttachment)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Principal:\n Service: imagebuilder.${currentGetPartition.dnsSuffix}\n name: example\n exampleRolePolicyAttachment:\n type: aws:iam:RolePolicyAttachment\n name: example\n properties:\n policyArn: arn:${currentGetPartition.partition}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy\n role: ${example.name}\n exampleLifecyclePolicy:\n type: aws:imagebuilder:LifecyclePolicy\n name: example\n properties:\n name: name\n description: Example description\n executionRole: ${example.arn}\n resourceType: AMI_IMAGE\n policyDetails:\n - action:\n type: DELETE\n filter:\n type: AGE\n value: 6\n retainAtLeast: 10\n unit: YEARS\n resourceSelection:\n tagMap:\n key1: value1\n key2: value2\n options:\n dependson:\n - ${exampleRolePolicyAttachment}\nvariables:\n current:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n currentGetPartition:\n fn::invoke:\n Function: aws:getPartition\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_imagebuilder_lifecycle_policy` using the Amazon Resource Name (ARN). For example:\n\n```sh\n$ pulumi import aws:imagebuilder/lifecyclePolicy:LifecyclePolicy example arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/example\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the lifecycle policy.\n" + }, + "description": { + "type": "string", + "description": "description for the lifecycle policy.\n" + }, + "executionRole": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role).\n" + }, + "name": { + "type": "string", + "description": "The name of the lifecycle policy to create.\n" + }, + "policyDetails": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetail:LifecyclePolicyPolicyDetail" + }, + "description": "Configuration block with policy details. Detailed below.\n" + }, + "resourceSelection": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyResourceSelection:LifecyclePolicyResourceSelection", + "description": "Selection criteria for the resources that the lifecycle policy applies to. Detailed below.\n\nThe following arguments are optional:\n" + }, + "resourceType": { + "type": "string", + "description": "The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`.\n" + }, + "status": { + "type": "string", + "description": "The status of the lifecycle policy.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the Image Builder Lifecycle Policy. 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": [ + "arn", + "executionRole", + "name", + "resourceType", + "status", + "tagsAll" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "description for the lifecycle policy.\n" + }, + "executionRole": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role).\n" + }, + "name": { + "type": "string", + "description": "The name of the lifecycle policy to create.\n" + }, + "policyDetails": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetail:LifecyclePolicyPolicyDetail" + }, + "description": "Configuration block with policy details. Detailed below.\n" + }, + "resourceSelection": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyResourceSelection:LifecyclePolicyResourceSelection", + "description": "Selection criteria for the resources that the lifecycle policy applies to. Detailed below.\n\nThe following arguments are optional:\n" + }, + "resourceType": { + "type": "string", + "description": "The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`.\n" + }, + "status": { + "type": "string", + "description": "The status of the lifecycle policy.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the Image Builder Lifecycle Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + } + }, + "requiredInputs": [ + "executionRole", + "resourceType" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering LifecyclePolicy resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the lifecycle policy.\n" + }, + "description": { + "type": "string", + "description": "description for the lifecycle policy.\n" + }, + "executionRole": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role).\n" + }, + "name": { + "type": "string", + "description": "The name of the lifecycle policy to create.\n" + }, + "policyDetails": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetail:LifecyclePolicyPolicyDetail" + }, + "description": "Configuration block with policy details. Detailed below.\n" + }, + "resourceSelection": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyResourceSelection:LifecyclePolicyResourceSelection", + "description": "Selection criteria for the resources that the lifecycle policy applies to. Detailed below.\n\nThe following arguments are optional:\n" + }, + "resourceType": { + "type": "string", + "description": "The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`.\n" + }, + "status": { + "type": "string", + "description": "The status of the lifecycle policy.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the Image Builder Lifecycle Policy. 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:imagebuilder/workflow:Workflow": { "description": "Resource for managing an AWS EC2 Image Builder Workflow.\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.imagebuilder.Workflow(\"example\", {\n name: \"example\",\n version: \"1.0.0\",\n type: \"TEST\",\n data: `name: example\ndescription: Workflow to test an image\nschemaVersion: 1.0\n\nparameters:\n - name: waitForActionAtEnd\n type: boolean\n\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"ssmAgent\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.: \".stepOutputs.LaunchTestInstance.instanceId\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \".parameters.waitForActionAtEnd\"\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.imagebuilder.Workflow(\"example\",\n name=\"example\",\n version=\"1.0.0\",\n type=\"TEST\",\n data=\"\"\"name: example\ndescription: Workflow to test an image\nschemaVersion: 1.0\n\nparameters:\n - name: waitForActionAtEnd\n type: boolean\n\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"ssmAgent\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \"$.parameters.waitForActionAtEnd\"\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.ImageBuilder.Workflow(\"example\", new()\n {\n Name = \"example\",\n Version = \"1.0.0\",\n Type = \"TEST\",\n Data = @\"name: example\ndescription: Workflow to test an image\nschemaVersion: 1.0\n\nparameters:\n - name: waitForActionAtEnd\n type: boolean\n\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"\"ssmAgent\"\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"\"$.stepOutputs.LaunchTestInstance.instanceId\"\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \"\"$.parameters.waitForActionAtEnd\"\"\n\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/imagebuilder\"\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 := imagebuilder.NewWorkflow(ctx, \"example\", \u0026imagebuilder.WorkflowArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tVersion: pulumi.String(\"1.0.0\"),\n\t\t\tType: pulumi.String(\"TEST\"),\n\t\t\tData: pulumi.String(`name: example\ndescription: Workflow to test an image\nschemaVersion: 1.0\n\nparameters:\n - name: waitForActionAtEnd\n type: boolean\n\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"ssmAgent\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \"$.parameters.waitForActionAtEnd\"\n`),\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.imagebuilder.Workflow;\nimport com.pulumi.aws.imagebuilder.WorkflowArgs;\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 Workflow(\"example\", WorkflowArgs.builder()\n .name(\"example\")\n .version(\"1.0.0\")\n .type(\"TEST\")\n .data(\"\"\"\nname: example\ndescription: Workflow to test an image\nschemaVersion: 1.0\n\nparameters:\n - name: waitForActionAtEnd\n type: boolean\n\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"ssmAgent\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \"$.parameters.waitForActionAtEnd\"\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:imagebuilder:Workflow\n properties:\n name: example\n version: 1.0.0\n type: TEST\n data: |\n name: example\n description: Workflow to test an image\n schemaVersion: 1.0\n\n parameters:\n - name: waitForActionAtEnd\n type: boolean\n\n steps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"ssmAgent\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \"$.parameters.waitForActionAtEnd\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import EC2 Image Builder Workflow using the `example_id_arg`. For example:\n\n```sh\n$ pulumi import aws:imagebuilder/workflow:Workflow example arn:aws:imagebuilder:us-east-1:aws:workflow/test/example/1.0.1/1\n```\nCertain resource arguments, such as `uri`, cannot be read via the API and imported into Terraform. Terraform will display a difference for these arguments the first run after import if declared in the Terraform configuration for an imported resource.\n\n", "properties": { @@ -285235,7 +286495,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.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", + "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### Iceberg Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst current = aws.getCallerIdentity({});\nconst currentGetPartition = aws.getPartition({});\nconst currentGetRegion = aws.getRegion({});\nconst bucket = new aws.s3.BucketV2(\"bucket\", {\n bucket: \"test-bucket\",\n forceDestroy: true,\n});\nconst test = new aws.glue.CatalogDatabase(\"test\", {name: \"test\"});\nconst testCatalogTable = new aws.glue.CatalogTable(\"test\", {\n name: \"test\",\n databaseName: test.name,\n parameters: {\n format: \"parquet\",\n },\n tableType: \"EXTERNAL_TABLE\",\n openTableFormatInput: {\n icebergInput: {\n metadataOperation: \"CREATE\",\n version: \"2\",\n },\n },\n storageDescriptor: {\n location: pulumi.interpolate`s3://${bucket.id}`,\n columns: [{\n name: \"my_column_1\",\n type: \"int\",\n }],\n },\n});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"iceberg\",\n icebergConfiguration: {\n roleArn: firehoseRole.arn,\n catalogArn: Promise.all([currentGetPartition, currentGetRegion, current]).then(([currentGetPartition, currentGetRegion, current]) =\u003e `arn:${currentGetPartition.partition}:glue:${currentGetRegion.name}:${current.accountId}:catalog`),\n bufferingSize: 10,\n bufferingInterval: 400,\n s3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n },\n destinationTableConfigurations: [{\n databaseName: test.name,\n tableName: testCatalogTable.name,\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\ncurrent = aws.get_caller_identity()\ncurrent_get_partition = aws.get_partition()\ncurrent_get_region = aws.get_region()\nbucket = aws.s3.BucketV2(\"bucket\",\n bucket=\"test-bucket\",\n force_destroy=True)\ntest = aws.glue.CatalogDatabase(\"test\", name=\"test\")\ntest_catalog_table = aws.glue.CatalogTable(\"test\",\n name=\"test\",\n database_name=test.name,\n parameters={\n \"format\": \"parquet\",\n },\n table_type=\"EXTERNAL_TABLE\",\n open_table_format_input={\n \"iceberg_input\": {\n \"metadata_operation\": \"CREATE\",\n \"version\": \"2\",\n },\n },\n storage_descriptor={\n \"location\": bucket.id.apply(lambda id: f\"s3://{id}\"),\n \"columns\": [{\n \"name\": \"my_column_1\",\n \"type\": \"int\",\n }],\n })\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"iceberg\",\n iceberg_configuration={\n \"role_arn\": firehose_role[\"arn\"],\n \"catalog_arn\": f\"arn:{current_get_partition.partition}:glue:{current_get_region.name}:{current.account_id}:catalog\",\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"s3_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket.arn,\n },\n \"destination_table_configurations\": [{\n \"database_name\": test.name,\n \"table_name\": test_catalog_table.name,\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 current = Aws.GetCallerIdentity.Invoke();\n\n var currentGetPartition = Aws.GetPartition.Invoke();\n\n var currentGetRegion = Aws.GetRegion.Invoke();\n\n var bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"test-bucket\",\n ForceDestroy = true,\n });\n\n var test = new Aws.Glue.CatalogDatabase(\"test\", new()\n {\n Name = \"test\",\n });\n\n var testCatalogTable = new Aws.Glue.CatalogTable(\"test\", new()\n {\n Name = \"test\",\n DatabaseName = test.Name,\n Parameters = \n {\n { \"format\", \"parquet\" },\n },\n TableType = \"EXTERNAL_TABLE\",\n OpenTableFormatInput = new Aws.Glue.Inputs.CatalogTableOpenTableFormatInputArgs\n {\n IcebergInput = new Aws.Glue.Inputs.CatalogTableOpenTableFormatInputIcebergInputArgs\n {\n MetadataOperation = \"CREATE\",\n Version = \"2\",\n },\n },\n StorageDescriptor = new Aws.Glue.Inputs.CatalogTableStorageDescriptorArgs\n {\n Location = bucket.Id.Apply(id =\u003e $\"s3://{id}\"),\n Columns = new[]\n {\n new Aws.Glue.Inputs.CatalogTableStorageDescriptorColumnArgs\n {\n Name = \"my_column_1\",\n Type = \"int\",\n },\n },\n },\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"iceberg\",\n IcebergConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n CatalogArn = Output.Tuple(currentGetPartition, currentGetRegion, current).Apply(values =\u003e\n {\n var currentGetPartition = values.Item1;\n var currentGetRegion = values.Item2;\n var current = values.Item3;\n return $\"arn:{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.Partition)}:glue:{currentGetRegion.Apply(getRegionResult =\u003e getRegionResult.Name)}:{current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:catalog\";\n }),\n BufferingSize = 10,\n BufferingInterval = 400,\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n },\n DestinationTableConfigurations = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs\n {\n DatabaseName = test.Name,\n TableName = testCatalogTable.Name,\n },\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs\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\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\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\tcurrent, err := aws.GetCallerIdentity(ctx, \u0026aws.GetCallerIdentityArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetPartition, err := aws.GetPartition(ctx, \u0026aws.GetPartitionArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetRegion, err := aws.GetRegion(ctx, \u0026aws.GetRegionArgs{}, nil)\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(\"test-bucket\"),\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := glue.NewCatalogDatabase(ctx, \"test\", \u0026glue.CatalogDatabaseArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestCatalogTable, err := glue.NewCatalogTable(ctx, \"test\", \u0026glue.CatalogTableArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tDatabaseName: test.Name,\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"format\": pulumi.String(\"parquet\"),\n\t\t\t},\n\t\t\tTableType: pulumi.String(\"EXTERNAL_TABLE\"),\n\t\t\tOpenTableFormatInput: \u0026glue.CatalogTableOpenTableFormatInputArgs{\n\t\t\t\tIcebergInput: \u0026glue.CatalogTableOpenTableFormatInputIcebergInputArgs{\n\t\t\t\t\tMetadataOperation: pulumi.String(\"CREATE\"),\n\t\t\t\t\tVersion: pulumi.String(\"2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorageDescriptor: \u0026glue.CatalogTableStorageDescriptorArgs{\n\t\t\t\tLocation: bucket.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"s3://%v\", id), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tColumns: glue.CatalogTableStorageDescriptorColumnArray{\n\t\t\t\t\t\u0026glue.CatalogTableStorageDescriptorColumnArgs{\n\t\t\t\t\t\tName: pulumi.String(\"my_column_1\"),\n\t\t\t\t\t\tType: pulumi.String(\"int\"),\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 = kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"iceberg\"),\n\t\t\tIcebergConfiguration: \u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tCatalogArn: pulumi.Sprintf(\"arn:%v:glue:%v:%v:catalog\", currentGetPartition.Partition, currentGetRegion.Name, current.AccountId),\n\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: bucket.Arn,\n\t\t\t\t},\n\t\t\t\tDestinationTableConfigurations: kinesis.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArray{\n\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs{\n\t\t\t\t\t\tDatabaseName: test.Name,\n\t\t\t\t\t\tTableName: testCatalogTable.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs{\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.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.inputs.GetPartitionArgs;\nimport com.pulumi.aws.inputs.GetRegionArgs;\nimport com.pulumi.aws.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.glue.CatalogDatabase;\nimport com.pulumi.aws.glue.CatalogDatabaseArgs;\nimport com.pulumi.aws.glue.CatalogTable;\nimport com.pulumi.aws.glue.CatalogTableArgs;\nimport com.pulumi.aws.glue.inputs.CatalogTableOpenTableFormatInputArgs;\nimport com.pulumi.aws.glue.inputs.CatalogTableOpenTableFormatInputIcebergInputArgs;\nimport com.pulumi.aws.glue.inputs.CatalogTableStorageDescriptorArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getCallerIdentity();\n\n final var currentGetPartition = AwsFunctions.getPartition();\n\n final var currentGetRegion = AwsFunctions.getRegion();\n\n var bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"test-bucket\")\n .forceDestroy(true)\n .build());\n\n var test = new CatalogDatabase(\"test\", CatalogDatabaseArgs.builder()\n .name(\"test\")\n .build());\n\n var testCatalogTable = new CatalogTable(\"testCatalogTable\", CatalogTableArgs.builder()\n .name(\"test\")\n .databaseName(test.name())\n .parameters(Map.of(\"format\", \"parquet\"))\n .tableType(\"EXTERNAL_TABLE\")\n .openTableFormatInput(CatalogTableOpenTableFormatInputArgs.builder()\n .icebergInput(CatalogTableOpenTableFormatInputIcebergInputArgs.builder()\n .metadataOperation(\"CREATE\")\n .version(2)\n .build())\n .build())\n .storageDescriptor(CatalogTableStorageDescriptorArgs.builder()\n .location(bucket.id().applyValue(id -\u003e String.format(\"s3://%s\", id)))\n .columns(CatalogTableStorageDescriptorColumnArgs.builder()\n .name(\"my_column_1\")\n .type(\"int\")\n .build())\n .build())\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"iceberg\")\n .icebergConfiguration(FirehoseDeliveryStreamIcebergConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .catalogArn(String.format(\"arn:%s:glue:%s:%s:catalog\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.partition()),currentGetRegion.applyValue(getRegionResult -\u003e getRegionResult.name()),current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId())))\n .bufferingSize(10)\n .bufferingInterval(400)\n .s3Configuration(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .build())\n .destinationTableConfigurations(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs.builder()\n .databaseName(test.name())\n .tableName(testCatalogTable.name())\n .build())\n .processingConfiguration(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs.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 bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: test-bucket\n forceDestroy: true\n test:\n type: aws:glue:CatalogDatabase\n properties:\n name: test\n testCatalogTable:\n type: aws:glue:CatalogTable\n name: test\n properties:\n name: test\n databaseName: ${test.name}\n parameters:\n format: parquet\n tableType: EXTERNAL_TABLE\n openTableFormatInput:\n icebergInput:\n metadataOperation: CREATE\n version: 2\n storageDescriptor:\n location: s3://${bucket.id}\n columns:\n - name: my_column_1\n type: int\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: iceberg\n icebergConfiguration:\n roleArn: ${firehoseRole.arn}\n catalogArn: arn:${currentGetPartition.partition}:glue:${currentGetRegion.name}:${current.accountId}:catalog\n bufferingSize: 10\n bufferingInterval: 400\n s3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n destinationTableConfigurations:\n - databaseName: ${test.name}\n tableName: ${testCatalogTable.name}\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\nvariables:\n current:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n currentGetPartition:\n fn::invoke:\n Function: aws:getPartition\n Arguments: {}\n currentGetRegion:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\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", @@ -285260,6 +286520,10 @@ "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfiguration:FirehoseDeliveryStreamHttpEndpointConfiguration", "description": "Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details.\n" }, + "icebergConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfiguration:FirehoseDeliveryStreamIcebergConfiguration", + "description": "Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details.\n" + }, "kinesisSourceConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration", "description": "The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details.\n" @@ -285348,6 +286612,10 @@ "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfiguration:FirehoseDeliveryStreamHttpEndpointConfiguration", "description": "Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details.\n" }, + "icebergConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfiguration:FirehoseDeliveryStreamIcebergConfiguration", + "description": "Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details.\n" + }, "kinesisSourceConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration", "description": "The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details.\n", @@ -285428,6 +286696,10 @@ "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfiguration:FirehoseDeliveryStreamHttpEndpointConfiguration", "description": "Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details.\n" }, + "icebergConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfiguration:FirehoseDeliveryStreamIcebergConfiguration", + "description": "Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details.\n" + }, "kinesisSourceConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration", "description": "The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details.\n", @@ -287536,7 +288808,7 @@ } }, "aws:lakeformation/dataLakeSettings:DataLakeSettings": { - "description": "Manages Lake Formation principals designated as data lake administrators and lists of principal permission entries for default create database and default create table permissions.\n\n\u003e **NOTE:** Lake Formation introduces fine-grained access control for data in your data lake. Part of the changes include the `IAMAllowedPrincipals` principal in order to make Lake Formation backwards compatible with existing IAM and Glue permissions. For more information, see [Changing the Default Security Settings for Your Data Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html) and [Upgrading AWS Glue Data Permissions to the AWS Lake Formation Model](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html).\n\n## Example Usage\n\n### Data Lake Admins\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {admins: [\n test.arn,\n testAwsIamRole.arn,\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\", admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create Default Permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.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.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\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 DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable EMR access to LakeFormation resources\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n allowExternalDataFiltering: true,\n externalDataFilteringAllowLists: [\n current.accountId,\n thirdParty.accountId,\n ],\n authorizedSessionTagValueLists: [\"Amazon EMR\"],\n allowFullTableExternalDataAccess: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }],\n allow_external_data_filtering=True,\n external_data_filtering_allow_lists=[\n current[\"accountId\"],\n third_party[\"accountId\"],\n ],\n authorized_session_tag_value_lists=[\"Amazon EMR\"],\n allow_full_table_external_data_access=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.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n AllowExternalDataFiltering = true,\n ExternalDataFilteringAllowLists = new[]\n {\n current.AccountId,\n thirdParty.AccountId,\n },\n AuthorizedSessionTagValueLists = new[]\n {\n \"Amazon EMR\",\n },\n AllowFullTableExternalDataAccess = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAllowExternalDataFiltering: pulumi.Bool(true),\n\t\t\tExternalDataFilteringAllowLists: pulumi.StringArray{\n\t\t\t\tcurrent.AccountId,\n\t\t\t\tthirdParty.AccountId,\n\t\t\t},\n\t\t\tAuthorizedSessionTagValueLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Amazon EMR\"),\n\t\t\t},\n\t\t\tAllowFullTableExternalDataAccess: 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.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\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 DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .allowExternalDataFiltering(true)\n .externalDataFilteringAllowLists( \n current.accountId(),\n thirdParty.accountId())\n .authorizedSessionTagValueLists(\"Amazon EMR\")\n .allowFullTableExternalDataAccess(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n allowExternalDataFiltering: true\n externalDataFilteringAllowLists:\n - ${current.accountId}\n - ${thirdParty.accountId}\n authorizedSessionTagValueLists:\n - Amazon EMR\n allowFullTableExternalDataAccess: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Manages Lake Formation principals designated as data lake administrators and lists of principal permission entries for default create database and default create table permissions.\n\n\u003e **NOTE:** Lake Formation introduces fine-grained access control for data in your data lake. Part of the changes include the `IAMAllowedPrincipals` principal in order to make Lake Formation backwards compatible with existing IAM and Glue permissions. For more information, see [Changing the Default Security Settings for Your Data Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html) and [Upgrading AWS Glue Data Permissions to the AWS Lake Formation Model](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html).\n\n## Example Usage\n\n### Data Lake Admins\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {admins: [\n test.arn,\n testAwsIamRole.arn,\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\", admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create Default Permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.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.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\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 DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable EMR access to LakeFormation resources\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n allowExternalDataFiltering: true,\n externalDataFilteringAllowLists: [\n current.accountId,\n thirdParty.accountId,\n ],\n authorizedSessionTagValueLists: [\"Amazon EMR\"],\n allowFullTableExternalDataAccess: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }],\n allow_external_data_filtering=True,\n external_data_filtering_allow_lists=[\n current[\"accountId\"],\n third_party[\"accountId\"],\n ],\n authorized_session_tag_value_lists=[\"Amazon EMR\"],\n allow_full_table_external_data_access=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.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n AllowExternalDataFiltering = true,\n ExternalDataFilteringAllowLists = new[]\n {\n current.AccountId,\n thirdParty.AccountId,\n },\n AuthorizedSessionTagValueLists = new[]\n {\n \"Amazon EMR\",\n },\n AllowFullTableExternalDataAccess = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAllowExternalDataFiltering: pulumi.Bool(true),\n\t\t\tExternalDataFilteringAllowLists: pulumi.StringArray{\n\t\t\t\tcurrent.AccountId,\n\t\t\t\tthirdParty.AccountId,\n\t\t\t},\n\t\t\tAuthorizedSessionTagValueLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Amazon EMR\"),\n\t\t\t},\n\t\t\tAllowFullTableExternalDataAccess: 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.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\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 DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .allowExternalDataFiltering(true)\n .externalDataFilteringAllowLists( \n current.accountId(),\n thirdParty.accountId())\n .authorizedSessionTagValueLists(\"Amazon EMR\")\n .allowFullTableExternalDataAccess(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n allowExternalDataFiltering: true\n externalDataFilteringAllowLists:\n - ${current.accountId}\n - ${thirdParty.accountId}\n authorizedSessionTagValueLists:\n - Amazon EMR\n allowFullTableExternalDataAccess: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Change Cross Account Version\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {parameters: {\n CROSS_ACCOUNT_VERSION: \"3\",\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\", parameters={\n \"CROSS_ACCOUNT_VERSION\": \"3\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Parameters = \n {\n { \"CROSS_ACCOUNT_VERSION\", \"3\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"CROSS_ACCOUNT_VERSION\": pulumi.String(\"3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .parameters(Map.of(\"CROSS_ACCOUNT_VERSION\", \"3\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n parameters:\n CROSS_ACCOUNT_VERSION: '3'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "admins": { "type": "array", @@ -287551,7 +288823,7 @@ }, "allowFullTableExternalDataAccess": { "type": "boolean", - "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n" }, "authorizedSessionTagValueLists": { "type": "array", @@ -287585,6 +288857,13 @@ }, "description": "A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.\n" }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `\"1\"`, `\"2\"`, `\"3\"`, or `\"4\"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `\"1\"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `\"1\"`.\n" + }, "readOnlyAdmins": { "type": "array", "items": { @@ -287597,7 +288876,7 @@ "items": { "type": "string" }, - "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n" + "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.\n" } }, "required": [ @@ -287606,6 +288885,7 @@ "createDatabaseDefaultPermissions", "createTableDefaultPermissions", "externalDataFilteringAllowLists", + "parameters", "readOnlyAdmins", "trustedResourceOwners" ], @@ -287623,7 +288903,7 @@ }, "allowFullTableExternalDataAccess": { "type": "boolean", - "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n" }, "authorizedSessionTagValueLists": { "type": "array", @@ -287658,6 +288938,13 @@ }, "description": "A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.\n" }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `\"1\"`, `\"2\"`, `\"3\"`, or `\"4\"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `\"1\"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `\"1\"`.\n" + }, "readOnlyAdmins": { "type": "array", "items": { @@ -287670,7 +288957,7 @@ "items": { "type": "string" }, - "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n" + "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.\n" } }, "stateInputs": { @@ -287689,7 +288976,7 @@ }, "allowFullTableExternalDataAccess": { "type": "boolean", - "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n" }, "authorizedSessionTagValueLists": { "type": "array", @@ -287724,6 +289011,13 @@ }, "description": "A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.\n" }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `\"1\"`, `\"2\"`, `\"3\"`, or `\"4\"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `\"1\"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `\"1\"`.\n" + }, "readOnlyAdmins": { "type": "array", "items": { @@ -287736,7 +289030,7 @@ "items": { "type": "string" }, - "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n" + "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.\n" } }, "type": "object" @@ -291123,6 +292417,10 @@ }, "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." + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "required": [ @@ -291177,6 +292475,10 @@ "type": "string" }, "description": "A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "requiredInputs": [ @@ -291240,6 +292542,10 @@ }, "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." + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "type": "object" @@ -291515,155 +292821,163 @@ "type": "boolean", "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" }, - "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { - "type": "string", - "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" - }, - "idleTimeout": { - "type": "integer", - "description": "Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60.\n" - }, - "internal": { - "type": "boolean", - "description": "If true, the LB will be internal. Defaults to `false`.\n" - }, - "ipAddressType": { - "type": "string", - "description": "Type of IP addresses used by the subnets for your load balancer. The possible values depend upon the load balancer type: `ipv4` (all load balancer types), `dualstack` (all load balancer types), and `dualstack-without-public-ipv4` (type `application` only).\n" - }, - "loadBalancerType": { - "type": "string", - "description": "Type of load balancer to create. Possible values are `application`, `gateway`, or `network`. The default value is `application`.\n" - }, - "name": { - "type": "string", - "description": "Name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with `tf-lb`.\n" - }, - "namePrefix": { - "type": "string", - "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n" - }, - "preserveHostHeader": { - "type": "boolean", - "description": "Whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to `false`.\n" - }, - "securityGroups": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of security group IDs to assign to the LB. Only valid for Load Balancers of type `application` or `network`. For load balancers of type `network` security groups cannot be added if none are currently present, and cannot all be removed once added. If either of these conditions are met, this will force a recreation of the resource.\n" - }, - "subnetMappings": { - "type": "array", - "items": { - "$ref": "#/types/aws:lb/LoadBalancerSubnetMapping:LoadBalancerSubnetMapping" - }, - "description": "Subnet mapping block. See below. For Load Balancers of type `network` subnet mappings can only be added.\n" - }, - "subnets": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of subnet IDs to attach to the LB. For Load Balancers of type `network` subnets can only be added (see [Availability Zones](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#availability-zones)), deleting a subnet for load balancers of type `network` will force a recreation of the resource.\n" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" - }, - "tagsAll": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", - "deprecationMessage": "Please use `tags` instead." - }, - "vpcId": { - "type": "string" - }, - "xffHeaderProcessingMode": { - "type": "string", - "description": "Determines how the load balancer modifies the `X-Forwarded-For` header in the HTTP request before sending the request to the target. The possible values are `append`, `preserve`, and `remove`. Only valid for Load Balancers of type `application`. The default is `append`.\n" - }, - "zoneId": { - "type": "string", - "description": "Canonical hosted zone ID of the load balancer (to be used in a Route 53 Alias record).\n" - } - }, - "required": [ - "arn", - "arnSuffix", - "dnsName", - "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic", - "internal", - "ipAddressType", - "name", - "namePrefix", - "securityGroups", - "subnetMappings", - "subnets", - "tagsAll", - "vpcId", - "zoneId" - ], - "inputProperties": { - "accessLogs": { - "$ref": "#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", - "description": "Access Logs block. See below.\n" - }, - "clientKeepAlive": { - "type": "integer", - "description": "Client keep alive value in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n" - }, - "connectionLogs": { - "$ref": "#/types/aws:lb/LoadBalancerConnectionLogs:LoadBalancerConnectionLogs", - "description": "Connection Logs block. See below. Only valid for Load Balancers of type `application`.\n" - }, - "customerOwnedIpv4Pool": { - "type": "string", - "description": "ID of the customer owned ipv4 pool to use for this load balancer.\n", - "willReplaceOnChanges": true - }, - "desyncMitigationMode": { - "type": "string", - "description": "How the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`.\n" - }, - "dnsRecordClientRoutingPolicy": { - "type": "string", - "description": "How traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers.\n" - }, - "dropInvalidHeaderFields": { - "type": "boolean", - "description": "Whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`.\n" - }, - "enableCrossZoneLoadBalancing": { - "type": "boolean", - "description": "If true, cross-zone load balancing of the load balancer will be enabled. For `network` and `gateway` type load balancers, this feature is disabled by default (`false`). For `application` load balancer this feature is always enabled (`true`) and cannot be disabled. Defaults to `false`.\n" - }, - "enableDeletionProtection": { - "type": "boolean", - "description": "If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to `false`.\n" - }, - "enableHttp2": { - "type": "boolean", - "description": "Whether HTTP/2 is enabled in `application` load balancers. Defaults to `true`.\n" - }, - "enableTlsVersionAndCipherSuiteHeaders": { + "enableZonalShift": { + "type": "boolean", + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" + }, + "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string", + "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" + }, + "idleTimeout": { + "type": "integer", + "description": "Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60.\n" + }, + "internal": { + "type": "boolean", + "description": "If true, the LB will be internal. Defaults to `false`.\n" + }, + "ipAddressType": { + "type": "string", + "description": "Type of IP addresses used by the subnets for your load balancer. The possible values depend upon the load balancer type: `ipv4` (all load balancer types), `dualstack` (all load balancer types), and `dualstack-without-public-ipv4` (type `application` only).\n" + }, + "loadBalancerType": { + "type": "string", + "description": "Type of load balancer to create. Possible values are `application`, `gateway`, or `network`. The default value is `application`.\n" + }, + "name": { + "type": "string", + "description": "Name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with `tf-lb`.\n" + }, + "namePrefix": { + "type": "string", + "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n" + }, + "preserveHostHeader": { + "type": "boolean", + "description": "Whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to `false`.\n" + }, + "securityGroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of security group IDs to assign to the LB. Only valid for Load Balancers of type `application` or `network`. For load balancers of type `network` security groups cannot be added if none are currently present, and cannot all be removed once added. If either of these conditions are met, this will force a recreation of the resource.\n" + }, + "subnetMappings": { + "type": "array", + "items": { + "$ref": "#/types/aws:lb/LoadBalancerSubnetMapping:LoadBalancerSubnetMapping" + }, + "description": "Subnet mapping block. See below. For Load Balancers of type `network` subnet mappings can only be added.\n" + }, + "subnets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subnet IDs to attach to the LB. For Load Balancers of type `network` subnets can only be added (see [Availability Zones](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#availability-zones)), deleting a subnet for load balancers of type `network` will force a recreation of the resource.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "vpcId": { + "type": "string" + }, + "xffHeaderProcessingMode": { + "type": "string", + "description": "Determines how the load balancer modifies the `X-Forwarded-For` header in the HTTP request before sending the request to the target. The possible values are `append`, `preserve`, and `remove`. Only valid for Load Balancers of type `application`. The default is `append`.\n" + }, + "zoneId": { + "type": "string", + "description": "Canonical hosted zone ID of the load balancer (to be used in a Route 53 Alias record).\n" + } + }, + "required": [ + "arn", + "arnSuffix", + "dnsName", + "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic", + "internal", + "ipAddressType", + "name", + "namePrefix", + "securityGroups", + "subnetMappings", + "subnets", + "tagsAll", + "vpcId", + "zoneId" + ], + "inputProperties": { + "accessLogs": { + "$ref": "#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", + "description": "Access Logs block. See below.\n" + }, + "clientKeepAlive": { + "type": "integer", + "description": "Client keep alive value in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n" + }, + "connectionLogs": { + "$ref": "#/types/aws:lb/LoadBalancerConnectionLogs:LoadBalancerConnectionLogs", + "description": "Connection Logs block. See below. Only valid for Load Balancers of type `application`.\n" + }, + "customerOwnedIpv4Pool": { + "type": "string", + "description": "ID of the customer owned ipv4 pool to use for this load balancer.\n", + "willReplaceOnChanges": true + }, + "desyncMitigationMode": { + "type": "string", + "description": "How the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`.\n" + }, + "dnsRecordClientRoutingPolicy": { + "type": "string", + "description": "How traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers.\n" + }, + "dropInvalidHeaderFields": { + "type": "boolean", + "description": "Whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`.\n" + }, + "enableCrossZoneLoadBalancing": { + "type": "boolean", + "description": "If true, cross-zone load balancing of the load balancer will be enabled. For `network` and `gateway` type load balancers, this feature is disabled by default (`false`). For `application` load balancer this feature is always enabled (`true`) and cannot be disabled. Defaults to `false`.\n" + }, + "enableDeletionProtection": { + "type": "boolean", + "description": "If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to `false`.\n" + }, + "enableHttp2": { + "type": "boolean", + "description": "Whether HTTP/2 is enabled in `application` load balancers. Defaults to `true`.\n" + }, + "enableTlsVersionAndCipherSuiteHeaders": { + "type": "boolean", + "description": "Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false`\n" + }, + "enableWafFailOpen": { + "type": "boolean", + "description": "Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`.\n" + }, + "enableXffClientPort": { + "type": "boolean", + "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" + }, + "enableZonalShift": { "type": "boolean", - "description": "Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false`\n" - }, - "enableWafFailOpen": { - "type": "boolean", - "description": "Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`.\n" - }, - "enableXffClientPort": { - "type": "boolean", - "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -291802,6 +293116,10 @@ "type": "boolean", "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" }, + "enableZonalShift": { + "type": "boolean", + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" @@ -335318,6 +336636,152 @@ "type": "object" } }, + "aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy": { + "description": "Resource for managing an AWS Resilience Hub Resiliency Policy.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n example:\n type: aws:resiliencehub:ResiliencyPolicy\n properties:\n policyName: testexample\n policyDescription: testexample\n tier: NonCritical\n dataLocationConstraint: AnyLocation\n policy:\n - region:\n - rpo: 24h\n rto: 24h\n az:\n - rpo: 24h\n rto: 24h\n hardware:\n - rpo: 24h\n rto: 24h\n software:\n - rpo: 24h\n rto: 24h\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Resilience Hub Resiliency Policy using the `arn`. For example:\n\n```sh\n$ pulumi import aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy example arn:aws:resiliencehub:us-east-1:123456789012:resiliency-policy/8c1cfa29-d1dd-4421-aa68-c9f64cced4c2\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "ARN of the Resiliency Policy.\n" + }, + "dataLocationConstraint": { + "type": "string", + "description": "Data Location Constraint of the Policy.\nValid values are `AnyLocation`, `SameContinent`, and `SameCountry`.\n" + }, + "description": { + "type": "string", + "description": "Description of Resiliency Policy.\n" + }, + "estimatedCostTier": { + "type": "string", + "description": "Estimated Cost Tier of the Resiliency Policy.\n" + }, + "name": { + "type": "string", + "description": "Name of Resiliency Policy.\nMust be between 2 and 60 characters long.\nMust start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens.\n" + }, + "policy": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicy:ResiliencyPolicyPolicy", + "description": "The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`.\n\nThe following arguments are optional:\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "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." + }, + "tier": { + "type": "string", + "description": "Resiliency Policy Tier.\nValid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`.\n" + }, + "timeouts": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyTimeouts:ResiliencyPolicyTimeouts" + } + }, + "required": [ + "arn", + "dataLocationConstraint", + "estimatedCostTier", + "name", + "tagsAll", + "tier" + ], + "inputProperties": { + "dataLocationConstraint": { + "type": "string", + "description": "Data Location Constraint of the Policy.\nValid values are `AnyLocation`, `SameContinent`, and `SameCountry`.\n" + }, + "description": { + "type": "string", + "description": "Description of Resiliency Policy.\n" + }, + "name": { + "type": "string", + "description": "Name of Resiliency Policy.\nMust be between 2 and 60 characters long.\nMust start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens.\n" + }, + "policy": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicy:ResiliencyPolicyPolicy", + "description": "The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`.\n\nThe following arguments are optional:\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tier": { + "type": "string", + "description": "Resiliency Policy Tier.\nValid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`.\n" + }, + "timeouts": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyTimeouts:ResiliencyPolicyTimeouts" + } + }, + "requiredInputs": [ + "tier" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ResiliencyPolicy resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "ARN of the Resiliency Policy.\n" + }, + "dataLocationConstraint": { + "type": "string", + "description": "Data Location Constraint of the Policy.\nValid values are `AnyLocation`, `SameContinent`, and `SameCountry`.\n" + }, + "description": { + "type": "string", + "description": "Description of Resiliency Policy.\n" + }, + "estimatedCostTier": { + "type": "string", + "description": "Estimated Cost Tier of the Resiliency Policy.\n" + }, + "name": { + "type": "string", + "description": "Name of Resiliency Policy.\nMust be between 2 and 60 characters long.\nMust start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens.\n" + }, + "policy": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicy:ResiliencyPolicyPolicy", + "description": "The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`.\n\nThe following arguments are optional:\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "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." + }, + "tier": { + "type": "string", + "description": "Resiliency Policy Tier.\nValid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`.\n" + }, + "timeouts": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyTimeouts:ResiliencyPolicyTimeouts" + } + }, + "type": "object" + } + }, "aws:resourceexplorer/index:Index": { "description": "Provides a resource to manage a Resource Explorer index in the current AWS Region.\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.resourceexplorer.Index(\"example\", {type: \"LOCAL\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.resourceexplorer.Index(\"example\", type=\"LOCAL\")\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.ResourceExplorer.Index(\"example\", new()\n {\n Type = \"LOCAL\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/resourceexplorer\"\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 := resourceexplorer.NewIndex(ctx, \"example\", \u0026resourceexplorer.IndexArgs{\n\t\t\tType: pulumi.String(\"LOCAL\"),\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.resourceexplorer.Index;\nimport com.pulumi.aws.resourceexplorer.IndexArgs;\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 Index(\"example\", IndexArgs.builder()\n .type(\"LOCAL\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:resourceexplorer:Index\n properties:\n type: LOCAL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Resource Explorer indexes using the `arn`. For example:\n\n```sh\n$ pulumi import aws:resourceexplorer/index:Index example arn:aws:resource-explorer-2:us-east-1:123456789012:index/6047ac4e-207e-4487-9bcf-cb53bb0ff5cc\n```\n", "properties": { @@ -336729,7 +338193,7 @@ }, "name": { "type": "string", - "description": "Name of the Profile Association.\n" + "description": "Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`.\n" }, "ownerId": { "type": "string" @@ -336744,7 +338208,7 @@ }, "status": { "type": "string", - "description": "Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html)\n" + "description": "Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values.\n" }, "statusMessage": { "type": "string", @@ -336780,7 +338244,7 @@ "inputProperties": { "name": { "type": "string", - "description": "Name of the Profile Association.\n" + "description": "Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`.\n" }, "profileId": { "type": "string", @@ -336812,7 +338276,7 @@ }, "name": { "type": "string", - "description": "Name of the Profile Association.\n" + "description": "Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`.\n" }, "ownerId": { "type": "string" @@ -336827,7 +338291,7 @@ }, "status": { "type": "string", - "description": "Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html)\n" + "description": "Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values.\n" }, "statusMessage": { "type": "string", @@ -346898,6 +348362,10 @@ }, "description": "The VPC subnets that Studio uses for communication.\n" }, + "tagPropagation": { + "type": "string", + "description": "Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`.\n" + }, "tags": { "type": "object", "additionalProperties": { @@ -346939,13 +348407,11 @@ "inputProperties": { "appNetworkAccessType": { "type": "string", - "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n", - "willReplaceOnChanges": true + "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n" }, "appSecurityGroupManagement": { "type": "string", - "description": "The entity that creates and manages the required security groups for inter-app communication in `VPCOnly` mode. Valid values are `Service` and `Customer`.\n", - "willReplaceOnChanges": true + "description": "The entity that creates and manages the required security groups for inter-app communication in `VPCOnly` mode. Valid values are `Service` and `Customer`.\n" }, "authMode": { "type": "string", @@ -346987,6 +348453,10 @@ "description": "The VPC subnets that Studio uses for communication.\n", "willReplaceOnChanges": true }, + "tagPropagation": { + "type": "string", + "description": "Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`.\n" + }, "tags": { "type": "object", "additionalProperties": { @@ -347012,13 +348482,11 @@ "properties": { "appNetworkAccessType": { "type": "string", - "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n", - "willReplaceOnChanges": true + "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n" }, "appSecurityGroupManagement": { "type": "string", - "description": "The entity that creates and manages the required security groups for inter-app communication in `VPCOnly` mode. Valid values are `Service` and `Customer`.\n", - "willReplaceOnChanges": true + "description": "The entity that creates and manages the required security groups for inter-app communication in `VPCOnly` mode. Valid values are `Service` and `Customer`.\n" }, "arn": { "type": "string", @@ -347080,6 +348548,10 @@ "description": "The VPC subnets that Studio uses for communication.\n", "willReplaceOnChanges": true }, + "tagPropagation": { + "type": "string", + "description": "Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`.\n" + }, "tags": { "type": "object", "additionalProperties": { @@ -347449,6 +348921,9 @@ }, "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." + }, + "throughputConfig": { + "$ref": "#/types/aws:sagemaker/FeatureGroupThroughputConfig:FeatureGroupThroughputConfig" } }, "required": [ @@ -347458,7 +348933,8 @@ "featureGroupName", "recordIdentifierFeatureName", "roleArn", - "tagsAll" + "tagsAll", + "throughputConfig" ], "inputProperties": { "description": { @@ -347510,6 +348986,9 @@ "type": "string" }, "description": "Map of resource tags for the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "throughputConfig": { + "$ref": "#/types/aws:sagemaker/FeatureGroupThroughputConfig:FeatureGroupThroughputConfig" } }, "requiredInputs": [ @@ -347583,6 +349062,9 @@ }, "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." + }, + "throughputConfig": { + "$ref": "#/types/aws:sagemaker/FeatureGroupThroughputConfig:FeatureGroupThroughputConfig" } }, "type": "object" @@ -347744,6 +349226,147 @@ "type": "object" } }, + "aws:sagemaker/hub:Hub": { + "description": "Provides a SageMaker Hub resource.\n\n## Example Usage\n\n### Basic usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.sagemaker.Hub(\"example\", {\n hubName: \"example\",\n hubDescription: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.sagemaker.Hub(\"example\",\n hub_name=\"example\",\n hub_description=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Sagemaker.Hub(\"example\", new()\n {\n HubName = \"example\",\n HubDescription = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sagemaker\"\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 := sagemaker.NewHub(ctx, \"example\", \u0026sagemaker.HubArgs{\n\t\t\tHubName: pulumi.String(\"example\"),\n\t\t\tHubDescription: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.sagemaker.Hub;\nimport com.pulumi.aws.sagemaker.HubArgs;\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 Hub(\"example\", HubArgs.builder()\n .hubName(\"example\")\n .hubDescription(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sagemaker:Hub\n properties:\n hubName: example\n hubDescription: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import SageMaker Hubs using the `name`. For example:\n\n```sh\n$ pulumi import aws:sagemaker/hub:Hub test_hub my-code-repo\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this Hub.\n" + }, + "hubDescription": { + "type": "string", + "description": "A description of the hub.\n" + }, + "hubDisplayName": { + "type": "string", + "description": "The display name of the hub.\n" + }, + "hubName": { + "type": "string", + "description": "The name of the hub.\n" + }, + "hubSearchKeywords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The searchable keywords for the hub.\n" + }, + "s3StorageConfig": { + "$ref": "#/types/aws:sagemaker/HubS3StorageConfig:HubS3StorageConfig", + "description": "The Amazon S3 storage configuration for the hub. See S3 Storage Config details below.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "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": [ + "arn", + "hubDescription", + "hubName", + "tagsAll" + ], + "inputProperties": { + "hubDescription": { + "type": "string", + "description": "A description of the hub.\n" + }, + "hubDisplayName": { + "type": "string", + "description": "The display name of the hub.\n" + }, + "hubName": { + "type": "string", + "description": "The name of the hub.\n", + "willReplaceOnChanges": true + }, + "hubSearchKeywords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The searchable keywords for the hub.\n" + }, + "s3StorageConfig": { + "$ref": "#/types/aws:sagemaker/HubS3StorageConfig:HubS3StorageConfig", + "description": "The Amazon S3 storage configuration for the hub. See S3 Storage Config details below.\n", + "willReplaceOnChanges": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + } + }, + "requiredInputs": [ + "hubDescription", + "hubName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Hub resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this Hub.\n" + }, + "hubDescription": { + "type": "string", + "description": "A description of the hub.\n" + }, + "hubDisplayName": { + "type": "string", + "description": "The display name of the hub.\n" + }, + "hubName": { + "type": "string", + "description": "The name of the hub.\n", + "willReplaceOnChanges": true + }, + "hubSearchKeywords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The searchable keywords for the hub.\n" + }, + "s3StorageConfig": { + "$ref": "#/types/aws:sagemaker/HubS3StorageConfig:HubS3StorageConfig", + "description": "The Amazon S3 storage configuration for the hub. See S3 Storage Config details below.\n", + "willReplaceOnChanges": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + } + }, + "type": "object" + } + }, "aws:sagemaker/humanTaskUI:HumanTaskUI": { "description": "Provides a SageMaker Human Task UI 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\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new aws.sagemaker.HumanTaskUI(\"example\", {\n humanTaskUiName: \"example\",\n uiTemplate: {\n content: std.file({\n input: \"sagemaker-human-task-ui-template.html\",\n }).then(invoke =\u003e invoke.result),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_std as std\n\nexample = aws.sagemaker.HumanTaskUI(\"example\",\n human_task_ui_name=\"example\",\n ui_template={\n \"content\": std.file(input=\"sagemaker-human-task-ui-template.html\").result,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Sagemaker.HumanTaskUI(\"example\", new()\n {\n HumanTaskUiName = \"example\",\n UiTemplate = new Aws.Sagemaker.Inputs.HumanTaskUIUiTemplateArgs\n {\n Content = Std.File.Invoke(new()\n {\n Input = \"sagemaker-human-task-ui-template.html\",\n }).Apply(invoke =\u003e invoke.Result),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sagemaker\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"sagemaker-human-task-ui-template.html\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sagemaker.NewHumanTaskUI(ctx, \"example\", \u0026sagemaker.HumanTaskUIArgs{\n\t\t\tHumanTaskUiName: pulumi.String(\"example\"),\n\t\t\tUiTemplate: \u0026sagemaker.HumanTaskUIUiTemplateArgs{\n\t\t\t\tContent: pulumi.String(invokeFile.Result),\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.sagemaker.HumanTaskUI;\nimport com.pulumi.aws.sagemaker.HumanTaskUIArgs;\nimport com.pulumi.aws.sagemaker.inputs.HumanTaskUIUiTemplateArgs;\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 HumanTaskUI(\"example\", HumanTaskUIArgs.builder()\n .humanTaskUiName(\"example\")\n .uiTemplate(HumanTaskUIUiTemplateArgs.builder()\n .content(StdFunctions.file(FileArgs.builder()\n .input(\"sagemaker-human-task-ui-template.html\")\n .build()).result())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sagemaker:HumanTaskUI\n properties:\n humanTaskUiName: example\n uiTemplate:\n content:\n fn::invoke:\n Function: std:file\n Arguments:\n input: sagemaker-human-task-ui-template.html\n Return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import SageMaker Human Task UIs using the `human_task_ui_name`. For example:\n\n```sh\n$ pulumi import aws:sagemaker/humanTaskUI:HumanTaskUI example example\n```\n", "properties": { @@ -348043,6 +349666,177 @@ "type": "object" } }, + "aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer": { + "description": "Provides a SageMaker MLFlow Tracking Server resource.\n\n## Example Usage\n\n### Cognito 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.sagemaker.MlflowTrackingServer(\"example\", {\n trackingServerName: \"example\",\n roleArn: exampleAwsIamRole.arn,\n artifactStoreUri: `s3://${exampleAwsS3Bucket.bucket}/path`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.sagemaker.MlflowTrackingServer(\"example\",\n tracking_server_name=\"example\",\n role_arn=example_aws_iam_role[\"arn\"],\n artifact_store_uri=f\"s3://{example_aws_s3_bucket['bucket']}/path\")\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.Sagemaker.MlflowTrackingServer(\"example\", new()\n {\n TrackingServerName = \"example\",\n RoleArn = exampleAwsIamRole.Arn,\n ArtifactStoreUri = $\"s3://{exampleAwsS3Bucket.Bucket}/path\",\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/sagemaker\"\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 := sagemaker.NewMlflowTrackingServer(ctx, \"example\", \u0026sagemaker.MlflowTrackingServerArgs{\n\t\t\tTrackingServerName: pulumi.String(\"example\"),\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tArtifactStoreUri: pulumi.Sprintf(\"s3://%v/path\", exampleAwsS3Bucket.Bucket),\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.sagemaker.MlflowTrackingServer;\nimport com.pulumi.aws.sagemaker.MlflowTrackingServerArgs;\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 MlflowTrackingServer(\"example\", MlflowTrackingServerArgs.builder()\n .trackingServerName(\"example\")\n .roleArn(exampleAwsIamRole.arn())\n .artifactStoreUri(String.format(\"s3://%s/path\", exampleAwsS3Bucket.bucket()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sagemaker:MlflowTrackingServer\n properties:\n trackingServerName: example\n roleArn: ${exampleAwsIamRole.arn}\n artifactStoreUri: s3://${exampleAwsS3Bucket.bucket}/path\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import SageMaker MLFlow Tracking Servers using the `workteam_name`. For example:\n\n```sh\n$ pulumi import aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer example example\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server.\n" + }, + "artifactStoreUri": { + "type": "string", + "description": "The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store.\n" + }, + "automaticModelRegistration": { + "type": "boolean", + "description": "A list of Member Definitions that contains objects that identify the workers that make up the work team.\n" + }, + "mlflowVersion": { + "type": "string", + "description": "The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works).\n" + }, + "roleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html).\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "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." + }, + "trackingServerName": { + "type": "string", + "description": "A unique string identifying the tracking server name. This string is part of the tracking server ARN.\n" + }, + "trackingServerSize": { + "type": "string", + "description": "The size of the tracking server you want to create. You can choose between \"Small\", \"Medium\", and \"Large\". The default MLflow Tracking Server configuration size is \"Small\". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use.\n" + }, + "trackingServerUrl": { + "type": "string", + "description": "The URL to connect to the MLflow user interface for the described tracking server.\n" + }, + "weeklyMaintenanceWindowStart": { + "type": "string", + "description": "The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30.\n" + } + }, + "required": [ + "arn", + "artifactStoreUri", + "mlflowVersion", + "roleArn", + "tagsAll", + "trackingServerName", + "trackingServerUrl", + "weeklyMaintenanceWindowStart" + ], + "inputProperties": { + "artifactStoreUri": { + "type": "string", + "description": "The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store.\n" + }, + "automaticModelRegistration": { + "type": "boolean", + "description": "A list of Member Definitions that contains objects that identify the workers that make up the work team.\n" + }, + "mlflowVersion": { + "type": "string", + "description": "The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works).\n", + "willReplaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html).\n", + "willReplaceOnChanges": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "trackingServerName": { + "type": "string", + "description": "A unique string identifying the tracking server name. This string is part of the tracking server ARN.\n", + "willReplaceOnChanges": true + }, + "trackingServerSize": { + "type": "string", + "description": "The size of the tracking server you want to create. You can choose between \"Small\", \"Medium\", and \"Large\". The default MLflow Tracking Server configuration size is \"Small\". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use.\n" + }, + "weeklyMaintenanceWindowStart": { + "type": "string", + "description": "The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30.\n" + } + }, + "requiredInputs": [ + "artifactStoreUri", + "roleArn", + "trackingServerName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering MlflowTrackingServer resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server.\n" + }, + "artifactStoreUri": { + "type": "string", + "description": "The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store.\n" + }, + "automaticModelRegistration": { + "type": "boolean", + "description": "A list of Member Definitions that contains objects that identify the workers that make up the work team.\n" + }, + "mlflowVersion": { + "type": "string", + "description": "The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works).\n", + "willReplaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html).\n", + "willReplaceOnChanges": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "trackingServerName": { + "type": "string", + "description": "A unique string identifying the tracking server name. This string is part of the tracking server ARN.\n", + "willReplaceOnChanges": true + }, + "trackingServerSize": { + "type": "string", + "description": "The size of the tracking server you want to create. You can choose between \"Small\", \"Medium\", and \"Large\". The default MLflow Tracking Server configuration size is \"Small\". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use.\n" + }, + "trackingServerUrl": { + "type": "string", + "description": "The URL to connect to the MLflow user interface for the described tracking server.\n" + }, + "weeklyMaintenanceWindowStart": { + "type": "string", + "description": "The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30.\n" + } + }, + "type": "object" + } + }, "aws:sagemaker/model:Model": { "description": "Provides a SageMaker model resource.\n\n## Example Usage\n\nBasic usage:\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 actions: [\"sts:AssumeRole\"],\n principals: [{\n type: \"Service\",\n identifiers: [\"sagemaker.amazonaws.com\"],\n }],\n }],\n});\nconst exampleRole = new aws.iam.Role(\"example\", {assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json)});\nconst test = aws.sagemaker.getPrebuiltEcrImage({\n repositoryName: \"kmeans\",\n});\nconst example = new aws.sagemaker.Model(\"example\", {\n name: \"my-model\",\n executionRoleArn: exampleRole.arn,\n primaryContainer: {\n image: test.then(test =\u003e test.registryPath),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nassume_role = aws.iam.get_policy_document(statements=[{\n \"actions\": [\"sts:AssumeRole\"],\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"sagemaker.amazonaws.com\"],\n }],\n}])\nexample_role = aws.iam.Role(\"example\", assume_role_policy=assume_role.json)\ntest = aws.sagemaker.get_prebuilt_ecr_image(repository_name=\"kmeans\")\nexample = aws.sagemaker.Model(\"example\",\n name=\"my-model\",\n execution_role_arn=example_role.arn,\n primary_container={\n \"image\": test.registry_path,\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 Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"sagemaker.amazonaws.com\",\n },\n },\n },\n },\n },\n });\n\n var exampleRole = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var test = Aws.Sagemaker.GetPrebuiltEcrImage.Invoke(new()\n {\n RepositoryName = \"kmeans\",\n });\n\n var example = new Aws.Sagemaker.Model(\"example\", new()\n {\n Name = \"my-model\",\n ExecutionRoleArn = exampleRole.Arn,\n PrimaryContainer = new Aws.Sagemaker.Inputs.ModelPrimaryContainerArgs\n {\n Image = test.Apply(getPrebuiltEcrImageResult =\u003e getPrebuiltEcrImageResult.RegistryPath),\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/sagemaker\"\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\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\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\"sagemaker.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},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRole, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\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\ttest, err := sagemaker.GetPrebuiltEcrImage(ctx, \u0026sagemaker.GetPrebuiltEcrImageArgs{\n\t\t\tRepositoryName: \"kmeans\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sagemaker.NewModel(ctx, \"example\", \u0026sagemaker.ModelArgs{\n\t\t\tName: pulumi.String(\"my-model\"),\n\t\t\tExecutionRoleArn: exampleRole.Arn,\n\t\t\tPrimaryContainer: \u0026sagemaker.ModelPrimaryContainerArgs{\n\t\t\t\tImage: pulumi.String(test.RegistryPath),\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.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.sagemaker.SagemakerFunctions;\nimport com.pulumi.aws.sagemaker.inputs.GetPrebuiltEcrImageArgs;\nimport com.pulumi.aws.sagemaker.Model;\nimport com.pulumi.aws.sagemaker.ModelArgs;\nimport com.pulumi.aws.sagemaker.inputs.ModelPrimaryContainerArgs;\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 .actions(\"sts:AssumeRole\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"sagemaker.amazonaws.com\")\n .build())\n .build())\n .build());\n\n var exampleRole = new Role(\"exampleRole\", RoleArgs.builder()\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n final var test = SagemakerFunctions.getPrebuiltEcrImage(GetPrebuiltEcrImageArgs.builder()\n .repositoryName(\"kmeans\")\n .build());\n\n var example = new Model(\"example\", ModelArgs.builder()\n .name(\"my-model\")\n .executionRoleArn(exampleRole.arn())\n .primaryContainer(ModelPrimaryContainerArgs.builder()\n .image(test.applyValue(getPrebuiltEcrImageResult -\u003e getPrebuiltEcrImageResult.registryPath()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sagemaker:Model\n properties:\n name: my-model\n executionRoleArn: ${exampleRole.arn}\n primaryContainer:\n image: ${test.registryPath}\n exampleRole:\n type: aws:iam:Role\n name: example\n properties:\n assumeRolePolicy: ${assumeRole.json}\nvariables:\n assumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - sts:AssumeRole\n principals:\n - type: Service\n identifiers:\n - sagemaker.amazonaws.com\n test:\n fn::invoke:\n Function: aws:sagemaker:getPrebuiltEcrImage\n Arguments:\n repositoryName: kmeans\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Inference Execution Config\n\n* `mode` - (Required) How containers in a multi-container are run. The following values are valid `Serial` and `Direct`.\n\n## Import\n\nUsing `pulumi import`, import models using the `name`. For example:\n\n```sh\n$ pulumi import aws:sagemaker/model:Model test_model model-foo\n```\n", "properties": { @@ -351926,7 +353720,7 @@ "properties": { "standardsArn": { "type": "string", - "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n" + "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n" } }, "required": [ @@ -351935,7 +353729,7 @@ "inputProperties": { "standardsArn": { "type": "string", - "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n", + "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n", "willReplaceOnChanges": true } }, @@ -351947,7 +353741,7 @@ "properties": { "standardsArn": { "type": "string", - "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n", + "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n", "willReplaceOnChanges": true } }, @@ -369173,7 +370967,7 @@ } }, "aws:verifiedaccess/group:Group": { - "description": "Resource for managing a Verified Access Group.\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.verifiedaccess.Group(\"example\", {verifiedaccessInstanceId: exampleAwsVerifiedaccessInstance.id});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.verifiedaccess.Group(\"example\", verifiedaccess_instance_id=example_aws_verifiedaccess_instance[\"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.VerifiedAccess.Group(\"example\", new()\n {\n VerifiedaccessInstanceId = exampleAwsVerifiedaccessInstance.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess\"\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 := verifiedaccess.NewGroup(ctx, \"example\", \u0026verifiedaccess.GroupArgs{\n\t\t\tVerifiedaccessInstanceId: pulumi.Any(exampleAwsVerifiedaccessInstance.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.verifiedaccess.Group;\nimport com.pulumi.aws.verifiedaccess.GroupArgs;\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 Group(\"example\", GroupArgs.builder()\n .verifiedaccessInstanceId(exampleAwsVerifiedaccessInstance.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:verifiedaccess:Group\n properties:\n verifiedaccessInstanceId: ${exampleAwsVerifiedaccessInstance.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Usage with KMS Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n testKey:\n type: aws:kms:Key\n name: test_key\n properties:\n description: KMS key for Verified Access Group test\n test:\n type: aws:verifiedaccess:Group\n properties:\n verifiedaccessInstanceId: ${testAwsVerifiedaccessInstanceTrustProviderAttachment.verifiedaccessInstanceId}\n serverSideEncryptionConfiguration:\n - kmsKeyArn: ${testKey.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Resource for managing a Verified Access Group.\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.verifiedaccess.Group(\"example\", {verifiedaccessInstanceId: exampleAwsVerifiedaccessInstance.id});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.verifiedaccess.Group(\"example\", verifiedaccess_instance_id=example_aws_verifiedaccess_instance[\"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.VerifiedAccess.Group(\"example\", new()\n {\n VerifiedaccessInstanceId = exampleAwsVerifiedaccessInstance.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess\"\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 := verifiedaccess.NewGroup(ctx, \"example\", \u0026verifiedaccess.GroupArgs{\n\t\t\tVerifiedaccessInstanceId: pulumi.Any(exampleAwsVerifiedaccessInstance.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.verifiedaccess.Group;\nimport com.pulumi.aws.verifiedaccess.GroupArgs;\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 Group(\"example\", GroupArgs.builder()\n .verifiedaccessInstanceId(exampleAwsVerifiedaccessInstance.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:verifiedaccess:Group\n properties:\n verifiedaccessInstanceId: ${exampleAwsVerifiedaccessInstance.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Usage with KMS Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testKey = new aws.kms.Key(\"test_key\", {description: \"KMS key for Verified Access Group test\"});\nconst test = new aws.verifiedaccess.Group(\"test\", {\n verifiedaccessInstanceId: testAwsVerifiedaccessInstanceTrustProviderAttachment.verifiedaccessInstanceId,\n sseConfiguration: {\n kmsKeyArn: testKey.arn,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_key = aws.kms.Key(\"test_key\", description=\"KMS key for Verified Access Group test\")\ntest = aws.verifiedaccess.Group(\"test\",\n verifiedaccess_instance_id=test_aws_verifiedaccess_instance_trust_provider_attachment[\"verifiedaccessInstanceId\"],\n sse_configuration={\n \"kms_key_arn\": test_key.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 testKey = new Aws.Kms.Key(\"test_key\", new()\n {\n Description = \"KMS key for Verified Access Group test\",\n });\n\n var test = new Aws.VerifiedAccess.Group(\"test\", new()\n {\n VerifiedaccessInstanceId = testAwsVerifiedaccessInstanceTrustProviderAttachment.VerifiedaccessInstanceId,\n SseConfiguration = new Aws.VerifiedAccess.Inputs.GroupSseConfigurationArgs\n {\n KmsKeyArn = testKey.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestKey, err := kms.NewKey(ctx, \"test_key\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"KMS key for Verified Access Group test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = verifiedaccess.NewGroup(ctx, \"test\", \u0026verifiedaccess.GroupArgs{\n\t\t\tVerifiedaccessInstanceId: pulumi.Any(testAwsVerifiedaccessInstanceTrustProviderAttachment.VerifiedaccessInstanceId),\n\t\t\tSseConfiguration: \u0026verifiedaccess.GroupSseConfigurationArgs{\n\t\t\t\tKmsKeyArn: testKey.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.kms.Key;\nimport com.pulumi.aws.kms.KeyArgs;\nimport com.pulumi.aws.verifiedaccess.Group;\nimport com.pulumi.aws.verifiedaccess.GroupArgs;\nimport com.pulumi.aws.verifiedaccess.inputs.GroupSseConfigurationArgs;\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 testKey = new Key(\"testKey\", KeyArgs.builder()\n .description(\"KMS key for Verified Access Group test\")\n .build());\n\n var test = new Group(\"test\", GroupArgs.builder()\n .verifiedaccessInstanceId(testAwsVerifiedaccessInstanceTrustProviderAttachment.verifiedaccessInstanceId())\n .sseConfiguration(GroupSseConfigurationArgs.builder()\n .kmsKeyArn(testKey.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testKey:\n type: aws:kms:Key\n name: test_key\n properties:\n description: KMS key for Verified Access Group test\n test:\n type: aws:verifiedaccess:Group\n properties:\n verifiedaccessInstanceId: ${testAwsVerifiedaccessInstanceTrustProviderAttachment.verifiedaccessInstanceId}\n sseConfiguration:\n kmsKeyArn: ${testKey.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "creationTime": { "type": "string", @@ -376201,6 +377995,9 @@ "enableXffClientPort": { "type": "boolean" }, + "enableZonalShift": { + "type": "boolean" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string" }, @@ -376277,6 +378074,7 @@ "enableTlsVersionAndCipherSuiteHeaders", "enableWafFailOpen", "enableXffClientPort", + "enableZonalShift", "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic", "idleTimeout", "internal", @@ -391523,7 +393321,7 @@ } }, "aws:ec2/getSubnet:getSubnet": { - "description": "`aws.ec2.Subnet` provides details about a specific VPC subnet.\n\nThis resource can prove useful when a module accepts a subnet ID as an input variable and needs to, for example, determine the ID of the VPC that the subnet belongs to.\n\n## Example Usage\n\nThe following example shows how one might accept a subnet ID as a variable and use this data source to obtain the data necessary to create a security group that allows connections from hosts in that subnet.\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 subnetId = config.requireObject(\"subnetId\");\nconst selected = aws.ec2.getSubnet({\n id: subnetId,\n});\nconst subnet = new aws.ec2.SecurityGroup(\"subnet\", {\n vpcId: selected.then(selected =\u003e selected.vpcId),\n ingress: [{\n cidrBlocks: [selected.then(selected =\u003e selected.cidrBlock)],\n fromPort: 80,\n toPort: 80,\n protocol: \"tcp\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nconfig = pulumi.Config()\nsubnet_id = config.require_object(\"subnetId\")\nselected = aws.ec2.get_subnet(id=subnet_id)\nsubnet = aws.ec2.SecurityGroup(\"subnet\",\n vpc_id=selected.vpc_id,\n ingress=[{\n \"cidr_blocks\": [selected.cidr_block],\n \"from_port\": 80,\n \"to_port\": 80,\n \"protocol\": \"tcp\",\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 config = new Config();\n var subnetId = config.RequireObject\u003cdynamic\u003e(\"subnetId\");\n var selected = Aws.Ec2.GetSubnet.Invoke(new()\n {\n Id = subnetId,\n });\n\n var subnet = new Aws.Ec2.SecurityGroup(\"subnet\", new()\n {\n VpcId = selected.Apply(getSubnetResult =\u003e getSubnetResult.VpcId),\n Ingress = new[]\n {\n new Aws.Ec2.Inputs.SecurityGroupIngressArgs\n {\n CidrBlocks = new[]\n {\n selected.Apply(getSubnetResult =\u003e getSubnetResult.CidrBlock),\n },\n FromPort = 80,\n ToPort = 80,\n Protocol = \"tcp\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/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\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tselected, err := ec2.LookupSubnet(ctx, \u0026ec2.LookupSubnetArgs{\n\t\t\tId: pulumi.StringRef(subnetId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroup(ctx, \"subnet\", \u0026ec2.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(selected.VpcId),\n\t\t\tIngress: ec2.SecurityGroupIngressArray{\n\t\t\t\t\u0026ec2.SecurityGroupIngressArgs{\n\t\t\t\t\tCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(selected.CidrBlock),\n\t\t\t\t\t},\n\t\t\t\t\tFromPort: pulumi.Int(80),\n\t\t\t\t\tToPort: pulumi.Int(80),\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\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.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetSubnetArgs;\nimport com.pulumi.aws.ec2.SecurityGroup;\nimport com.pulumi.aws.ec2.SecurityGroupArgs;\nimport com.pulumi.aws.ec2.inputs.SecurityGroupIngressArgs;\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 subnetId = config.get(\"subnetId\");\n final var selected = Ec2Functions.getSubnet(GetSubnetArgs.builder()\n .id(subnetId)\n .build());\n\n var subnet = new SecurityGroup(\"subnet\", SecurityGroupArgs.builder()\n .vpcId(selected.applyValue(getSubnetResult -\u003e getSubnetResult.vpcId()))\n .ingress(SecurityGroupIngressArgs.builder()\n .cidrBlocks(selected.applyValue(getSubnetResult -\u003e getSubnetResult.cidrBlock()))\n .fromPort(80)\n .toPort(80)\n .protocol(\"tcp\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n subnetId:\n type: dynamic\nresources:\n subnet:\n type: aws:ec2:SecurityGroup\n properties:\n vpcId: ${selected.vpcId}\n ingress:\n - cidrBlocks:\n - ${selected.cidrBlock}\n fromPort: 80\n toPort: 80\n protocol: tcp\nvariables:\n selected:\n fn::invoke:\n Function: aws:ec2:getSubnet\n Arguments:\n id: ${subnetId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter Example\n\nIf you want to match against tag `Name`, use:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst selected = aws.ec2.getSubnet({\n filters: [{\n name: \"tag:Name\",\n values: [\"yakdriver\"],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nselected = aws.ec2.get_subnet(filters=[{\n \"name\": \"tag:Name\",\n \"values\": [\"yakdriver\"],\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 selected = Aws.Ec2.GetSubnet.Invoke(new()\n {\n Filters = new[]\n {\n new Aws.Ec2.Inputs.GetSubnetFilterInputArgs\n {\n Name = \"tag:Name\",\n Values = new[]\n {\n \"yakdriver\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.LookupSubnet(ctx, \u0026ec2.LookupSubnetArgs{\n\t\t\tFilters: []ec2.GetSubnetFilter{\n\t\t\t\t{\n\t\t\t\t\tName: \"tag:Name\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"yakdriver\",\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\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetSubnetArgs;\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 selected = Ec2Functions.getSubnet(GetSubnetArgs.builder()\n .filters(GetSubnetFilterArgs.builder()\n .name(\"tag:Name\")\n .values(\"yakdriver\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n selected:\n fn::invoke:\n Function: aws:ec2:getSubnet\n Arguments:\n filters:\n - name: tag:Name\n values:\n - yakdriver\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "`aws.ec2.Subnet` provides details about a specific VPC subnet.\n\nThis resource can prove useful when a module accepts a subnet ID as an input variable and needs to, for example, determine the ID of the VPC that the subnet belongs to.\n\n## Example Usage\n\nThe following example shows how one might accept a subnet ID as a variable and use this data source to obtain the data necessary to create a security group that allows connections from hosts in that subnet.\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 subnetId = config.requireObject(\"subnetId\");\nconst selected = aws.ec2.getSubnet({\n id: subnetId,\n});\nconst subnetSecurityGroup = new aws.ec2.SecurityGroup(\"subnet_security_group\", {\n vpcId: selected.then(selected =\u003e selected.vpcId),\n ingress: [{\n cidrBlocks: [selected.then(selected =\u003e selected.cidrBlock)],\n fromPort: 80,\n toPort: 80,\n protocol: \"tcp\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nconfig = pulumi.Config()\nsubnet_id = config.require_object(\"subnetId\")\nselected = aws.ec2.get_subnet(id=subnet_id)\nsubnet_security_group = aws.ec2.SecurityGroup(\"subnet_security_group\",\n vpc_id=selected.vpc_id,\n ingress=[{\n \"cidr_blocks\": [selected.cidr_block],\n \"from_port\": 80,\n \"to_port\": 80,\n \"protocol\": \"tcp\",\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 config = new Config();\n var subnetId = config.RequireObject\u003cdynamic\u003e(\"subnetId\");\n var selected = Aws.Ec2.GetSubnet.Invoke(new()\n {\n Id = subnetId,\n });\n\n var subnetSecurityGroup = new Aws.Ec2.SecurityGroup(\"subnet_security_group\", new()\n {\n VpcId = selected.Apply(getSubnetResult =\u003e getSubnetResult.VpcId),\n Ingress = new[]\n {\n new Aws.Ec2.Inputs.SecurityGroupIngressArgs\n {\n CidrBlocks = new[]\n {\n selected.Apply(getSubnetResult =\u003e getSubnetResult.CidrBlock),\n },\n FromPort = 80,\n ToPort = 80,\n Protocol = \"tcp\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/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\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tselected, err := ec2.LookupSubnet(ctx, \u0026ec2.LookupSubnetArgs{\n\t\t\tId: pulumi.StringRef(subnetId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroup(ctx, \"subnet_security_group\", \u0026ec2.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(selected.VpcId),\n\t\t\tIngress: ec2.SecurityGroupIngressArray{\n\t\t\t\t\u0026ec2.SecurityGroupIngressArgs{\n\t\t\t\t\tCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(selected.CidrBlock),\n\t\t\t\t\t},\n\t\t\t\t\tFromPort: pulumi.Int(80),\n\t\t\t\t\tToPort: pulumi.Int(80),\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\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.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetSubnetArgs;\nimport com.pulumi.aws.ec2.SecurityGroup;\nimport com.pulumi.aws.ec2.SecurityGroupArgs;\nimport com.pulumi.aws.ec2.inputs.SecurityGroupIngressArgs;\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 subnetId = config.get(\"subnetId\");\n final var selected = Ec2Functions.getSubnet(GetSubnetArgs.builder()\n .id(subnetId)\n .build());\n\n var subnetSecurityGroup = new SecurityGroup(\"subnetSecurityGroup\", SecurityGroupArgs.builder()\n .vpcId(selected.applyValue(getSubnetResult -\u003e getSubnetResult.vpcId()))\n .ingress(SecurityGroupIngressArgs.builder()\n .cidrBlocks(selected.applyValue(getSubnetResult -\u003e getSubnetResult.cidrBlock()))\n .fromPort(80)\n .toPort(80)\n .protocol(\"tcp\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n subnetId:\n type: dynamic\nresources:\n subnetSecurityGroup:\n type: aws:ec2:SecurityGroup\n name: subnet_security_group\n properties:\n vpcId: ${selected.vpcId}\n ingress:\n - cidrBlocks:\n - ${selected.cidrBlock}\n fromPort: 80\n toPort: 80\n protocol: tcp\nvariables:\n selected:\n fn::invoke:\n Function: aws:ec2:getSubnet\n Arguments:\n id: ${subnetId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter Example\n\nIf you want to match against tag `Name`, use:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst selected = aws.ec2.getSubnet({\n filters: [{\n name: \"tag:Name\",\n values: [\"yakdriver\"],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nselected = aws.ec2.get_subnet(filters=[{\n \"name\": \"tag:Name\",\n \"values\": [\"yakdriver\"],\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 selected = Aws.Ec2.GetSubnet.Invoke(new()\n {\n Filters = new[]\n {\n new Aws.Ec2.Inputs.GetSubnetFilterInputArgs\n {\n Name = \"tag:Name\",\n Values = new[]\n {\n \"yakdriver\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.LookupSubnet(ctx, \u0026ec2.LookupSubnetArgs{\n\t\t\tFilters: []ec2.GetSubnetFilter{\n\t\t\t\t{\n\t\t\t\t\tName: \"tag:Name\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"yakdriver\",\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\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetSubnetArgs;\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 selected = Ec2Functions.getSubnet(GetSubnetArgs.builder()\n .filters(GetSubnetFilterArgs.builder()\n .name(\"tag:Name\")\n .values(\"yakdriver\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n selected:\n fn::invoke:\n Function: aws:ec2:getSubnet\n Arguments:\n filters:\n - name: tag:Name\n values:\n - yakdriver\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSubnet.\n", "properties": { @@ -396979,7 +398777,7 @@ }, "productDescription": { "type": "string", - "description": "Engine type for the reserved cache node.\nValid values are `redis` and `memcached`.\n" + "description": "Engine type for the reserved cache node.\nValid values are `redis`, `valkey` and `memcached`.\n" } }, "type": "object", @@ -397061,7 +398859,7 @@ "type": "string" }, "dailySnapshotTime": { - "description": "The daily time that snapshots will be created from the new serverless cache. Only available for engine type `\"redis\"`.\n", + "description": "The daily time that snapshots will be created from the new serverless cache. Only available for engine types `\"redis\"` and `\"valkey\"`.\n", "type": "string" }, "description": { @@ -401073,6 +402871,7 @@ "owner", "parentImage", "platform", + "tags", "targetRepositories", "version", "workingDirectory", @@ -401680,6 +403479,7 @@ "owner", "parentImage", "platform", + "tags", "userDataBase64", "version", "workingDirectory", @@ -404151,6 +405951,13 @@ "description": "The provider-assigned unique ID for this managed resource.\n", "type": "string" }, + "parameters": { + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of additional configuration. `CROSS_ACCOUNT_VERSION` will be set to values `\"1\"`, `\"2\"`, `\"3\"`, or `\"4\"`. `SET_CONTEXT` will also be returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `\"1\"`.\n", + "type": "object" + }, "readOnlyAdmins": { "description": "List of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.\n", "items": { @@ -404174,6 +405981,7 @@ "createDatabaseDefaultPermissions", "createTableDefaultPermissions", "externalDataFilteringAllowLists", + "parameters", "readOnlyAdmins", "trustedResourceOwners", "id" @@ -405225,6 +407033,9 @@ "enableXffClientPort": { "type": "boolean" }, + "enableZonalShift": { + "type": "boolean" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string" }, @@ -405301,6 +407112,7 @@ "enableTlsVersionAndCipherSuiteHeaders", "enableWafFailOpen", "enableXffClientPort", + "enableZonalShift", "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic", "idleTimeout", "internal", @@ -419643,6 +421455,56 @@ "type": "object" } }, + "aws:ssm/getPatchBaselines:getPatchBaselines": { + "description": "Data source for retrieving AWS SSM (Systems Manager) Patch Baselines.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.ssm.getPatchBaselines({});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ssm.get_patch_baselines()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.Ssm.GetPatchBaselines.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm\"\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 := ssm.GetPatchBaselines(ctx, \u0026ssm.GetPatchBaselinesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ssm.SsmFunctions;\nimport com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;\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 = SsmFunctions.getPatchBaselines();\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:ssm:getPatchBaselines\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Filters\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.ssm.getPatchBaselines({\n filters: [\n {\n key: \"OWNER\",\n values: [\"AWS\"],\n },\n {\n key: \"OPERATING_SYSTEM\",\n values: [\"WINDOWS\"],\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ssm.get_patch_baselines(filters=[\n {\n \"key\": \"OWNER\",\n \"values\": [\"AWS\"],\n },\n {\n \"key\": \"OPERATING_SYSTEM\",\n \"values\": [\"WINDOWS\"],\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 = Aws.Ssm.GetPatchBaselines.Invoke(new()\n {\n Filters = new[]\n {\n new Aws.Ssm.Inputs.GetPatchBaselinesFilterInputArgs\n {\n Key = \"OWNER\",\n Values = new[]\n {\n \"AWS\",\n },\n },\n new Aws.Ssm.Inputs.GetPatchBaselinesFilterInputArgs\n {\n Key = \"OPERATING_SYSTEM\",\n Values = new[]\n {\n \"WINDOWS\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm\"\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 := ssm.GetPatchBaselines(ctx, \u0026ssm.GetPatchBaselinesArgs{\n\t\t\tFilters: []ssm.GetPatchBaselinesFilter{\n\t\t\t\t{\n\t\t\t\t\tKey: \"OWNER\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"AWS\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tKey: \"OPERATING_SYSTEM\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"WINDOWS\",\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\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.ssm.SsmFunctions;\nimport com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;\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 = SsmFunctions.getPatchBaselines(GetPatchBaselinesArgs.builder()\n .filters( \n GetPatchBaselinesFilterArgs.builder()\n .key(\"OWNER\")\n .values(\"AWS\")\n .build(),\n GetPatchBaselinesFilterArgs.builder()\n .key(\"OPERATING_SYSTEM\")\n .values(\"WINDOWS\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:ssm:getPatchBaselines\n Arguments:\n filters:\n - key: OWNER\n values:\n - AWS\n - key: OPERATING_SYSTEM\n values:\n - WINDOWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getPatchBaselines.\n", + "properties": { + "defaultBaselines": { + "type": "boolean", + "description": "Only return baseline identities where `default_baseline` is `true`.\n" + }, + "filters": { + "type": "array", + "items": { + "$ref": "#/types/aws:ssm/getPatchBaselinesFilter:getPatchBaselinesFilter" + }, + "description": "Key-value pairs used to filter the results. See `filter` below.\n" + } + }, + "type": "object" + }, + "outputs": { + "description": "A collection of values returned by getPatchBaselines.\n", + "properties": { + "baselineIdentities": { + "description": "List of baseline identities. See `baseline_identities` below.\n", + "items": { + "$ref": "#/types/aws:ssm/getPatchBaselinesBaselineIdentity:getPatchBaselinesBaselineIdentity" + }, + "type": "array" + }, + "defaultBaselines": { + "type": "boolean" + }, + "filters": { + "items": { + "$ref": "#/types/aws:ssm/getPatchBaselinesFilter:getPatchBaselinesFilter" + }, + "type": "array" + }, + "id": { + "description": "The provider-assigned unique ID for this managed resource.\n", + "type": "string" + } + }, + "required": [ + "baselineIdentities", + "id" + ], + "type": "object" + } + }, "aws:ssmcontacts/getContact:getContact": { "description": "Data source for managing an AWS SSM Contact.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.ssmcontacts.getContact({\n arn: \"arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ssmcontacts.get_contact(arn=\"arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.SsmContacts.GetContact.Invoke(new()\n {\n Arn = \"arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssmcontacts\"\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 := ssmcontacts.LookupContact(ctx, \u0026ssmcontacts.LookupContactArgs{\n\t\t\tArn: \"arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ssmcontacts.SsmcontactsFunctions;\nimport com.pulumi.aws.ssmcontacts.inputs.GetContactArgs;\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 = SsmcontactsFunctions.getContact(GetContactArgs.builder()\n .arn(\"arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:ssmcontacts:getContact\n Arguments:\n arn: arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { diff --git a/provider/cmd/pulumi-resource-aws/schema.json b/provider/cmd/pulumi-resource-aws/schema.json index 6a71acc17d4..e31aa3f6621 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -184,6 +184,7 @@ "redshiftdata": "RedshiftData", "redshiftserverless": "RedshiftServerless", "rekognition": "Rekognition", + "resiliencehub": "ResilienceHub", "resourceexplorer": "ResourceExplorer", "resourcegroups": "ResourceGroups", "resourcegroupstaggingapi": "ResourceGroupsTaggingApi", @@ -30019,6 +30020,41 @@ }, "type": "object" }, + "aws:codedeploy/DeploymentConfigZonalConfig:DeploymentConfigZonalConfig": { + "properties": { + "firstZoneMonitorDurationInSeconds": { + "type": "integer", + "description": "The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone.\n", + "willReplaceOnChanges": true + }, + "minimumHealthyHostsPerZone": { + "$ref": "#/types/aws:codedeploy/DeploymentConfigZonalConfigMinimumHealthyHostsPerZone:DeploymentConfigZonalConfigMinimumHealthyHostsPerZone", + "description": "The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below.\n", + "willReplaceOnChanges": true + }, + "monitorDurationInSeconds": { + "type": "integer", + "description": "The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + }, + "aws:codedeploy/DeploymentConfigZonalConfigMinimumHealthyHostsPerZone:DeploymentConfigZonalConfigMinimumHealthyHostsPerZone": { + "properties": { + "type": { + "type": "string", + "description": "The type can either be `FLEET_PERCENT` or `HOST_COUNT`.\n", + "willReplaceOnChanges": true + }, + "value": { + "type": "integer", + "description": "The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + }, "aws:codedeploy/DeploymentGroupAlarmConfiguration:DeploymentGroupAlarmConfiguration": { "properties": { "alarms": { @@ -35941,14 +35977,14 @@ }, "not": { "$ref": "#/types/aws:costexplorer/AnomalySubscriptionThresholdExpressionNot:AnomalySubscriptionThresholdExpressionNot", - "description": "Return results that match both Dimension object.\n" + "description": "Return results that do not match the Dimension object.\n" }, "ors": { "type": "array", "items": { "$ref": "#/types/aws:costexplorer/AnomalySubscriptionThresholdExpressionOr:AnomalySubscriptionThresholdExpressionOr" }, - "description": "Return results that match both Dimension object.\n" + "description": "Return results that match either Dimension object.\n" }, "tags": { "$ref": "#/types/aws:costexplorer/AnomalySubscriptionThresholdExpressionTags:AnomalySubscriptionThresholdExpressionTags", @@ -78592,7 +78628,14 @@ "willReplaceOnChanges": true } }, - "type": "object" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "noDevice" + ] + } + } }, "aws:imagebuilder/ContainerRecipeInstanceConfigurationBlockDeviceMappingEbs:ContainerRecipeInstanceConfigurationBlockDeviceMappingEbs": { "properties": { @@ -79161,7 +79204,14 @@ "willReplaceOnChanges": true } }, - "type": "object" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "noDevice" + ] + } + } }, "aws:imagebuilder/ImageRecipeBlockDeviceMappingEbs:ImageRecipeBlockDeviceMappingEbs": { "properties": { @@ -79351,6 +79401,193 @@ "s3BucketName" ] }, + "aws:imagebuilder/LifecyclePolicyPolicyDetail:LifecyclePolicyPolicyDetail": { + "properties": { + "action": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailAction:LifecyclePolicyPolicyDetailAction", + "description": "Configuration details for the policy action.\n" + }, + "exclusionRules": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRules:LifecyclePolicyPolicyDetailExclusionRules", + "description": "Additional rules to specify resources that should be exempt from policy actions.\n" + }, + "filter": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailFilter:LifecyclePolicyPolicyDetailFilter", + "description": "Specifies the resources that the lifecycle policy applies to.\n\nThe following arguments are optional:\n" + } + }, + "type": "object" + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailAction:LifecyclePolicyPolicyDetailAction": { + "properties": { + "includeResources": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailActionIncludeResources:LifecyclePolicyPolicyDetailActionIncludeResources", + "description": "Specifies the resources that the lifecycle policy applies to. Detailed below.\n" + }, + "type": { + "type": "string", + "description": "Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`.\n\nThe following arguments are optional:\n" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailActionIncludeResources:LifecyclePolicyPolicyDetailActionIncludeResources": { + "properties": { + "amis": { + "type": "boolean", + "description": "Specifies whether the lifecycle action should apply to distributed AMIs.\n" + }, + "containers": { + "type": "boolean", + "description": "Specifies whether the lifecycle action should apply to distributed containers.\n" + }, + "snapshots": { + "type": "boolean", + "description": "Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "amis", + "containers", + "snapshots" + ] + } + } + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRules:LifecyclePolicyPolicyDetailExclusionRules": { + "properties": { + "amis": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRulesAmis:LifecyclePolicyPolicyDetailExclusionRulesAmis", + "description": "Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below.\n" + }, + "tagMap": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them.\n" + } + }, + "type": "object" + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRulesAmis:LifecyclePolicyPolicyDetailExclusionRulesAmis": { + "properties": { + "isPublic": { + "type": "boolean", + "description": "Configures whether public AMIs are excluded from the lifecycle action.\n" + }, + "lastLaunched": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched:LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched", + "description": "Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below.\n" + }, + "regions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Configures AWS Regions that are excluded from the lifecycle action.\n" + }, + "sharedAccounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Specifies AWS accounts whose resources are excluded from the lifecycle action.\n" + }, + "tagMap": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Lists tags that should be excluded from lifecycle actions for the AMIs that have them.\n" + } + }, + "type": "object" + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched:LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched": { + "properties": { + "unit": { + "type": "string", + "description": "Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`.\n" + }, + "value": { + "type": "integer", + "description": "The integer number of units for the time period. For example 6 (months).\n" + } + }, + "type": "object", + "required": [ + "unit", + "value" + ] + }, + "aws:imagebuilder/LifecyclePolicyPolicyDetailFilter:LifecyclePolicyPolicyDetailFilter": { + "properties": { + "retainAtLeast": { + "type": "integer", + "description": "For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted.\n" + }, + "type": { + "type": "string", + "description": "Filter resources based on either age or count. Valid values: `AGE` or `COUNT`.\n" + }, + "unit": { + "type": "string", + "description": "Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`.\n" + }, + "value": { + "type": "integer", + "description": "The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs.\n\nThe following arguments are optional:\n" + } + }, + "type": "object", + "required": [ + "type", + "value" + ] + }, + "aws:imagebuilder/LifecyclePolicyResourceSelection:LifecyclePolicyResourceSelection": { + "properties": { + "recipes": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyResourceSelectionRecipe:LifecyclePolicyResourceSelectionRecipe" + }, + "description": "A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below.\n" + }, + "tagMap": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to.\n" + } + }, + "type": "object" + }, + "aws:imagebuilder/LifecyclePolicyResourceSelectionRecipe:LifecyclePolicyResourceSelectionRecipe": { + "properties": { + "name": { + "type": "string", + "description": "The name of an Image Builder recipe that the lifecycle policy uses for resource selection.\n" + }, + "semanticVersion": { + "type": "string", + "description": "The version of the Image Builder recipe specified by the name field.\n" + } + }, + "type": "object", + "required": [ + "name", + "semanticVersion" + ] + }, "aws:imagebuilder/getComponentsFilter:getComponentsFilter": { "properties": { "name": { @@ -85964,7 +86201,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -85976,7 +86213,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -86471,7 +86708,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -86483,7 +86720,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -86680,7 +86917,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -86692,7 +86929,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -86834,6 +87071,238 @@ } } }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfiguration:FirehoseDeliveryStreamIcebergConfiguration": { + "properties": { + "bufferingInterval": { + "type": "integer", + "description": "Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300.\n" + }, + "bufferingSize": { + "type": "integer", + "description": "Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5.\n" + }, + "catalogArn": { + "type": "string", + "description": "Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog`\n", + "willReplaceOnChanges": true + }, + "cloudwatchLoggingOptions": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions", + "description": "The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details.\n" + }, + "destinationTableConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration:FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration" + }, + "description": "Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details.\n", + "willReplaceOnChanges": true + }, + "processingConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration:FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration", + "description": "The data processing configuration. See `processing_configuration` block below for details.\n" + }, + "retryDuration": { + "type": "integer", + "description": "The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination.\n" + }, + "roleArn": { + "type": "string", + "description": "The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables.\n" + }, + "s3BackupMode": { + "type": "string" + }, + "s3Configuration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationS3Configuration:FirehoseDeliveryStreamIcebergConfigurationS3Configuration", + "description": "The S3 Configuration. See `s3_configuration` block below for details.\n" + } + }, + "type": "object", + "required": [ + "catalogArn", + "roleArn", + "s3Configuration" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "catalogArn", + "cloudwatchLoggingOptions", + "roleArn", + "s3Configuration" + ] + } + } + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables the logging. Defaults to `false`.\n" + }, + "logGroupName": { + "type": "string", + "description": "The CloudWatch group name for logging. This value is required if `enabled` is true.\n" + }, + "logStreamName": { + "type": "string", + "description": "The CloudWatch log stream name for logging. This value is required if `enabled` is true.\n" + } + }, + "type": "object" + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration:FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration": { + "properties": { + "databaseName": { + "type": "string", + "description": "The name of the Apache Iceberg database.\n" + }, + "s3ErrorOutputPrefix": { + "type": "string", + "description": "The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination.\n" + }, + "tableName": { + "type": "string", + "description": "The name of the Apache Iceberg Table.\n" + }, + "uniqueKeys": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table.\n" + } + }, + "type": "object", + "required": [ + "databaseName", + "tableName" + ] + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration:FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables data processing.\n" + }, + "processors": { + "type": "array", + "items": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor:FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor" + }, + "description": "Specifies the data processors as multiple blocks. See `processors` block below for details.\n" + } + }, + "type": "object" + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor:FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor": { + "properties": { + "parameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter:FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter" + }, + "description": "Specifies the processor parameters as multiple blocks. See `parameters` block below for details.\n" + }, + "type": { + "type": "string", + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter:FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter": { + "properties": { + "parameterName": { + "type": "string", + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" + }, + "parameterValue": { + "type": "string", + "description": "Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well.\n\n\u003e **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values.\n" + } + }, + "type": "object", + "required": [ + "parameterName", + "parameterValue" + ] + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationS3Configuration:FirehoseDeliveryStreamIcebergConfigurationS3Configuration": { + "properties": { + "bucketArn": { + "type": "string", + "description": "The ARN of the S3 bucket\n" + }, + "bufferingInterval": { + "type": "integer", + "description": "Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300.\n" + }, + "bufferingSize": { + "type": "integer", + "description": "Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5.\nWe recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher.\n" + }, + "cloudwatchLoggingOptions": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions", + "description": "The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details.\n" + }, + "compressionFormat": { + "type": "string", + "description": "The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, \u0026 `HADOOP_SNAPPY`.\n" + }, + "errorOutputPrefix": { + "type": "string", + "description": "Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).\n" + }, + "kmsKeyArn": { + "type": "string", + "description": "Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will\nbe used.\n" + }, + "prefix": { + "type": "string", + "description": "The \"YYYY/MM/DD/HH\" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket\n" + }, + "roleArn": { + "type": "string", + "description": "The ARN of the AWS credentials.\n" + } + }, + "type": "object", + "required": [ + "bucketArn", + "roleArn" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "bucketArn", + "cloudwatchLoggingOptions", + "roleArn" + ] + } + } + }, + "aws:kinesis/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions:FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Enables or disables the logging. Defaults to `false`.\n" + }, + "logGroupName": { + "type": "string", + "description": "The CloudWatch group name for logging. This value is required if `enabled` is true.\n" + }, + "logStreamName": { + "type": "string", + "description": "The CloudWatch log stream name for logging. This value is required if `enabled` is true.\n" + } + }, + "type": "object" + }, "aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration": { "properties": { "kinesisStreamArn": { @@ -87035,7 +87504,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -87047,7 +87516,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -87287,7 +87756,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -87299,7 +87768,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -87550,7 +88019,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -87562,7 +88031,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -87912,7 +88381,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -87924,7 +88393,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -88168,7 +88637,7 @@ }, "type": { "type": "string", - "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work.\n" } }, "type": "object", @@ -88180,7 +88649,7 @@ "properties": { "parameterName": { "type": "string", - "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work.\n" + "description": "Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work.\n" }, "parameterValue": { "type": "string", @@ -133821,6 +134290,108 @@ }, "type": "object" }, + "aws:resiliencehub/ResiliencyPolicyPolicy:ResiliencyPolicyPolicy": { + "properties": { + "az": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicyAz:ResiliencyPolicyPolicyAz", + "description": "Specifies Availability Zone failure policy. See `policy.az`\n" + }, + "hardware": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicyHardware:ResiliencyPolicyPolicyHardware", + "description": "Specifies Infrastructure failure policy. See `policy.hardware`\n" + }, + "region": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicyRegion:ResiliencyPolicyPolicyRegion", + "description": "Specifies Region failure policy. `policy.region`\n" + }, + "software": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicySoftware:ResiliencyPolicyPolicySoftware", + "description": "Specifies Application failure policy. See `policy.software`\n\nThe following arguments are optional:\n" + } + }, + "type": "object" + }, + "aws:resiliencehub/ResiliencyPolicyPolicyAz:ResiliencyPolicyPolicyAz": { + "properties": { + "rpo": { + "type": "string", + "description": "Recovery Point Objective (RPO) as a Go duration.\n" + }, + "rto": { + "type": "string", + "description": "Recovery Time Objective (RTO) as a Go duration.\n" + } + }, + "type": "object", + "required": [ + "rpo", + "rto" + ] + }, + "aws:resiliencehub/ResiliencyPolicyPolicyHardware:ResiliencyPolicyPolicyHardware": { + "properties": { + "rpo": { + "type": "string", + "description": "Recovery Point Objective (RPO) as a Go duration.\n" + }, + "rto": { + "type": "string", + "description": "Recovery Time Objective (RTO) as a Go duration.\n" + } + }, + "type": "object", + "required": [ + "rpo", + "rto" + ] + }, + "aws:resiliencehub/ResiliencyPolicyPolicyRegion:ResiliencyPolicyPolicyRegion": { + "properties": { + "rpo": { + "type": "string", + "description": "Recovery Point Objective (RPO) as a Go duration.\n" + }, + "rto": { + "type": "string", + "description": "Recovery Time Objective (RTO) as a Go duration.\n" + } + }, + "type": "object" + }, + "aws:resiliencehub/ResiliencyPolicyPolicySoftware:ResiliencyPolicyPolicySoftware": { + "properties": { + "rpo": { + "type": "string", + "description": "Recovery Point Objective (RPO) as a Go duration.\n" + }, + "rto": { + "type": "string", + "description": "Recovery Time Objective (RTO) as a Go duration.\n" + } + }, + "type": "object", + "required": [ + "rpo", + "rto" + ] + }, + "aws:resiliencehub/ResiliencyPolicyTimeouts:ResiliencyPolicyTimeouts": { + "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:resourceexplorer/IndexTimeouts:IndexTimeouts": { "properties": { "create": { @@ -134174,9 +134745,9 @@ "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" }, - "read": { + "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). Read operations occur during any refresh or planning operation when refresh is enabled.\n" + "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" @@ -139274,6 +139845,14 @@ }, "aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettings:DomainDefaultSpaceSettingsJupyterLabAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement:DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement", + "description": "Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below.\n" + }, + "builtInLifecycleConfigArn": { + "type": "string", + "description": "The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration.\n" + }, "codeRepositories": { "type": "array", "items": { @@ -139292,6 +139871,10 @@ "$ref": "#/types/aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec:DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below.\n" }, + "emrSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings:DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings", + "description": "The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below.\n" + }, "lifecycleConfigArns": { "type": "array", "items": { @@ -139302,6 +139885,36 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement:DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. see `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + }, + "lifecycleManagement": { + "type": "string", + "description": "Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`.\n" + }, + "maxIdleTimeoutInMinutes": { + "type": "integer", + "description": "The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + }, + "minIdleTimeoutInMinutes": { + "type": "integer", + "description": "The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository:DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository": { "properties": { "repositoryUrl": { @@ -139360,6 +139973,25 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings:DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings": { + "properties": { + "assumableRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain.\n" + }, + "executionRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultSpaceSettingsJupyterServerAppSettings:DomainDefaultSpaceSettingsJupyterServerAppSettings": { "properties": { "codeRepositories": { @@ -139517,6 +140149,10 @@ }, "aws:sagemaker/DomainDefaultUserSettings:DomainDefaultUserSettings": { "properties": { + "autoMountHomeEfs": { + "type": "string", + "description": "Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`.\n" + }, "canvasAppSettings": { "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettings:DomainDefaultUserSettingsCanvasAppSettings", "description": "The Canvas app settings. See `canvas_app_settings` Block below.\n" @@ -139599,6 +140235,7 @@ "language": { "nodejs": { "requiredOutputs": [ + "autoMountHomeEfs", "defaultLandingUri", "executionRole", "spaceStorageSettings", @@ -139613,6 +140250,10 @@ "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings:DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings", "description": "The model deployment settings for the SageMaker Canvas application. See `direct_deploy_settings` Block below.\n" }, + "emrServerlessSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings:DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings", + "description": "The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below.\n" + }, "generativeAiSettings": { "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings:DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings" }, @@ -139651,6 +140292,19 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings:DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings": { + "properties": { + "executionRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless.\n" + }, + "status": { + "type": "string", + "description": "Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings:DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings": { "properties": { "amazonBedrockRoleArn": { @@ -139729,6 +140383,14 @@ }, "aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettings:DomainDefaultUserSettingsCodeEditorAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement:DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement", + "description": "Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below.\n" + }, + "builtInLifecycleConfigArn": { + "type": "string", + "description": "The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration.\n" + }, "customImages": { "type": "array", "items": { @@ -139750,6 +140412,36 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement:DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. see `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + }, + "lifecycleManagement": { + "type": "string", + "description": "Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`.\n" + }, + "maxIdleTimeoutInMinutes": { + "type": "integer", + "description": "The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + }, + "minIdleTimeoutInMinutes": { + "type": "integer", + "description": "The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage:DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage": { "properties": { "appImageConfigName": { @@ -139841,6 +140533,14 @@ }, "aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettings:DomainDefaultUserSettingsJupyterLabAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement:DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement", + "description": "Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below.\n" + }, + "builtInLifecycleConfigArn": { + "type": "string", + "description": "The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration.\n" + }, "codeRepositories": { "type": "array", "items": { @@ -139859,6 +140559,10 @@ "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec:DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below.\n" }, + "emrSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings:DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings", + "description": "The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below.\n" + }, "lifecycleConfigArns": { "type": "array", "items": { @@ -139869,6 +140573,36 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement:DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. see `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + }, + "lifecycleManagement": { + "type": "string", + "description": "Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`.\n" + }, + "maxIdleTimeoutInMinutes": { + "type": "integer", + "description": "The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + }, + "minIdleTimeoutInMinutes": { + "type": "integer", + "description": "The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository:DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository": { "properties": { "repositoryUrl": { @@ -139927,6 +140661,25 @@ }, "type": "object" }, + "aws:sagemaker/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings:DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings": { + "properties": { + "assumableRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain.\n" + }, + "executionRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements.\n" + } + }, + "type": "object" + }, "aws:sagemaker/DomainDefaultUserSettingsJupyterServerAppSettings:DomainDefaultUserSettingsJupyterServerAppSettings": { "properties": { "codeRepositories": { @@ -140183,6 +140936,13 @@ }, "description": "The Applications supported in Studio that are hidden from the Studio left navigation pane.\n" }, + "hiddenInstanceTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The instance types you are hiding from the Studio user interface.\n" + }, "hiddenMlTools": { "type": "array", "items": { @@ -141003,6 +141763,14 @@ }, "aws:sagemaker/FeatureGroupFeatureDefinition:FeatureGroupFeatureDefinition": { "properties": { + "collectionConfig": { + "$ref": "#/types/aws:sagemaker/FeatureGroupFeatureDefinitionCollectionConfig:FeatureGroupFeatureDefinitionCollectionConfig", + "willReplaceOnChanges": true + }, + "collectionType": { + "type": "string", + "willReplaceOnChanges": true + }, "featureName": { "type": "string", "description": "The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`.\n", @@ -141016,6 +141784,24 @@ }, "type": "object" }, + "aws:sagemaker/FeatureGroupFeatureDefinitionCollectionConfig:FeatureGroupFeatureDefinitionCollectionConfig": { + "properties": { + "vectorConfig": { + "$ref": "#/types/aws:sagemaker/FeatureGroupFeatureDefinitionCollectionConfigVectorConfig:FeatureGroupFeatureDefinitionCollectionConfigVectorConfig", + "willReplaceOnChanges": true + } + }, + "type": "object" + }, + "aws:sagemaker/FeatureGroupFeatureDefinitionCollectionConfigVectorConfig:FeatureGroupFeatureDefinitionCollectionConfigVectorConfig": { + "properties": { + "dimension": { + "type": "integer", + "willReplaceOnChanges": true + } + }, + "type": "object" + }, "aws:sagemaker/FeatureGroupOfflineStoreConfig:FeatureGroupOfflineStoreConfig": { "properties": { "dataCatalogConfig": { @@ -141159,6 +141945,27 @@ }, "type": "object" }, + "aws:sagemaker/FeatureGroupThroughputConfig:FeatureGroupThroughputConfig": { + "properties": { + "provisionedReadCapacityUnits": { + "type": "integer" + }, + "provisionedWriteCapacityUnits": { + "type": "integer" + }, + "throughputMode": { + "type": "string" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "throughputMode" + ] + } + } + }, "aws:sagemaker/FlowDefinitionHumanLoopActivationConfig:FlowDefinitionHumanLoopActivationConfig": { "properties": { "humanLoopActivationConditionsConfig": { @@ -141302,6 +142109,16 @@ "s3OutputPath" ] }, + "aws:sagemaker/HubS3StorageConfig:HubS3StorageConfig": { + "properties": { + "s3OutputPath": { + "type": "string", + "description": "The Amazon S3 bucket prefix for hosting hub content.interface.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + }, "aws:sagemaker/HumanTaskUIUiTemplate:HumanTaskUIUiTemplate": { "properties": { "content": { @@ -141883,6 +142700,10 @@ }, "aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettings:SpaceSpaceSettingsCodeEditorAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement:SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement", + "description": "Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below.\n" + }, "defaultResourceSpec": { "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec:SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below.\n" @@ -141893,6 +142714,24 @@ "defaultResourceSpec" ] }, + "aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement:SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. See `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec:SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec": { "properties": { "instanceType": { @@ -141944,6 +142783,10 @@ }, "aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettings:SpaceSpaceSettingsJupyterLabAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement:SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement", + "description": "Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below.\n" + }, "codeRepositories": { "type": "array", "items": { @@ -141961,6 +142804,24 @@ "defaultResourceSpec" ] }, + "aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement:SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. See `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository:SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository": { "properties": { "repositoryUrl": { @@ -142171,6 +143032,10 @@ }, "aws:sagemaker/UserProfileUserSettings:UserProfileUserSettings": { "properties": { + "autoMountHomeEfs": { + "type": "string", + "description": "Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`.\n" + }, "canvasAppSettings": { "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCanvasAppSettings:UserProfileUserSettingsCanvasAppSettings", "description": "The Canvas app settings. See Canvas App Settings below.\n" @@ -142253,6 +143118,7 @@ "language": { "nodejs": { "requiredOutputs": [ + "autoMountHomeEfs", "executionRole", "spaceStorageSettings", "studioWebPortal" @@ -142266,6 +143132,10 @@ "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings:UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings", "description": "The model deployment settings for the SageMaker Canvas application. See Direct Deploy Settings below.\n" }, + "emrServerlessSettings": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings:UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings", + "description": "The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below.\n" + }, "generativeAiSettings": { "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings:UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings" }, @@ -142304,6 +143174,19 @@ }, "type": "object" }, + "aws:sagemaker/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings:UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings": { + "properties": { + "executionRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless.\n" + }, + "status": { + "type": "string", + "description": "Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings:UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings": { "properties": { "amazonBedrockRoleArn": { @@ -142382,6 +143265,14 @@ }, "aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettings:UserProfileUserSettingsCodeEditorAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement:UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement", + "description": "Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below.\n" + }, + "builtInLifecycleConfigArn": { + "type": "string", + "description": "The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration.\n" + }, "customImages": { "type": "array", "items": { @@ -142403,6 +143294,36 @@ }, "type": "object" }, + "aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement:UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. see `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings:UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + }, + "lifecycleManagement": { + "type": "string", + "description": "Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`.\n" + }, + "maxIdleTimeoutInMinutes": { + "type": "integer", + "description": "The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + }, + "minIdleTimeoutInMinutes": { + "type": "integer", + "description": "The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/UserProfileUserSettingsCodeEditorAppSettingsCustomImage:UserProfileUserSettingsCodeEditorAppSettingsCustomImage": { "properties": { "appImageConfigName": { @@ -142496,6 +143417,14 @@ }, "aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettings:UserProfileUserSettingsJupyterLabAppSettings": { "properties": { + "appLifecycleManagement": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement:UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement", + "description": "Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below.\n" + }, + "builtInLifecycleConfigArn": { + "type": "string", + "description": "The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration.\n" + }, "codeRepositories": { "type": "array", "items": { @@ -142513,6 +143442,10 @@ "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec:UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec", "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below.\n" }, + "emrSettings": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsEmrSettings:UserProfileUserSettingsJupyterLabAppSettingsEmrSettings", + "description": "The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below.\n" + }, "lifecycleConfigArns": { "type": "array", "items": { @@ -142523,6 +143456,36 @@ }, "type": "object" }, + "aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement:UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement": { + "properties": { + "idleSettings": { + "$ref": "#/types/aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings", + "description": "Settings related to idle shutdown of Studio applications. see `idle_settings` Block below.\n" + } + }, + "type": "object" + }, + "aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings:UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "description": "The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`.\n" + }, + "lifecycleManagement": { + "type": "string", + "description": "Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`.\n" + }, + "maxIdleTimeoutInMinutes": { + "type": "integer", + "description": "The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + }, + "minIdleTimeoutInMinutes": { + "type": "integer", + "description": "The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`.\n" + } + }, + "type": "object" + }, "aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsCodeRepository:UserProfileUserSettingsJupyterLabAppSettingsCodeRepository": { "properties": { "repositoryUrl": { @@ -142581,6 +143544,25 @@ }, "type": "object" }, + "aws:sagemaker/UserProfileUserSettingsJupyterLabAppSettingsEmrSettings:UserProfileUserSettingsJupyterLabAppSettingsEmrSettings": { + "properties": { + "assumableRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain.\n" + }, + "executionRoleArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements.\n" + } + }, + "type": "object" + }, "aws:sagemaker/UserProfileUserSettingsJupyterServerAppSettings:UserProfileUserSettingsJupyterServerAppSettings": { "properties": { "codeRepositories": { @@ -142837,6 +143819,13 @@ }, "description": "The Applications supported in Studio that are hidden from the Studio left navigation pane.\n" }, + "hiddenInstanceTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The instance types you are hiding from the Studio user interface.\n" + }, "hiddenMlTools": { "type": "array", "items": { @@ -150566,6 +151555,63 @@ } } }, + "aws:ssm/getPatchBaselinesBaselineIdentity:getPatchBaselinesBaselineIdentity": { + "properties": { + "baselineDescription": { + "type": "string", + "description": "Description of the patch baseline.\n" + }, + "baselineId": { + "type": "string", + "description": "ID of the patch baseline.\n" + }, + "baselineName": { + "type": "string", + "description": "Name of the patch baseline.\n" + }, + "defaultBaseline": { + "type": "boolean", + "description": "Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.\n" + }, + "operatingSystem": { + "type": "string", + "description": "Operating system the patch baseline applies to.\n" + } + }, + "type": "object", + "required": [ + "baselineDescription", + "baselineId", + "baselineName", + "defaultBaseline", + "operatingSystem" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:ssm/getPatchBaselinesFilter:getPatchBaselinesFilter": { + "properties": { + "key": { + "type": "string", + "description": "Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values.\n" + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values.\n" + } + }, + "type": "object", + "required": [ + "key", + "values" + ] + }, "aws:ssmcontacts/ContactChannelDeliveryAddress:ContactChannelDeliveryAddress": { "properties": { "simpleAddress": { @@ -170263,6 +171309,10 @@ }, "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." + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "required": [ @@ -170317,6 +171367,10 @@ "type": "string" }, "description": "A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "requiredInputs": [ @@ -170380,6 +171434,10 @@ }, "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." + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "type": "object" @@ -170655,6 +171713,10 @@ "type": "boolean", "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" }, + "enableZonalShift": { + "type": "boolean", + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" @@ -170807,6 +171869,10 @@ "type": "boolean", "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" }, + "enableZonalShift": { + "type": "boolean", + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" @@ -170946,6 +172012,10 @@ "type": "boolean", "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" }, + "enableZonalShift": { + "type": "boolean", + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" @@ -205615,6 +206685,10 @@ "trafficRoutingConfig": { "$ref": "#/types/aws:codedeploy/DeploymentConfigTrafficRoutingConfig:DeploymentConfigTrafficRoutingConfig", "description": "A traffic_routing_config block. Traffic Routing Config is documented below.\n" + }, + "zonalConfig": { + "$ref": "#/types/aws:codedeploy/DeploymentConfigZonalConfig:DeploymentConfigZonalConfig", + "description": "A zonal_config block. Zonal Config is documented below.\n" } }, "required": [ @@ -205642,6 +206716,11 @@ "$ref": "#/types/aws:codedeploy/DeploymentConfigTrafficRoutingConfig:DeploymentConfigTrafficRoutingConfig", "description": "A traffic_routing_config block. Traffic Routing Config is documented below.\n", "willReplaceOnChanges": true + }, + "zonalConfig": { + "$ref": "#/types/aws:codedeploy/DeploymentConfigZonalConfig:DeploymentConfigZonalConfig", + "description": "A zonal_config block. Zonal Config is documented below.\n", + "willReplaceOnChanges": true } }, "stateInputs": { @@ -205674,6 +206753,11 @@ "$ref": "#/types/aws:codedeploy/DeploymentConfigTrafficRoutingConfig:DeploymentConfigTrafficRoutingConfig", "description": "A traffic_routing_config block. Traffic Routing Config is documented below.\n", "willReplaceOnChanges": true + }, + "zonalConfig": { + "$ref": "#/types/aws:codedeploy/DeploymentConfigZonalConfig:DeploymentConfigZonalConfig", + "description": "A zonal_config block. Zonal Config is documented below.\n", + "willReplaceOnChanges": true } }, "type": "object" @@ -228190,22 +229274,32 @@ } }, "aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination": { - "description": "Enables a [Kinesis streaming destination](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html) for data replication of a DynamoDB table.\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.dynamodb.Table(\"example\", {\n name: \"orders\",\n hashKey: \"id\",\n attributes: [{\n name: \"id\",\n type: \"S\",\n }],\n});\nconst exampleStream = new aws.kinesis.Stream(\"example\", {\n name: \"order_item_changes\",\n shardCount: 1,\n});\nconst exampleKinesisStreamingDestination = new aws.dynamodb.KinesisStreamingDestination(\"example\", {\n streamArn: exampleStream.arn,\n tableName: example.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.dynamodb.Table(\"example\",\n name=\"orders\",\n hash_key=\"id\",\n attributes=[{\n \"name\": \"id\",\n \"type\": \"S\",\n }])\nexample_stream = aws.kinesis.Stream(\"example\",\n name=\"order_item_changes\",\n shard_count=1)\nexample_kinesis_streaming_destination = aws.dynamodb.KinesisStreamingDestination(\"example\",\n stream_arn=example_stream.arn,\n table_name=example.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.DynamoDB.Table(\"example\", new()\n {\n Name = \"orders\",\n HashKey = \"id\",\n Attributes = new[]\n {\n new Aws.DynamoDB.Inputs.TableAttributeArgs\n {\n Name = \"id\",\n Type = \"S\",\n },\n },\n });\n\n var exampleStream = new Aws.Kinesis.Stream(\"example\", new()\n {\n Name = \"order_item_changes\",\n ShardCount = 1,\n });\n\n var exampleKinesisStreamingDestination = new Aws.DynamoDB.KinesisStreamingDestination(\"example\", new()\n {\n StreamArn = exampleStream.Arn,\n TableName = example.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb\"\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\texample, err := dynamodb.NewTable(ctx, \"example\", \u0026dynamodb.TableArgs{\n\t\t\tName: pulumi.String(\"orders\"),\n\t\t\tHashKey: pulumi.String(\"id\"),\n\t\t\tAttributes: dynamodb.TableAttributeArray{\n\t\t\t\t\u0026dynamodb.TableAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"id\"),\n\t\t\t\t\tType: pulumi.String(\"S\"),\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\texampleStream, err := kinesis.NewStream(ctx, \"example\", \u0026kinesis.StreamArgs{\n\t\t\tName: pulumi.String(\"order_item_changes\"),\n\t\t\tShardCount: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dynamodb.NewKinesisStreamingDestination(ctx, \"example\", \u0026dynamodb.KinesisStreamingDestinationArgs{\n\t\t\tStreamArn: exampleStream.Arn,\n\t\t\tTableName: example.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.dynamodb.Table;\nimport com.pulumi.aws.dynamodb.TableArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;\nimport com.pulumi.aws.kinesis.Stream;\nimport com.pulumi.aws.kinesis.StreamArgs;\nimport com.pulumi.aws.dynamodb.KinesisStreamingDestination;\nimport com.pulumi.aws.dynamodb.KinesisStreamingDestinationArgs;\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 Table(\"example\", TableArgs.builder()\n .name(\"orders\")\n .hashKey(\"id\")\n .attributes(TableAttributeArgs.builder()\n .name(\"id\")\n .type(\"S\")\n .build())\n .build());\n\n var exampleStream = new Stream(\"exampleStream\", StreamArgs.builder()\n .name(\"order_item_changes\")\n .shardCount(1)\n .build());\n\n var exampleKinesisStreamingDestination = new KinesisStreamingDestination(\"exampleKinesisStreamingDestination\", KinesisStreamingDestinationArgs.builder()\n .streamArn(exampleStream.arn())\n .tableName(example.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:dynamodb:Table\n properties:\n name: orders\n hashKey: id\n attributes:\n - name: id\n type: S\n exampleStream:\n type: aws:kinesis:Stream\n name: example\n properties:\n name: order_item_changes\n shardCount: 1\n exampleKinesisStreamingDestination:\n type: aws:dynamodb:KinesisStreamingDestination\n name: example\n properties:\n streamArn: ${exampleStream.arn}\n tableName: ${example.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DynamoDB Kinesis Streaming Destinations using the `table_name` and `stream_arn` separated by `,`. For example:\n\n```sh\n$ pulumi import aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination example example,arn:aws:kinesis:us-east-1:111122223333:exampleStreamName\n```\n", + "description": "Enables a [Kinesis streaming destination](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html) for data replication of a DynamoDB table.\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.dynamodb.Table(\"example\", {\n name: \"orders\",\n hashKey: \"id\",\n attributes: [{\n name: \"id\",\n type: \"S\",\n }],\n});\nconst exampleStream = new aws.kinesis.Stream(\"example\", {\n name: \"order_item_changes\",\n shardCount: 1,\n});\nconst exampleKinesisStreamingDestination = new aws.dynamodb.KinesisStreamingDestination(\"example\", {\n streamArn: exampleStream.arn,\n tableName: example.name,\n approximateCreationDateTimePrecision: \"MICROSECOND\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.dynamodb.Table(\"example\",\n name=\"orders\",\n hash_key=\"id\",\n attributes=[{\n \"name\": \"id\",\n \"type\": \"S\",\n }])\nexample_stream = aws.kinesis.Stream(\"example\",\n name=\"order_item_changes\",\n shard_count=1)\nexample_kinesis_streaming_destination = aws.dynamodb.KinesisStreamingDestination(\"example\",\n stream_arn=example_stream.arn,\n table_name=example.name,\n approximate_creation_date_time_precision=\"MICROSECOND\")\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.DynamoDB.Table(\"example\", new()\n {\n Name = \"orders\",\n HashKey = \"id\",\n Attributes = new[]\n {\n new Aws.DynamoDB.Inputs.TableAttributeArgs\n {\n Name = \"id\",\n Type = \"S\",\n },\n },\n });\n\n var exampleStream = new Aws.Kinesis.Stream(\"example\", new()\n {\n Name = \"order_item_changes\",\n ShardCount = 1,\n });\n\n var exampleKinesisStreamingDestination = new Aws.DynamoDB.KinesisStreamingDestination(\"example\", new()\n {\n StreamArn = exampleStream.Arn,\n TableName = example.Name,\n ApproximateCreationDateTimePrecision = \"MICROSECOND\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb\"\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\texample, err := dynamodb.NewTable(ctx, \"example\", \u0026dynamodb.TableArgs{\n\t\t\tName: pulumi.String(\"orders\"),\n\t\t\tHashKey: pulumi.String(\"id\"),\n\t\t\tAttributes: dynamodb.TableAttributeArray{\n\t\t\t\t\u0026dynamodb.TableAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"id\"),\n\t\t\t\t\tType: pulumi.String(\"S\"),\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\texampleStream, err := kinesis.NewStream(ctx, \"example\", \u0026kinesis.StreamArgs{\n\t\t\tName: pulumi.String(\"order_item_changes\"),\n\t\t\tShardCount: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dynamodb.NewKinesisStreamingDestination(ctx, \"example\", \u0026dynamodb.KinesisStreamingDestinationArgs{\n\t\t\tStreamArn: exampleStream.Arn,\n\t\t\tTableName: example.Name,\n\t\t\tApproximateCreationDateTimePrecision: pulumi.String(\"MICROSECOND\"),\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.dynamodb.Table;\nimport com.pulumi.aws.dynamodb.TableArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;\nimport com.pulumi.aws.kinesis.Stream;\nimport com.pulumi.aws.kinesis.StreamArgs;\nimport com.pulumi.aws.dynamodb.KinesisStreamingDestination;\nimport com.pulumi.aws.dynamodb.KinesisStreamingDestinationArgs;\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 Table(\"example\", TableArgs.builder()\n .name(\"orders\")\n .hashKey(\"id\")\n .attributes(TableAttributeArgs.builder()\n .name(\"id\")\n .type(\"S\")\n .build())\n .build());\n\n var exampleStream = new Stream(\"exampleStream\", StreamArgs.builder()\n .name(\"order_item_changes\")\n .shardCount(1)\n .build());\n\n var exampleKinesisStreamingDestination = new KinesisStreamingDestination(\"exampleKinesisStreamingDestination\", KinesisStreamingDestinationArgs.builder()\n .streamArn(exampleStream.arn())\n .tableName(example.name())\n .approximateCreationDateTimePrecision(\"MICROSECOND\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:dynamodb:Table\n properties:\n name: orders\n hashKey: id\n attributes:\n - name: id\n type: S\n exampleStream:\n type: aws:kinesis:Stream\n name: example\n properties:\n name: order_item_changes\n shardCount: 1\n exampleKinesisStreamingDestination:\n type: aws:dynamodb:KinesisStreamingDestination\n name: example\n properties:\n streamArn: ${exampleStream.arn}\n tableName: ${example.name}\n approximateCreationDateTimePrecision: MICROSECOND\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DynamoDB Kinesis Streaming Destinations using the `table_name` and `stream_arn` separated by `,`. For example:\n\n```sh\n$ pulumi import aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination example example,arn:aws:kinesis:us-east-1:111122223333:exampleStreamName\n```\n", "properties": { + "approximateCreationDateTimePrecision": { + "type": "string", + "description": "Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`.\n" + }, "streamArn": { "type": "string", "description": "The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table.\n" }, "tableName": { "type": "string", - "description": "The name of the DynamoDB table. There\ncan only be one Kinesis streaming destination for a given DynamoDB table.\n" + "description": "The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table.\n" } }, "required": [ + "approximateCreationDateTimePrecision", "streamArn", "tableName" ], "inputProperties": { + "approximateCreationDateTimePrecision": { + "type": "string", + "description": "Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`.\n", + "willReplaceOnChanges": true + }, "streamArn": { "type": "string", "description": "The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table.\n", @@ -228213,7 +229307,7 @@ }, "tableName": { "type": "string", - "description": "The name of the DynamoDB table. There\ncan only be one Kinesis streaming destination for a given DynamoDB table.\n", + "description": "The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table.\n", "willReplaceOnChanges": true } }, @@ -228224,6 +229318,11 @@ "stateInputs": { "description": "Input properties used for looking up and filtering KinesisStreamingDestination resources.\n", "properties": { + "approximateCreationDateTimePrecision": { + "type": "string", + "description": "Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`.\n", + "willReplaceOnChanges": true + }, "streamArn": { "type": "string", "description": "The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table.\n", @@ -228231,7 +229330,7 @@ }, "tableName": { "type": "string", - "description": "The name of the DynamoDB table. There\ncan only be one Kinesis streaming destination for a given DynamoDB table.\n", + "description": "The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table.\n", "willReplaceOnChanges": true } }, @@ -254710,7 +255809,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n" + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`.\n" }, "engineVersion": { "type": "string", @@ -254881,7 +255980,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n", + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`.\n", "willReplaceOnChanges": true }, "engineVersion": { @@ -255044,7 +256143,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n", + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`.\n", "willReplaceOnChanges": true }, "engineVersion": { @@ -255177,7 +256276,7 @@ } }, "aws:elasticache/globalReplicationGroup:GlobalReplicationGroup": { - "description": "Provides an ElastiCache Global Replication Group resource, which manages replication between two or more Replication Groups in different regions. For more information, see the [ElastiCache User Guide](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html).\n\n## Example Usage\n\n### Global replication group with one secondary replication group\n\nThe global replication group depends on the primary group existing. Secondary replication groups depend on the global replication group. the provider dependency management will handle this transparently using resource value references.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"5.0.6\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"5.0.6\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id)\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"5.0.6\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"5.0.6\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: 5.0.6\n nodeType: cache.m5.large\n numCacheClusters: 1\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Managing Redis Engine Versions\n\nThe initial Redis version is determined by the version set on the primary replication group.\nHowever, once it is part of a Global Replication Group,\nthe Global Replication Group manages the version of all member replication groups.\n\nThe member replication groups must have `lifecycle.ignore_changes[engine_version]` set,\nor the provider will always return a diff.\n\nIn this example,\nthe primary replication group will be created with Redis 6.0,\nand then upgraded to Redis 6.2 once added to the Global Replication Group.\nThe secondary replication group will be created with Redis 6.2.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"6.0\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n engineVersion: \"6.2\",\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"6.0\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id,\n engine_version=\"6.2\")\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"6.0\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n EngineVersion = \"6.2\",\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"6.0\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t\tEngineVersion: pulumi.String(\"6.2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"6.0\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .engineVersion(\"6.2\")\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n engineVersion: '6.2'\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: '6.0'\n nodeType: cache.m5.large\n numCacheClusters: 1\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Global Replication Groups using the `global_replication_group_id`. For example:\n\n```sh\n$ pulumi import aws:elasticache/globalReplicationGroup:GlobalReplicationGroup my_global_replication_group okuqm-global-replication-group-1\n```\n", + "description": "Provides an ElastiCache Global Replication Group resource, which manages replication between two or more Replication Groups in different regions. For more information, see the [ElastiCache User Guide](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html).\n\n## Example Usage\n\n### Global replication group with one secondary replication group\n\nThe global replication group depends on the primary group existing. Secondary replication groups depend on the global replication group. the provider dependency management will handle this transparently using resource value references.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"5.0.6\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"5.0.6\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id)\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"5.0.6\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"5.0.6\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: 5.0.6\n nodeType: cache.m5.large\n numCacheClusters: 1\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Managing Redis OOS/Valkey Engine Versions\n\nThe initial Redis version is determined by the version set on the primary replication group.\nHowever, once it is part of a Global Replication Group,\nthe Global Replication Group manages the version of all member replication groups.\n\nThe member replication groups must have `lifecycle.ignore_changes[engine_version]` set,\nor the provider will always return a diff.\n\nIn this example,\nthe primary replication group will be created with Redis 6.0,\nand then upgraded to Redis 6.2 once added to the Global Replication Group.\nThe secondary replication group will be created with Redis 6.2.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"6.0\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n engineVersion: \"6.2\",\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"6.0\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id,\n engine_version=\"6.2\")\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"6.0\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n EngineVersion = \"6.2\",\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"6.0\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t\tEngineVersion: pulumi.String(\"6.2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"6.0\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .engineVersion(\"6.2\")\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n engineVersion: '6.2'\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: '6.0'\n nodeType: cache.m5.large\n numCacheClusters: 1\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Global Replication Groups using the `global_replication_group_id`. For example:\n\n```sh\n$ pulumi import aws:elasticache/globalReplicationGroup:GlobalReplicationGroup my_global_replication_group okuqm-global-replication-group-1\n```\n", "properties": { "arn": { "type": "string", @@ -255523,7 +256622,7 @@ } }, "aws:elasticache/replicationGroup:ReplicationGroup": { - "description": "Provides an ElastiCache Replication Group resource.\n\nFor working with a [Memcached cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html) or a\n[single-node Redis instance (Cluster Mode Disabled)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html),\nsee the `aws.elasticache.Cluster` resource.\n\n\u003e **Note:** When you change an attribute, such as `engine_version`, by\ndefault the ElastiCache API applies it in the next maintenance window. Because\nof this, this provider may report a difference in its planning phase because the\nactual modification has not yet taken place. You can use the\n`apply_immediately` flag to instruct the service to apply the change\nimmediately. Using `apply_immediately` can result in a brief downtime as\nservers reboots.\nSee the AWS Documentation on\n[Modifying an ElastiCache Cache Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Modify.html)\nfor more information.\n\n\u003e **Note:** Any attribute changes that re-create the resource will be applied immediately, regardless of the value of `apply_immediately`.\n\n\u003e **Note:** Be aware of the terminology collision around \"cluster\" for `aws.elasticache.ReplicationGroup`. For example, it is possible to create a [\"Cluster Mode Disabled [Redis] Cluster\"](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Create.CON.Redis.html). With \"Cluster Mode Enabled\", the data will be stored in shards (called \"node groups\"). See [Redis Cluster Configuration](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/cluster-create-determine-requirements.html#redis-cluster-configuration) for a diagram of the differences. To enable cluster mode, use a parameter group that has cluster mode enabled. The default parameter groups provided by AWS end with \".cluster.on\", for example `default.redis6.x.cluster.on`.\n\n## Example Usage\n\n### Redis Cluster Mode Disabled\n\nTo create a single shard primary with single read replica:\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.elasticache.ReplicationGroup(\"example\", {\n automaticFailoverEnabled: true,\n preferredCacheClusterAzs: [\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replicationGroupId: \"tf-rep-group-1\",\n description: \"example description\",\n nodeType: \"cache.m4.large\",\n numCacheClusters: 2,\n parameterGroupName: \"default.redis3.2\",\n port: 6379,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n automatic_failover_enabled=True,\n preferred_cache_cluster_azs=[\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replication_group_id=\"tf-rep-group-1\",\n description=\"example description\",\n node_type=\"cache.m4.large\",\n num_cache_clusters=2,\n parameter_group_name=\"default.redis3.2\",\n port=6379)\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.ElastiCache.ReplicationGroup(\"example\", new()\n {\n AutomaticFailoverEnabled = true,\n PreferredCacheClusterAzs = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n },\n ReplicationGroupId = \"tf-rep-group-1\",\n Description = \"example description\",\n NodeType = \"cache.m4.large\",\n NumCacheClusters = 2,\n ParameterGroupName = \"default.redis3.2\",\n Port = 6379,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tPreferredCacheClusterAzs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t},\n\t\t\tReplicationGroupId: pulumi.String(\"tf-rep-group-1\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.m4.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(2),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2\"),\n\t\t\tPort: pulumi.Int(6379),\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .automaticFailoverEnabled(true)\n .preferredCacheClusterAzs( \n \"us-west-2a\",\n \"us-west-2b\")\n .replicationGroupId(\"tf-rep-group-1\")\n .description(\"example description\")\n .nodeType(\"cache.m4.large\")\n .numCacheClusters(2)\n .parameterGroupName(\"default.redis3.2\")\n .port(6379)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n automaticFailoverEnabled: true\n preferredCacheClusterAzs:\n - us-west-2a\n - us-west-2b\n replicationGroupId: tf-rep-group-1\n description: example description\n nodeType: cache.m4.large\n numCacheClusters: 2\n parameterGroupName: default.redis3.2\n port: 6379\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nYou have two options for adjusting the number of replicas:\n\n* Adjusting `num_cache_clusters` directly. This will attempt to automatically add or remove replicas, but provides no granular control (e.g., preferred availability zone, cache cluster ID) for the added or removed replicas. This also currently expects cache cluster IDs in the form of `replication_group_id-00#`.\n* Otherwise for fine grained control of the underlying cache clusters, they can be added or removed with the `aws.elasticache.Cluster` resource and its `replication_group_id` attribute. In this situation, you will need to utilize [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to prevent perpetual differences with the `number_cache_cluster` attribute.\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.elasticache.ReplicationGroup(\"example\", {\n automaticFailoverEnabled: true,\n preferredCacheClusterAzs: [\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replicationGroupId: \"tf-rep-group-1\",\n description: \"example description\",\n nodeType: \"cache.m4.large\",\n numCacheClusters: 2,\n parameterGroupName: \"default.redis3.2\",\n port: 6379,\n});\nconst replica: aws.elasticache.Cluster[] = [];\nfor (const range = {value: 0}; range.value \u003c 1; range.value++) {\n replica.push(new aws.elasticache.Cluster(`replica-${range.value}`, {\n clusterId: `tf-rep-group-1-${range.value}`,\n replicationGroupId: example.id,\n }));\n}\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n automatic_failover_enabled=True,\n preferred_cache_cluster_azs=[\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replication_group_id=\"tf-rep-group-1\",\n description=\"example description\",\n node_type=\"cache.m4.large\",\n num_cache_clusters=2,\n parameter_group_name=\"default.redis3.2\",\n port=6379)\nreplica = []\nfor range in [{\"value\": i} for i in range(0, 1)]:\n replica.append(aws.elasticache.Cluster(f\"replica-{range['value']}\",\n cluster_id=f\"tf-rep-group-1-{range['value']}\",\n replication_group_id=example.id))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.ElastiCache.ReplicationGroup(\"example\", new()\n {\n AutomaticFailoverEnabled = true,\n PreferredCacheClusterAzs = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n },\n ReplicationGroupId = \"tf-rep-group-1\",\n Description = \"example description\",\n NodeType = \"cache.m4.large\",\n NumCacheClusters = 2,\n ParameterGroupName = \"default.redis3.2\",\n Port = 6379,\n });\n\n var replica = new List\u003cAws.ElastiCache.Cluster\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 1; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n replica.Add(new Aws.ElastiCache.Cluster($\"replica-{range.Value}\", new()\n {\n ClusterId = $\"tf-rep-group-1-{range.Value}\",\n ReplicationGroupId = example.Id,\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/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tPreferredCacheClusterAzs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t},\n\t\t\tReplicationGroupId: pulumi.String(\"tf-rep-group-1\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.m4.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(2),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar replica []*elasticache.Cluster\n\t\tfor index := 0; index \u003c 1; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := elasticache.NewCluster(ctx, fmt.Sprintf(\"replica-%v\", key0), \u0026elasticache.ClusterArgs{\n\t\t\t\tClusterId: pulumi.Sprintf(\"tf-rep-group-1-%v\", val0),\n\t\t\t\tReplicationGroupId: example.ID(),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treplica = append(replica, __res)\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.Cluster;\nimport com.pulumi.aws.elasticache.ClusterArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .automaticFailoverEnabled(true)\n .preferredCacheClusterAzs( \n \"us-west-2a\",\n \"us-west-2b\")\n .replicationGroupId(\"tf-rep-group-1\")\n .description(\"example description\")\n .nodeType(\"cache.m4.large\")\n .numCacheClusters(2)\n .parameterGroupName(\"default.redis3.2\")\n .port(6379)\n .build());\n\n for (var i = 0; i \u003c 1; i++) {\n new Cluster(\"replica-\" + i, ClusterArgs.builder()\n .clusterId(String.format(\"tf-rep-group-1-%s\", range.value()))\n .replicationGroupId(example.id())\n .build());\n\n \n}\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n automaticFailoverEnabled: true\n preferredCacheClusterAzs:\n - us-west-2a\n - us-west-2b\n replicationGroupId: tf-rep-group-1\n description: example description\n nodeType: cache.m4.large\n numCacheClusters: 2\n parameterGroupName: default.redis3.2\n port: 6379\n replica:\n type: aws:elasticache:Cluster\n properties:\n clusterId: tf-rep-group-1-${range.value}\n replicationGroupId: ${example.id}\n options: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis Cluster Mode Enabled\n\nTo create two shards with a primary and a single read replica each:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst baz = new aws.elasticache.ReplicationGroup(\"baz\", {\n replicationGroupId: \"tf-redis-cluster\",\n description: \"example description\",\n nodeType: \"cache.t2.small\",\n port: 6379,\n parameterGroupName: \"default.redis3.2.cluster.on\",\n automaticFailoverEnabled: true,\n numNodeGroups: 2,\n replicasPerNodeGroup: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbaz = aws.elasticache.ReplicationGroup(\"baz\",\n replication_group_id=\"tf-redis-cluster\",\n description=\"example description\",\n node_type=\"cache.t2.small\",\n port=6379,\n parameter_group_name=\"default.redis3.2.cluster.on\",\n automatic_failover_enabled=True,\n num_node_groups=2,\n replicas_per_node_group=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 baz = new Aws.ElastiCache.ReplicationGroup(\"baz\", new()\n {\n ReplicationGroupId = \"tf-redis-cluster\",\n Description = \"example description\",\n NodeType = \"cache.t2.small\",\n Port = 6379,\n ParameterGroupName = \"default.redis3.2.cluster.on\",\n AutomaticFailoverEnabled = true,\n NumNodeGroups = 2,\n ReplicasPerNodeGroup = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"baz\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"tf-redis-cluster\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.t2.small\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2.cluster.on\"),\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tNumNodeGroups: pulumi.Int(2),\n\t\t\tReplicasPerNodeGroup: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 baz = new ReplicationGroup(\"baz\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"tf-redis-cluster\")\n .description(\"example description\")\n .nodeType(\"cache.t2.small\")\n .port(6379)\n .parameterGroupName(\"default.redis3.2.cluster.on\")\n .automaticFailoverEnabled(true)\n .numNodeGroups(2)\n .replicasPerNodeGroup(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n baz:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: tf-redis-cluster\n description: example description\n nodeType: cache.t2.small\n port: 6379\n parameterGroupName: default.redis3.2.cluster.on\n automaticFailoverEnabled: true\n numNodeGroups: 2\n replicasPerNodeGroup: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis Log Delivery configuration\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.elasticache.ReplicationGroup(\"test\", {\n replicationGroupId: \"myreplicaciongroup\",\n description: \"test description\",\n nodeType: \"cache.t3.small\",\n port: 6379,\n applyImmediately: true,\n autoMinorVersionUpgrade: false,\n maintenanceWindow: \"tue:06:30-tue:07:30\",\n snapshotWindow: \"01:00-02:00\",\n logDeliveryConfigurations: [\n {\n destination: example.name,\n destinationType: \"cloudwatch-logs\",\n logFormat: \"text\",\n logType: \"slow-log\",\n },\n {\n destination: exampleAwsKinesisFirehoseDeliveryStream.name,\n destinationType: \"kinesis-firehose\",\n logFormat: \"json\",\n logType: \"engine-log\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.elasticache.ReplicationGroup(\"test\",\n replication_group_id=\"myreplicaciongroup\",\n description=\"test description\",\n node_type=\"cache.t3.small\",\n port=6379,\n apply_immediately=True,\n auto_minor_version_upgrade=False,\n maintenance_window=\"tue:06:30-tue:07:30\",\n snapshot_window=\"01:00-02:00\",\n log_delivery_configurations=[\n {\n \"destination\": example[\"name\"],\n \"destination_type\": \"cloudwatch-logs\",\n \"log_format\": \"text\",\n \"log_type\": \"slow-log\",\n },\n {\n \"destination\": example_aws_kinesis_firehose_delivery_stream[\"name\"],\n \"destination_type\": \"kinesis-firehose\",\n \"log_format\": \"json\",\n \"log_type\": \"engine-log\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.ElastiCache.ReplicationGroup(\"test\", new()\n {\n ReplicationGroupId = \"myreplicaciongroup\",\n Description = \"test description\",\n NodeType = \"cache.t3.small\",\n Port = 6379,\n ApplyImmediately = true,\n AutoMinorVersionUpgrade = false,\n MaintenanceWindow = \"tue:06:30-tue:07:30\",\n SnapshotWindow = \"01:00-02:00\",\n LogDeliveryConfigurations = new[]\n {\n new Aws.ElastiCache.Inputs.ReplicationGroupLogDeliveryConfigurationArgs\n {\n Destination = example.Name,\n DestinationType = \"cloudwatch-logs\",\n LogFormat = \"text\",\n LogType = \"slow-log\",\n },\n new Aws.ElastiCache.Inputs.ReplicationGroupLogDeliveryConfigurationArgs\n {\n Destination = exampleAwsKinesisFirehoseDeliveryStream.Name,\n DestinationType = \"kinesis-firehose\",\n LogFormat = \"json\",\n LogType = \"engine-log\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"test\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"myreplicaciongroup\"),\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tNodeType: pulumi.String(\"cache.t3.small\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\tAutoMinorVersionUpgrade: pulumi.Bool(false),\n\t\t\tMaintenanceWindow: pulumi.String(\"tue:06:30-tue:07:30\"),\n\t\t\tSnapshotWindow: pulumi.String(\"01:00-02:00\"),\n\t\t\tLogDeliveryConfigurations: elasticache.ReplicationGroupLogDeliveryConfigurationArray{\n\t\t\t\t\u0026elasticache.ReplicationGroupLogDeliveryConfigurationArgs{\n\t\t\t\t\tDestination: pulumi.Any(example.Name),\n\t\t\t\t\tDestinationType: pulumi.String(\"cloudwatch-logs\"),\n\t\t\t\t\tLogFormat: pulumi.String(\"text\"),\n\t\t\t\t\tLogType: pulumi.String(\"slow-log\"),\n\t\t\t\t},\n\t\t\t\t\u0026elasticache.ReplicationGroupLogDeliveryConfigurationArgs{\n\t\t\t\t\tDestination: pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name),\n\t\t\t\t\tDestinationType: pulumi.String(\"kinesis-firehose\"),\n\t\t\t\t\tLogFormat: pulumi.String(\"json\"),\n\t\t\t\t\tLogType: pulumi.String(\"engine-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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.inputs.ReplicationGroupLogDeliveryConfigurationArgs;\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 ReplicationGroup(\"test\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"myreplicaciongroup\")\n .description(\"test description\")\n .nodeType(\"cache.t3.small\")\n .port(6379)\n .applyImmediately(true)\n .autoMinorVersionUpgrade(false)\n .maintenanceWindow(\"tue:06:30-tue:07:30\")\n .snapshotWindow(\"01:00-02:00\")\n .logDeliveryConfigurations( \n ReplicationGroupLogDeliveryConfigurationArgs.builder()\n .destination(example.name())\n .destinationType(\"cloudwatch-logs\")\n .logFormat(\"text\")\n .logType(\"slow-log\")\n .build(),\n ReplicationGroupLogDeliveryConfigurationArgs.builder()\n .destination(exampleAwsKinesisFirehoseDeliveryStream.name())\n .destinationType(\"kinesis-firehose\")\n .logFormat(\"json\")\n .logType(\"engine-log\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: myreplicaciongroup\n description: test description\n nodeType: cache.t3.small\n port: 6379\n applyImmediately: true\n autoMinorVersionUpgrade: false\n maintenanceWindow: tue:06:30-tue:07:30\n snapshotWindow: 01:00-02:00\n logDeliveryConfigurations:\n - destination: ${example.name}\n destinationType: cloudwatch-logs\n logFormat: text\n logType: slow-log\n - destination: ${exampleAwsKinesisFirehoseDeliveryStream.name}\n destinationType: kinesis-firehose\n logFormat: json\n logType: engine-log\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **Note:** We currently do not support passing a `primary_cluster_id` in order to create the Replication Group.\n\n\u003e **Note:** Automatic Failover is unavailable for Redis versions earlier than 2.8.6,\nand unavailable on T1 node types. For T2 node types, it is only available on Redis version 3.2.4 or later with cluster mode enabled. See the [High Availability Using Replication Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.html) guide\nfor full details on using Replication Groups.\n\n### Creating a secondary replication group for a global replication group\n\nA Global Replication Group can have one one two secondary Replication Groups in different regions. These are added to an existing Global Replication Group.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"5.0.6\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"5.0.6\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id)\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"5.0.6\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"5.0.6\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: 5.0.6\n nodeType: cache.m5.large\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis AUTH and In-Transit Encryption Enabled\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.elasticache.ReplicationGroup(\"example\", {\n replicationGroupId: \"example\",\n description: \"example with authentication\",\n nodeType: \"cache.t2.micro\",\n numCacheClusters: 1,\n port: 6379,\n subnetGroupName: exampleAwsElasticacheSubnetGroup.name,\n securityGroupIds: [exampleAwsSecurityGroup.id],\n parameterGroupName: \"default.redis5.0\",\n engineVersion: \"5.0.6\",\n transitEncryptionEnabled: true,\n authToken: \"abcdefgh1234567890\",\n authTokenUpdateStrategy: \"ROTATE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n replication_group_id=\"example\",\n description=\"example with authentication\",\n node_type=\"cache.t2.micro\",\n num_cache_clusters=1,\n port=6379,\n subnet_group_name=example_aws_elasticache_subnet_group[\"name\"],\n security_group_ids=[example_aws_security_group[\"id\"]],\n parameter_group_name=\"default.redis5.0\",\n engine_version=\"5.0.6\",\n transit_encryption_enabled=True,\n auth_token=\"abcdefgh1234567890\",\n auth_token_update_strategy=\"ROTATE\")\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.ElastiCache.ReplicationGroup(\"example\", new()\n {\n ReplicationGroupId = \"example\",\n Description = \"example with authentication\",\n NodeType = \"cache.t2.micro\",\n NumCacheClusters = 1,\n Port = 6379,\n SubnetGroupName = exampleAwsElasticacheSubnetGroup.Name,\n SecurityGroupIds = new[]\n {\n exampleAwsSecurityGroup.Id,\n },\n ParameterGroupName = \"default.redis5.0\",\n EngineVersion = \"5.0.6\",\n TransitEncryptionEnabled = true,\n AuthToken = \"abcdefgh1234567890\",\n AuthTokenUpdateStrategy = \"ROTATE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"example with authentication\"),\n\t\t\tNodeType: pulumi.String(\"cache.t2.micro\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tSubnetGroupName: pulumi.Any(exampleAwsElasticacheSubnetGroup.Name),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleAwsSecurityGroup.Id,\n\t\t\t},\n\t\t\tParameterGroupName: pulumi.String(\"default.redis5.0\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tTransitEncryptionEnabled: pulumi.Bool(true),\n\t\t\tAuthToken: pulumi.String(\"abcdefgh1234567890\"),\n\t\t\tAuthTokenUpdateStrategy: pulumi.String(\"ROTATE\"),\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example\")\n .description(\"example with authentication\")\n .nodeType(\"cache.t2.micro\")\n .numCacheClusters(1)\n .port(6379)\n .subnetGroupName(exampleAwsElasticacheSubnetGroup.name())\n .securityGroupIds(exampleAwsSecurityGroup.id())\n .parameterGroupName(\"default.redis5.0\")\n .engineVersion(\"5.0.6\")\n .transitEncryptionEnabled(true)\n .authToken(\"abcdefgh1234567890\")\n .authTokenUpdateStrategy(\"ROTATE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example\n description: example with authentication\n nodeType: cache.t2.micro\n numCacheClusters: 1\n port: 6379\n subnetGroupName: ${exampleAwsElasticacheSubnetGroup.name}\n securityGroupIds:\n - ${exampleAwsSecurityGroup.id}\n parameterGroupName: default.redis5.0\n engineVersion: 5.0.6\n transitEncryptionEnabled: true\n authToken: abcdefgh1234567890\n authTokenUpdateStrategy: ROTATE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e When adding a new `auth_token` to a previously passwordless replication group, using the `ROTATE` update strategy will result in support for **both** the new token and passwordless authentication. To immediately require authorization when adding the initial token, use the `SET` strategy instead. See the [Authenticating with the Redis AUTH command](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html) guide for additional details.\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Replication Groups using the `replication_group_id`. For example:\n\n```sh\n$ pulumi import aws:elasticache/replicationGroup:ReplicationGroup my_replication_group replication-group-1\n```\n", + "description": "Provides an ElastiCache Replication Group resource.\n\nFor working with a [Memcached cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html) or a\n[single-node Redis instance (Cluster Mode Disabled)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html),\nsee the `aws.elasticache.Cluster` resource.\n\n\u003e **Note:** When you change an attribute, such as `engine_version`, by\ndefault the ElastiCache API applies it in the next maintenance window. Because\nof this, this provider may report a difference in its planning phase because the\nactual modification has not yet taken place. You can use the\n`apply_immediately` flag to instruct the service to apply the change\nimmediately. Using `apply_immediately` can result in a brief downtime as\nservers reboots.\nSee the AWS Documentation on\n[Modifying an ElastiCache Cache Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Modify.html)\nfor more information.\n\n\u003e **Note:** Any attribute changes that re-create the resource will be applied immediately, regardless of the value of `apply_immediately`.\n\n\u003e **Note:** Be aware of the terminology collision around \"cluster\" for `aws.elasticache.ReplicationGroup`. For example, it is possible to create a [\"Cluster Mode Disabled [Redis] Cluster\"](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Create.CON.Redis.html). With \"Cluster Mode Enabled\", the data will be stored in shards (called \"node groups\"). See [Redis Cluster Configuration](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/cluster-create-determine-requirements.html#redis-cluster-configuration) for a diagram of the differences. To enable cluster mode, use a parameter group that has cluster mode enabled. The default parameter groups provided by AWS end with \".cluster.on\", for example `default.redis6.x.cluster.on`.\n\n## Example Usage\n\n### Redis OSS/Valkey Cluster Mode Disabled\n\nTo create a single shard primary with single read replica:\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.elasticache.ReplicationGroup(\"example\", {\n automaticFailoverEnabled: true,\n preferredCacheClusterAzs: [\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replicationGroupId: \"tf-rep-group-1\",\n description: \"example description\",\n nodeType: \"cache.m4.large\",\n numCacheClusters: 2,\n parameterGroupName: \"default.redis3.2\",\n port: 6379,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n automatic_failover_enabled=True,\n preferred_cache_cluster_azs=[\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replication_group_id=\"tf-rep-group-1\",\n description=\"example description\",\n node_type=\"cache.m4.large\",\n num_cache_clusters=2,\n parameter_group_name=\"default.redis3.2\",\n port=6379)\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.ElastiCache.ReplicationGroup(\"example\", new()\n {\n AutomaticFailoverEnabled = true,\n PreferredCacheClusterAzs = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n },\n ReplicationGroupId = \"tf-rep-group-1\",\n Description = \"example description\",\n NodeType = \"cache.m4.large\",\n NumCacheClusters = 2,\n ParameterGroupName = \"default.redis3.2\",\n Port = 6379,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tPreferredCacheClusterAzs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t},\n\t\t\tReplicationGroupId: pulumi.String(\"tf-rep-group-1\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.m4.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(2),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2\"),\n\t\t\tPort: pulumi.Int(6379),\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .automaticFailoverEnabled(true)\n .preferredCacheClusterAzs( \n \"us-west-2a\",\n \"us-west-2b\")\n .replicationGroupId(\"tf-rep-group-1\")\n .description(\"example description\")\n .nodeType(\"cache.m4.large\")\n .numCacheClusters(2)\n .parameterGroupName(\"default.redis3.2\")\n .port(6379)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n automaticFailoverEnabled: true\n preferredCacheClusterAzs:\n - us-west-2a\n - us-west-2b\n replicationGroupId: tf-rep-group-1\n description: example description\n nodeType: cache.m4.large\n numCacheClusters: 2\n parameterGroupName: default.redis3.2\n port: 6379\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nYou have two options for adjusting the number of replicas:\n\n* Adjusting `num_cache_clusters` directly. This will attempt to automatically add or remove replicas, but provides no granular control (e.g., preferred availability zone, cache cluster ID) for the added or removed replicas. This also currently expects cache cluster IDs in the form of `replication_group_id-00#`.\n* Otherwise for fine grained control of the underlying cache clusters, they can be added or removed with the `aws.elasticache.Cluster` resource and its `replication_group_id` attribute. In this situation, you will need to utilize [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to prevent perpetual differences with the `number_cache_cluster` attribute.\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.elasticache.ReplicationGroup(\"example\", {\n automaticFailoverEnabled: true,\n preferredCacheClusterAzs: [\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replicationGroupId: \"tf-rep-group-1\",\n description: \"example description\",\n nodeType: \"cache.m4.large\",\n numCacheClusters: 2,\n parameterGroupName: \"default.redis3.2\",\n port: 6379,\n});\nconst replica: aws.elasticache.Cluster[] = [];\nfor (const range = {value: 0}; range.value \u003c 1; range.value++) {\n replica.push(new aws.elasticache.Cluster(`replica-${range.value}`, {\n clusterId: `tf-rep-group-1-${range.value}`,\n replicationGroupId: example.id,\n }));\n}\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n automatic_failover_enabled=True,\n preferred_cache_cluster_azs=[\n \"us-west-2a\",\n \"us-west-2b\",\n ],\n replication_group_id=\"tf-rep-group-1\",\n description=\"example description\",\n node_type=\"cache.m4.large\",\n num_cache_clusters=2,\n parameter_group_name=\"default.redis3.2\",\n port=6379)\nreplica = []\nfor range in [{\"value\": i} for i in range(0, 1)]:\n replica.append(aws.elasticache.Cluster(f\"replica-{range['value']}\",\n cluster_id=f\"tf-rep-group-1-{range['value']}\",\n replication_group_id=example.id))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.ElastiCache.ReplicationGroup(\"example\", new()\n {\n AutomaticFailoverEnabled = true,\n PreferredCacheClusterAzs = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n },\n ReplicationGroupId = \"tf-rep-group-1\",\n Description = \"example description\",\n NodeType = \"cache.m4.large\",\n NumCacheClusters = 2,\n ParameterGroupName = \"default.redis3.2\",\n Port = 6379,\n });\n\n var replica = new List\u003cAws.ElastiCache.Cluster\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 1; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n replica.Add(new Aws.ElastiCache.Cluster($\"replica-{range.Value}\", new()\n {\n ClusterId = $\"tf-rep-group-1-{range.Value}\",\n ReplicationGroupId = example.Id,\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/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tPreferredCacheClusterAzs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t},\n\t\t\tReplicationGroupId: pulumi.String(\"tf-rep-group-1\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.m4.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(2),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar replica []*elasticache.Cluster\n\t\tfor index := 0; index \u003c 1; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := elasticache.NewCluster(ctx, fmt.Sprintf(\"replica-%v\", key0), \u0026elasticache.ClusterArgs{\n\t\t\t\tClusterId: pulumi.Sprintf(\"tf-rep-group-1-%v\", val0),\n\t\t\t\tReplicationGroupId: example.ID(),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treplica = append(replica, __res)\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.Cluster;\nimport com.pulumi.aws.elasticache.ClusterArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .automaticFailoverEnabled(true)\n .preferredCacheClusterAzs( \n \"us-west-2a\",\n \"us-west-2b\")\n .replicationGroupId(\"tf-rep-group-1\")\n .description(\"example description\")\n .nodeType(\"cache.m4.large\")\n .numCacheClusters(2)\n .parameterGroupName(\"default.redis3.2\")\n .port(6379)\n .build());\n\n for (var i = 0; i \u003c 1; i++) {\n new Cluster(\"replica-\" + i, ClusterArgs.builder()\n .clusterId(String.format(\"tf-rep-group-1-%s\", range.value()))\n .replicationGroupId(example.id())\n .build());\n\n \n}\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n automaticFailoverEnabled: true\n preferredCacheClusterAzs:\n - us-west-2a\n - us-west-2b\n replicationGroupId: tf-rep-group-1\n description: example description\n nodeType: cache.m4.large\n numCacheClusters: 2\n parameterGroupName: default.redis3.2\n port: 6379\n replica:\n type: aws:elasticache:Cluster\n properties:\n clusterId: tf-rep-group-1-${range.value}\n replicationGroupId: ${example.id}\n options: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis OSS/Valkey Cluster Mode Enabled\n\nTo create two shards with a primary and a single read replica each:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst baz = new aws.elasticache.ReplicationGroup(\"baz\", {\n replicationGroupId: \"tf-redis-cluster\",\n description: \"example description\",\n nodeType: \"cache.t2.small\",\n port: 6379,\n parameterGroupName: \"default.redis3.2.cluster.on\",\n automaticFailoverEnabled: true,\n numNodeGroups: 2,\n replicasPerNodeGroup: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbaz = aws.elasticache.ReplicationGroup(\"baz\",\n replication_group_id=\"tf-redis-cluster\",\n description=\"example description\",\n node_type=\"cache.t2.small\",\n port=6379,\n parameter_group_name=\"default.redis3.2.cluster.on\",\n automatic_failover_enabled=True,\n num_node_groups=2,\n replicas_per_node_group=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 baz = new Aws.ElastiCache.ReplicationGroup(\"baz\", new()\n {\n ReplicationGroupId = \"tf-redis-cluster\",\n Description = \"example description\",\n NodeType = \"cache.t2.small\",\n Port = 6379,\n ParameterGroupName = \"default.redis3.2.cluster.on\",\n AutomaticFailoverEnabled = true,\n NumNodeGroups = 2,\n ReplicasPerNodeGroup = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"baz\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"tf-redis-cluster\"),\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tNodeType: pulumi.String(\"cache.t2.small\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tParameterGroupName: pulumi.String(\"default.redis3.2.cluster.on\"),\n\t\t\tAutomaticFailoverEnabled: pulumi.Bool(true),\n\t\t\tNumNodeGroups: pulumi.Int(2),\n\t\t\tReplicasPerNodeGroup: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 baz = new ReplicationGroup(\"baz\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"tf-redis-cluster\")\n .description(\"example description\")\n .nodeType(\"cache.t2.small\")\n .port(6379)\n .parameterGroupName(\"default.redis3.2.cluster.on\")\n .automaticFailoverEnabled(true)\n .numNodeGroups(2)\n .replicasPerNodeGroup(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n baz:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: tf-redis-cluster\n description: example description\n nodeType: cache.t2.small\n port: 6379\n parameterGroupName: default.redis3.2.cluster.on\n automaticFailoverEnabled: true\n numNodeGroups: 2\n replicasPerNodeGroup: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis Log Delivery configuration\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.elasticache.ReplicationGroup(\"test\", {\n replicationGroupId: \"myreplicaciongroup\",\n description: \"test description\",\n nodeType: \"cache.t3.small\",\n port: 6379,\n applyImmediately: true,\n autoMinorVersionUpgrade: false,\n maintenanceWindow: \"tue:06:30-tue:07:30\",\n snapshotWindow: \"01:00-02:00\",\n logDeliveryConfigurations: [\n {\n destination: example.name,\n destinationType: \"cloudwatch-logs\",\n logFormat: \"text\",\n logType: \"slow-log\",\n },\n {\n destination: exampleAwsKinesisFirehoseDeliveryStream.name,\n destinationType: \"kinesis-firehose\",\n logFormat: \"json\",\n logType: \"engine-log\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.elasticache.ReplicationGroup(\"test\",\n replication_group_id=\"myreplicaciongroup\",\n description=\"test description\",\n node_type=\"cache.t3.small\",\n port=6379,\n apply_immediately=True,\n auto_minor_version_upgrade=False,\n maintenance_window=\"tue:06:30-tue:07:30\",\n snapshot_window=\"01:00-02:00\",\n log_delivery_configurations=[\n {\n \"destination\": example[\"name\"],\n \"destination_type\": \"cloudwatch-logs\",\n \"log_format\": \"text\",\n \"log_type\": \"slow-log\",\n },\n {\n \"destination\": example_aws_kinesis_firehose_delivery_stream[\"name\"],\n \"destination_type\": \"kinesis-firehose\",\n \"log_format\": \"json\",\n \"log_type\": \"engine-log\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.ElastiCache.ReplicationGroup(\"test\", new()\n {\n ReplicationGroupId = \"myreplicaciongroup\",\n Description = \"test description\",\n NodeType = \"cache.t3.small\",\n Port = 6379,\n ApplyImmediately = true,\n AutoMinorVersionUpgrade = false,\n MaintenanceWindow = \"tue:06:30-tue:07:30\",\n SnapshotWindow = \"01:00-02:00\",\n LogDeliveryConfigurations = new[]\n {\n new Aws.ElastiCache.Inputs.ReplicationGroupLogDeliveryConfigurationArgs\n {\n Destination = example.Name,\n DestinationType = \"cloudwatch-logs\",\n LogFormat = \"text\",\n LogType = \"slow-log\",\n },\n new Aws.ElastiCache.Inputs.ReplicationGroupLogDeliveryConfigurationArgs\n {\n Destination = exampleAwsKinesisFirehoseDeliveryStream.Name,\n DestinationType = \"kinesis-firehose\",\n LogFormat = \"json\",\n LogType = \"engine-log\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"test\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"myreplicaciongroup\"),\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tNodeType: pulumi.String(\"cache.t3.small\"),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\tAutoMinorVersionUpgrade: pulumi.Bool(false),\n\t\t\tMaintenanceWindow: pulumi.String(\"tue:06:30-tue:07:30\"),\n\t\t\tSnapshotWindow: pulumi.String(\"01:00-02:00\"),\n\t\t\tLogDeliveryConfigurations: elasticache.ReplicationGroupLogDeliveryConfigurationArray{\n\t\t\t\t\u0026elasticache.ReplicationGroupLogDeliveryConfigurationArgs{\n\t\t\t\t\tDestination: pulumi.Any(example.Name),\n\t\t\t\t\tDestinationType: pulumi.String(\"cloudwatch-logs\"),\n\t\t\t\t\tLogFormat: pulumi.String(\"text\"),\n\t\t\t\t\tLogType: pulumi.String(\"slow-log\"),\n\t\t\t\t},\n\t\t\t\t\u0026elasticache.ReplicationGroupLogDeliveryConfigurationArgs{\n\t\t\t\t\tDestination: pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name),\n\t\t\t\t\tDestinationType: pulumi.String(\"kinesis-firehose\"),\n\t\t\t\t\tLogFormat: pulumi.String(\"json\"),\n\t\t\t\t\tLogType: pulumi.String(\"engine-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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.inputs.ReplicationGroupLogDeliveryConfigurationArgs;\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 ReplicationGroup(\"test\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"myreplicaciongroup\")\n .description(\"test description\")\n .nodeType(\"cache.t3.small\")\n .port(6379)\n .applyImmediately(true)\n .autoMinorVersionUpgrade(false)\n .maintenanceWindow(\"tue:06:30-tue:07:30\")\n .snapshotWindow(\"01:00-02:00\")\n .logDeliveryConfigurations( \n ReplicationGroupLogDeliveryConfigurationArgs.builder()\n .destination(example.name())\n .destinationType(\"cloudwatch-logs\")\n .logFormat(\"text\")\n .logType(\"slow-log\")\n .build(),\n ReplicationGroupLogDeliveryConfigurationArgs.builder()\n .destination(exampleAwsKinesisFirehoseDeliveryStream.name())\n .destinationType(\"kinesis-firehose\")\n .logFormat(\"json\")\n .logType(\"engine-log\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: myreplicaciongroup\n description: test description\n nodeType: cache.t3.small\n port: 6379\n applyImmediately: true\n autoMinorVersionUpgrade: false\n maintenanceWindow: tue:06:30-tue:07:30\n snapshotWindow: 01:00-02:00\n logDeliveryConfigurations:\n - destination: ${example.name}\n destinationType: cloudwatch-logs\n logFormat: text\n logType: slow-log\n - destination: ${exampleAwsKinesisFirehoseDeliveryStream.name}\n destinationType: kinesis-firehose\n logFormat: json\n logType: engine-log\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **Note:** We currently do not support passing a `primary_cluster_id` in order to create the Replication Group.\n\n\u003e **Note:** Automatic Failover is unavailable for Redis versions earlier than 2.8.6,\nand unavailable on T1 node types. For T2 node types, it is only available on Redis version 3.2.4 or later with cluster mode enabled. See the [High Availability Using Replication Groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.html) guide\nfor full details on using Replication Groups.\n\n### Creating a secondary replication group for a global replication group\n\nA Global Replication Group can have one one two secondary Replication Groups in different regions. These are added to an existing Global Replication Group.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst primary = new aws.elasticache.ReplicationGroup(\"primary\", {\n replicationGroupId: \"example-primary\",\n description: \"primary replication group\",\n engine: \"redis\",\n engineVersion: \"5.0.6\",\n nodeType: \"cache.m5.large\",\n numCacheClusters: 1,\n});\nconst example = new aws.elasticache.GlobalReplicationGroup(\"example\", {\n globalReplicationGroupIdSuffix: \"example\",\n primaryReplicationGroupId: primary.id,\n});\nconst secondary = new aws.elasticache.ReplicationGroup(\"secondary\", {\n replicationGroupId: \"example-secondary\",\n description: \"secondary replication group\",\n globalReplicationGroupId: example.globalReplicationGroupId,\n numCacheClusters: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprimary = aws.elasticache.ReplicationGroup(\"primary\",\n replication_group_id=\"example-primary\",\n description=\"primary replication group\",\n engine=\"redis\",\n engine_version=\"5.0.6\",\n node_type=\"cache.m5.large\",\n num_cache_clusters=1)\nexample = aws.elasticache.GlobalReplicationGroup(\"example\",\n global_replication_group_id_suffix=\"example\",\n primary_replication_group_id=primary.id)\nsecondary = aws.elasticache.ReplicationGroup(\"secondary\",\n replication_group_id=\"example-secondary\",\n description=\"secondary replication group\",\n global_replication_group_id=example.global_replication_group_id,\n num_cache_clusters=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 primary = new Aws.ElastiCache.ReplicationGroup(\"primary\", new()\n {\n ReplicationGroupId = \"example-primary\",\n Description = \"primary replication group\",\n Engine = \"redis\",\n EngineVersion = \"5.0.6\",\n NodeType = \"cache.m5.large\",\n NumCacheClusters = 1,\n });\n\n var example = new Aws.ElastiCache.GlobalReplicationGroup(\"example\", new()\n {\n GlobalReplicationGroupIdSuffix = \"example\",\n PrimaryReplicationGroupId = primary.Id,\n });\n\n var secondary = new Aws.ElastiCache.ReplicationGroup(\"secondary\", new()\n {\n ReplicationGroupId = \"example-secondary\",\n Description = \"secondary replication group\",\n GlobalReplicationGroupId = example.GlobalReplicationGroupId,\n NumCacheClusters = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprimary, err := elasticache.NewReplicationGroup(ctx, \"primary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-primary\"),\n\t\t\tDescription: pulumi.String(\"primary replication group\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tNodeType: pulumi.String(\"cache.m5.large\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := elasticache.NewGlobalReplicationGroup(ctx, \"example\", \u0026elasticache.GlobalReplicationGroupArgs{\n\t\t\tGlobalReplicationGroupIdSuffix: pulumi.String(\"example\"),\n\t\t\tPrimaryReplicationGroupId: primary.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticache.NewReplicationGroup(ctx, \"secondary\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example-secondary\"),\n\t\t\tDescription: pulumi.String(\"secondary replication group\"),\n\t\t\tGlobalReplicationGroupId: example.GlobalReplicationGroupId,\n\t\t\tNumCacheClusters: 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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroup;\nimport com.pulumi.aws.elasticache.GlobalReplicationGroupArgs;\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 primary = new ReplicationGroup(\"primary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-primary\")\n .description(\"primary replication group\")\n .engine(\"redis\")\n .engineVersion(\"5.0.6\")\n .nodeType(\"cache.m5.large\")\n .numCacheClusters(1)\n .build());\n\n var example = new GlobalReplicationGroup(\"example\", GlobalReplicationGroupArgs.builder()\n .globalReplicationGroupIdSuffix(\"example\")\n .primaryReplicationGroupId(primary.id())\n .build());\n\n var secondary = new ReplicationGroup(\"secondary\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example-secondary\")\n .description(\"secondary replication group\")\n .globalReplicationGroupId(example.globalReplicationGroupId())\n .numCacheClusters(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secondary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-secondary\n description: secondary replication group\n globalReplicationGroupId: ${example.globalReplicationGroupId}\n numCacheClusters: 1\n example:\n type: aws:elasticache:GlobalReplicationGroup\n properties:\n globalReplicationGroupIdSuffix: example\n primaryReplicationGroupId: ${primary.id}\n primary:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example-primary\n description: primary replication group\n engine: redis\n engineVersion: 5.0.6\n nodeType: cache.m5.large\n numCacheClusters: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis AUTH and In-Transit Encryption Enabled\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.elasticache.ReplicationGroup(\"example\", {\n replicationGroupId: \"example\",\n description: \"example with authentication\",\n nodeType: \"cache.t2.micro\",\n numCacheClusters: 1,\n port: 6379,\n subnetGroupName: exampleAwsElasticacheSubnetGroup.name,\n securityGroupIds: [exampleAwsSecurityGroup.id],\n parameterGroupName: \"default.redis5.0\",\n engineVersion: \"5.0.6\",\n transitEncryptionEnabled: true,\n authToken: \"abcdefgh1234567890\",\n authTokenUpdateStrategy: \"ROTATE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ReplicationGroup(\"example\",\n replication_group_id=\"example\",\n description=\"example with authentication\",\n node_type=\"cache.t2.micro\",\n num_cache_clusters=1,\n port=6379,\n subnet_group_name=example_aws_elasticache_subnet_group[\"name\"],\n security_group_ids=[example_aws_security_group[\"id\"]],\n parameter_group_name=\"default.redis5.0\",\n engine_version=\"5.0.6\",\n transit_encryption_enabled=True,\n auth_token=\"abcdefgh1234567890\",\n auth_token_update_strategy=\"ROTATE\")\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.ElastiCache.ReplicationGroup(\"example\", new()\n {\n ReplicationGroupId = \"example\",\n Description = \"example with authentication\",\n NodeType = \"cache.t2.micro\",\n NumCacheClusters = 1,\n Port = 6379,\n SubnetGroupName = exampleAwsElasticacheSubnetGroup.Name,\n SecurityGroupIds = new[]\n {\n exampleAwsSecurityGroup.Id,\n },\n ParameterGroupName = \"default.redis5.0\",\n EngineVersion = \"5.0.6\",\n TransitEncryptionEnabled = true,\n AuthToken = \"abcdefgh1234567890\",\n AuthTokenUpdateStrategy = \"ROTATE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\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 := elasticache.NewReplicationGroup(ctx, \"example\", \u0026elasticache.ReplicationGroupArgs{\n\t\t\tReplicationGroupId: pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"example with authentication\"),\n\t\t\tNodeType: pulumi.String(\"cache.t2.micro\"),\n\t\t\tNumCacheClusters: pulumi.Int(1),\n\t\t\tPort: pulumi.Int(6379),\n\t\t\tSubnetGroupName: pulumi.Any(exampleAwsElasticacheSubnetGroup.Name),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleAwsSecurityGroup.Id,\n\t\t\t},\n\t\t\tParameterGroupName: pulumi.String(\"default.redis5.0\"),\n\t\t\tEngineVersion: pulumi.String(\"5.0.6\"),\n\t\t\tTransitEncryptionEnabled: pulumi.Bool(true),\n\t\t\tAuthToken: pulumi.String(\"abcdefgh1234567890\"),\n\t\t\tAuthTokenUpdateStrategy: pulumi.String(\"ROTATE\"),\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.elasticache.ReplicationGroup;\nimport com.pulumi.aws.elasticache.ReplicationGroupArgs;\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 ReplicationGroup(\"example\", ReplicationGroupArgs.builder()\n .replicationGroupId(\"example\")\n .description(\"example with authentication\")\n .nodeType(\"cache.t2.micro\")\n .numCacheClusters(1)\n .port(6379)\n .subnetGroupName(exampleAwsElasticacheSubnetGroup.name())\n .securityGroupIds(exampleAwsSecurityGroup.id())\n .parameterGroupName(\"default.redis5.0\")\n .engineVersion(\"5.0.6\")\n .transitEncryptionEnabled(true)\n .authToken(\"abcdefgh1234567890\")\n .authTokenUpdateStrategy(\"ROTATE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:elasticache:ReplicationGroup\n properties:\n replicationGroupId: example\n description: example with authentication\n nodeType: cache.t2.micro\n numCacheClusters: 1\n port: 6379\n subnetGroupName: ${exampleAwsElasticacheSubnetGroup.name}\n securityGroupIds:\n - ${exampleAwsSecurityGroup.id}\n parameterGroupName: default.redis5.0\n engineVersion: 5.0.6\n transitEncryptionEnabled: true\n authToken: abcdefgh1234567890\n authTokenUpdateStrategy: ROTATE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e When adding a new `auth_token` to a previously passwordless replication group, using the `ROTATE` update strategy will result in support for **both** the new token and passwordless authentication. To immediately require authorization when adding the initial token, use the `SET` strategy instead. See the [Authenticating with the Redis AUTH command](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html) guide for additional details.\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Replication Groups using the `replication_group_id`. For example:\n\n```sh\n$ pulumi import aws:elasticache/replicationGroup:ReplicationGroup my_replication_group replication-group-1\n```\n", "properties": { "applyImmediately": { "type": "boolean", @@ -255548,7 +256647,7 @@ }, "autoMinorVersionUpgrade": { "type": "boolean", - "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine type `\"redis\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" + "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine types `\"redis\"` and `\"valkey\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" }, "automaticFailoverEnabled": { "type": "boolean", @@ -255576,7 +256675,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.\n" + "description": "Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.\n" }, "engineVersion": { "type": "string", @@ -255607,7 +256706,7 @@ "items": { "$ref": "#/types/aws:elasticache/ReplicationGroupLogDeliveryConfiguration:ReplicationGroupLogDeliveryConfiguration" }, - "description": "Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" + "description": "Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" }, "maintenanceWindow": { "type": "string", @@ -255797,7 +256896,7 @@ }, "autoMinorVersionUpgrade": { "type": "boolean", - "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine type `\"redis\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" + "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine types `\"redis\"` and `\"valkey\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" }, "automaticFailoverEnabled": { "type": "boolean", @@ -255818,8 +256917,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.\n", - "willReplaceOnChanges": true + "description": "Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.\n" }, "engineVersion": { "type": "string", @@ -255848,7 +256946,7 @@ "items": { "$ref": "#/types/aws:elasticache/ReplicationGroupLogDeliveryConfiguration:ReplicationGroupLogDeliveryConfiguration" }, - "description": "Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" + "description": "Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" }, "maintenanceWindow": { "type": "string", @@ -255998,7 +257096,7 @@ }, "autoMinorVersionUpgrade": { "type": "boolean", - "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine type `\"redis\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" + "description": "Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window.\nOnly supported for engine types `\"redis\"` and `\"valkey\"` and if the engine version is 6 or higher.\nDefaults to `true`.\n" }, "automaticFailoverEnabled": { "type": "boolean", @@ -256027,8 +257125,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.\n", - "willReplaceOnChanges": true + "description": "Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`.\n" }, "engineVersion": { "type": "string", @@ -256061,7 +257158,7 @@ "items": { "$ref": "#/types/aws:elasticache/ReplicationGroupLogDeliveryConfiguration:ReplicationGroupLogDeliveryConfiguration" }, - "description": "Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" + "description": "Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details.\n" }, "maintenanceWindow": { "type": "string", @@ -256395,7 +257492,7 @@ } }, "aws:elasticache/serverlessCache:ServerlessCache": { - "description": "Provides an ElastiCache Serverless Cache resource which manages memcached or redis.\n\n## Example Usage\n\n### Memcached Serverless\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.elasticache.ServerlessCache(\"example\", {\n engine: \"memcached\",\n name: \"example\",\n cacheUsageLimits: {\n dataStorage: {\n maximum: 10,\n unit: \"GB\",\n },\n ecpuPerSeconds: [{\n maximum: 5000,\n }],\n },\n description: \"Test Server\",\n kmsKeyId: test.arn,\n majorEngineVersion: \"1.6\",\n securityGroupIds: [testAwsSecurityGroup.id],\n subnetIds: testAwsSubnet.map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ServerlessCache(\"example\",\n engine=\"memcached\",\n name=\"example\",\n cache_usage_limits={\n \"data_storage\": {\n \"maximum\": 10,\n \"unit\": \"GB\",\n },\n \"ecpu_per_seconds\": [{\n \"maximum\": 5000,\n }],\n },\n description=\"Test Server\",\n kms_key_id=test[\"arn\"],\n major_engine_version=\"1.6\",\n security_group_ids=[test_aws_security_group[\"id\"]],\n subnet_ids=[__item[\"id\"] for __item in test_aws_subnet])\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.ElastiCache.ServerlessCache(\"example\", new()\n {\n Engine = \"memcached\",\n Name = \"example\",\n CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs\n {\n DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs\n {\n Maximum = 10,\n Unit = \"GB\",\n },\n EcpuPerSeconds = new[]\n {\n new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs\n {\n Maximum = 5000,\n },\n },\n },\n Description = \"Test Server\",\n KmsKeyId = test.Arn,\n MajorEngineVersion = \"1.6\",\n SecurityGroupIds = new[]\n {\n testAwsSecurityGroup.Id,\n },\n SubnetIds = testAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range testAwsSubnet {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := elasticache.NewServerlessCache(ctx, \"example\", \u0026elasticache.ServerlessCacheArgs{\nEngine: pulumi.String(\"memcached\"),\nName: pulumi.String(\"example\"),\nCacheUsageLimits: \u0026elasticache.ServerlessCacheCacheUsageLimitsArgs{\nDataStorage: \u0026elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{\nMaximum: pulumi.Int(10),\nUnit: pulumi.String(\"GB\"),\n},\nEcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{\n\u0026elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{\nMaximum: pulumi.Int(5000),\n},\n},\n},\nDescription: pulumi.String(\"Test Server\"),\nKmsKeyId: pulumi.Any(test.Arn),\nMajorEngineVersion: pulumi.String(\"1.6\"),\nSecurityGroupIds: pulumi.StringArray{\ntestAwsSecurityGroup.Id,\n},\nSubnetIds: toPulumiArray(splat0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.elasticache.ServerlessCache;\nimport com.pulumi.aws.elasticache.ServerlessCacheArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;\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 ServerlessCache(\"example\", ServerlessCacheArgs.builder()\n .engine(\"memcached\")\n .name(\"example\")\n .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()\n .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()\n .maximum(10)\n .unit(\"GB\")\n .build())\n .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()\n .maximum(5000)\n .build())\n .build())\n .description(\"Test Server\")\n .kmsKeyId(test.arn())\n .majorEngineVersion(\"1.6\")\n .securityGroupIds(testAwsSecurityGroup.id())\n .subnetIds(testAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis Serverless\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.elasticache.ServerlessCache(\"example\", {\n engine: \"redis\",\n name: \"example\",\n cacheUsageLimits: {\n dataStorage: {\n maximum: 10,\n unit: \"GB\",\n },\n ecpuPerSeconds: [{\n maximum: 5000,\n }],\n },\n dailySnapshotTime: \"09:00\",\n description: \"Test Server\",\n kmsKeyId: test.arn,\n majorEngineVersion: \"7\",\n snapshotRetentionLimit: 1,\n securityGroupIds: [testAwsSecurityGroup.id],\n subnetIds: testAwsSubnet.map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ServerlessCache(\"example\",\n engine=\"redis\",\n name=\"example\",\n cache_usage_limits={\n \"data_storage\": {\n \"maximum\": 10,\n \"unit\": \"GB\",\n },\n \"ecpu_per_seconds\": [{\n \"maximum\": 5000,\n }],\n },\n daily_snapshot_time=\"09:00\",\n description=\"Test Server\",\n kms_key_id=test[\"arn\"],\n major_engine_version=\"7\",\n snapshot_retention_limit=1,\n security_group_ids=[test_aws_security_group[\"id\"]],\n subnet_ids=[__item[\"id\"] for __item in test_aws_subnet])\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.ElastiCache.ServerlessCache(\"example\", new()\n {\n Engine = \"redis\",\n Name = \"example\",\n CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs\n {\n DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs\n {\n Maximum = 10,\n Unit = \"GB\",\n },\n EcpuPerSeconds = new[]\n {\n new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs\n {\n Maximum = 5000,\n },\n },\n },\n DailySnapshotTime = \"09:00\",\n Description = \"Test Server\",\n KmsKeyId = test.Arn,\n MajorEngineVersion = \"7\",\n SnapshotRetentionLimit = 1,\n SecurityGroupIds = new[]\n {\n testAwsSecurityGroup.Id,\n },\n SubnetIds = testAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range testAwsSubnet {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := elasticache.NewServerlessCache(ctx, \"example\", \u0026elasticache.ServerlessCacheArgs{\nEngine: pulumi.String(\"redis\"),\nName: pulumi.String(\"example\"),\nCacheUsageLimits: \u0026elasticache.ServerlessCacheCacheUsageLimitsArgs{\nDataStorage: \u0026elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{\nMaximum: pulumi.Int(10),\nUnit: pulumi.String(\"GB\"),\n},\nEcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{\n\u0026elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{\nMaximum: pulumi.Int(5000),\n},\n},\n},\nDailySnapshotTime: pulumi.String(\"09:00\"),\nDescription: pulumi.String(\"Test Server\"),\nKmsKeyId: pulumi.Any(test.Arn),\nMajorEngineVersion: pulumi.String(\"7\"),\nSnapshotRetentionLimit: pulumi.Int(1),\nSecurityGroupIds: pulumi.StringArray{\ntestAwsSecurityGroup.Id,\n},\nSubnetIds: toPulumiArray(splat0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.elasticache.ServerlessCache;\nimport com.pulumi.aws.elasticache.ServerlessCacheArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;\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 ServerlessCache(\"example\", ServerlessCacheArgs.builder()\n .engine(\"redis\")\n .name(\"example\")\n .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()\n .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()\n .maximum(10)\n .unit(\"GB\")\n .build())\n .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()\n .maximum(5000)\n .build())\n .build())\n .dailySnapshotTime(\"09:00\")\n .description(\"Test Server\")\n .kmsKeyId(test.arn())\n .majorEngineVersion(\"7\")\n .snapshotRetentionLimit(1)\n .securityGroupIds(testAwsSecurityGroup.id())\n .subnetIds(testAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Serverless Cache using the `name`. For example:\n\n```sh\n$ pulumi import aws:elasticache/serverlessCache:ServerlessCache my_cluster my_cluster\n```\n", + "description": "Provides an ElastiCache Serverless Cache resource which manages memcached, redis or valkey.\n\n## Example Usage\n\n### Memcached Serverless\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.elasticache.ServerlessCache(\"example\", {\n engine: \"memcached\",\n name: \"example\",\n cacheUsageLimits: {\n dataStorage: {\n maximum: 10,\n unit: \"GB\",\n },\n ecpuPerSeconds: [{\n maximum: 5000,\n }],\n },\n description: \"Test Server\",\n kmsKeyId: test.arn,\n majorEngineVersion: \"1.6\",\n securityGroupIds: [testAwsSecurityGroup.id],\n subnetIds: testAwsSubnet.map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ServerlessCache(\"example\",\n engine=\"memcached\",\n name=\"example\",\n cache_usage_limits={\n \"data_storage\": {\n \"maximum\": 10,\n \"unit\": \"GB\",\n },\n \"ecpu_per_seconds\": [{\n \"maximum\": 5000,\n }],\n },\n description=\"Test Server\",\n kms_key_id=test[\"arn\"],\n major_engine_version=\"1.6\",\n security_group_ids=[test_aws_security_group[\"id\"]],\n subnet_ids=[__item[\"id\"] for __item in test_aws_subnet])\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.ElastiCache.ServerlessCache(\"example\", new()\n {\n Engine = \"memcached\",\n Name = \"example\",\n CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs\n {\n DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs\n {\n Maximum = 10,\n Unit = \"GB\",\n },\n EcpuPerSeconds = new[]\n {\n new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs\n {\n Maximum = 5000,\n },\n },\n },\n Description = \"Test Server\",\n KmsKeyId = test.Arn,\n MajorEngineVersion = \"1.6\",\n SecurityGroupIds = new[]\n {\n testAwsSecurityGroup.Id,\n },\n SubnetIds = testAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range testAwsSubnet {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := elasticache.NewServerlessCache(ctx, \"example\", \u0026elasticache.ServerlessCacheArgs{\nEngine: pulumi.String(\"memcached\"),\nName: pulumi.String(\"example\"),\nCacheUsageLimits: \u0026elasticache.ServerlessCacheCacheUsageLimitsArgs{\nDataStorage: \u0026elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{\nMaximum: pulumi.Int(10),\nUnit: pulumi.String(\"GB\"),\n},\nEcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{\n\u0026elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{\nMaximum: pulumi.Int(5000),\n},\n},\n},\nDescription: pulumi.String(\"Test Server\"),\nKmsKeyId: pulumi.Any(test.Arn),\nMajorEngineVersion: pulumi.String(\"1.6\"),\nSecurityGroupIds: pulumi.StringArray{\ntestAwsSecurityGroup.Id,\n},\nSubnetIds: toPulumiArray(splat0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.elasticache.ServerlessCache;\nimport com.pulumi.aws.elasticache.ServerlessCacheArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;\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 ServerlessCache(\"example\", ServerlessCacheArgs.builder()\n .engine(\"memcached\")\n .name(\"example\")\n .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()\n .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()\n .maximum(10)\n .unit(\"GB\")\n .build())\n .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()\n .maximum(5000)\n .build())\n .build())\n .description(\"Test Server\")\n .kmsKeyId(test.arn())\n .majorEngineVersion(\"1.6\")\n .securityGroupIds(testAwsSecurityGroup.id())\n .subnetIds(testAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redis OSS Serverless\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.elasticache.ServerlessCache(\"example\", {\n engine: \"redis\",\n name: \"example\",\n cacheUsageLimits: {\n dataStorage: {\n maximum: 10,\n unit: \"GB\",\n },\n ecpuPerSeconds: [{\n maximum: 5000,\n }],\n },\n dailySnapshotTime: \"09:00\",\n description: \"Test Server\",\n kmsKeyId: test.arn,\n majorEngineVersion: \"7\",\n snapshotRetentionLimit: 1,\n securityGroupIds: [testAwsSecurityGroup.id],\n subnetIds: testAwsSubnet.map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ServerlessCache(\"example\",\n engine=\"redis\",\n name=\"example\",\n cache_usage_limits={\n \"data_storage\": {\n \"maximum\": 10,\n \"unit\": \"GB\",\n },\n \"ecpu_per_seconds\": [{\n \"maximum\": 5000,\n }],\n },\n daily_snapshot_time=\"09:00\",\n description=\"Test Server\",\n kms_key_id=test[\"arn\"],\n major_engine_version=\"7\",\n snapshot_retention_limit=1,\n security_group_ids=[test_aws_security_group[\"id\"]],\n subnet_ids=[__item[\"id\"] for __item in test_aws_subnet])\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.ElastiCache.ServerlessCache(\"example\", new()\n {\n Engine = \"redis\",\n Name = \"example\",\n CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs\n {\n DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs\n {\n Maximum = 10,\n Unit = \"GB\",\n },\n EcpuPerSeconds = new[]\n {\n new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs\n {\n Maximum = 5000,\n },\n },\n },\n DailySnapshotTime = \"09:00\",\n Description = \"Test Server\",\n KmsKeyId = test.Arn,\n MajorEngineVersion = \"7\",\n SnapshotRetentionLimit = 1,\n SecurityGroupIds = new[]\n {\n testAwsSecurityGroup.Id,\n },\n SubnetIds = testAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range testAwsSubnet {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := elasticache.NewServerlessCache(ctx, \"example\", \u0026elasticache.ServerlessCacheArgs{\nEngine: pulumi.String(\"redis\"),\nName: pulumi.String(\"example\"),\nCacheUsageLimits: \u0026elasticache.ServerlessCacheCacheUsageLimitsArgs{\nDataStorage: \u0026elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{\nMaximum: pulumi.Int(10),\nUnit: pulumi.String(\"GB\"),\n},\nEcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{\n\u0026elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{\nMaximum: pulumi.Int(5000),\n},\n},\n},\nDailySnapshotTime: pulumi.String(\"09:00\"),\nDescription: pulumi.String(\"Test Server\"),\nKmsKeyId: pulumi.Any(test.Arn),\nMajorEngineVersion: pulumi.String(\"7\"),\nSnapshotRetentionLimit: pulumi.Int(1),\nSecurityGroupIds: pulumi.StringArray{\ntestAwsSecurityGroup.Id,\n},\nSubnetIds: toPulumiArray(splat0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.elasticache.ServerlessCache;\nimport com.pulumi.aws.elasticache.ServerlessCacheArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;\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 ServerlessCache(\"example\", ServerlessCacheArgs.builder()\n .engine(\"redis\")\n .name(\"example\")\n .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()\n .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()\n .maximum(10)\n .unit(\"GB\")\n .build())\n .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()\n .maximum(5000)\n .build())\n .build())\n .dailySnapshotTime(\"09:00\")\n .description(\"Test Server\")\n .kmsKeyId(test.arn())\n .majorEngineVersion(\"7\")\n .snapshotRetentionLimit(1)\n .securityGroupIds(testAwsSecurityGroup.id())\n .subnetIds(testAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Valkey Serverless\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.elasticache.ServerlessCache(\"example\", {\n engine: \"valkey\",\n name: \"example\",\n cacheUsageLimits: {\n dataStorage: {\n maximum: 10,\n unit: \"GB\",\n },\n ecpuPerSeconds: [{\n maximum: 5000,\n }],\n },\n dailySnapshotTime: \"09:00\",\n description: \"Test Server\",\n kmsKeyId: test.arn,\n majorEngineVersion: \"7\",\n snapshotRetentionLimit: 1,\n securityGroupIds: [testAwsSecurityGroup.id],\n subnetIds: testAwsSubnet.map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.elasticache.ServerlessCache(\"example\",\n engine=\"valkey\",\n name=\"example\",\n cache_usage_limits={\n \"data_storage\": {\n \"maximum\": 10,\n \"unit\": \"GB\",\n },\n \"ecpu_per_seconds\": [{\n \"maximum\": 5000,\n }],\n },\n daily_snapshot_time=\"09:00\",\n description=\"Test Server\",\n kms_key_id=test[\"arn\"],\n major_engine_version=\"7\",\n snapshot_retention_limit=1,\n security_group_ids=[test_aws_security_group[\"id\"]],\n subnet_ids=[__item[\"id\"] for __item in test_aws_subnet])\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.ElastiCache.ServerlessCache(\"example\", new()\n {\n Engine = \"valkey\",\n Name = \"example\",\n CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs\n {\n DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs\n {\n Maximum = 10,\n Unit = \"GB\",\n },\n EcpuPerSeconds = new[]\n {\n new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs\n {\n Maximum = 5000,\n },\n },\n },\n DailySnapshotTime = \"09:00\",\n Description = \"Test Server\",\n KmsKeyId = test.Arn,\n MajorEngineVersion = \"7\",\n SnapshotRetentionLimit = 1,\n SecurityGroupIds = new[]\n {\n testAwsSecurityGroup.Id,\n },\n SubnetIds = testAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nvar splat0 []interface{}\nfor _, val0 := range testAwsSubnet {\nsplat0 = append(splat0, val0.Id)\n}\n_, err := elasticache.NewServerlessCache(ctx, \"example\", \u0026elasticache.ServerlessCacheArgs{\nEngine: pulumi.String(\"valkey\"),\nName: pulumi.String(\"example\"),\nCacheUsageLimits: \u0026elasticache.ServerlessCacheCacheUsageLimitsArgs{\nDataStorage: \u0026elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{\nMaximum: pulumi.Int(10),\nUnit: pulumi.String(\"GB\"),\n},\nEcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{\n\u0026elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{\nMaximum: pulumi.Int(5000),\n},\n},\n},\nDailySnapshotTime: pulumi.String(\"09:00\"),\nDescription: pulumi.String(\"Test Server\"),\nKmsKeyId: pulumi.Any(test.Arn),\nMajorEngineVersion: pulumi.String(\"7\"),\nSnapshotRetentionLimit: pulumi.Int(1),\nSecurityGroupIds: pulumi.StringArray{\ntestAwsSecurityGroup.Id,\n},\nSubnetIds: toPulumiArray(splat0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\nfunc toPulumiArray(arr []) pulumi.Array {\nvar pulumiArr pulumi.Array\nfor _, v := range arr {\npulumiArr = append(pulumiArr, pulumi.(v))\n}\nreturn pulumiArr\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.elasticache.ServerlessCache;\nimport com.pulumi.aws.elasticache.ServerlessCacheArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;\nimport com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;\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 ServerlessCache(\"example\", ServerlessCacheArgs.builder()\n .engine(\"valkey\")\n .name(\"example\")\n .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()\n .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()\n .maximum(10)\n .unit(\"GB\")\n .build())\n .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()\n .maximum(5000)\n .build())\n .build())\n .dailySnapshotTime(\"09:00\")\n .description(\"Test Server\")\n .kmsKeyId(test.arn())\n .majorEngineVersion(\"7\")\n .snapshotRetentionLimit(1)\n .securityGroupIds(testAwsSecurityGroup.id())\n .subnetIds(testAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ElastiCache Serverless Cache using the `name`. For example:\n\n```sh\n$ pulumi import aws:elasticache/serverlessCache:ServerlessCache my_cluster my_cluster\n```\n", "properties": { "arn": { "type": "string", @@ -256411,7 +257508,7 @@ }, "dailySnapshotTime": { "type": "string", - "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `\"redis\"`. Defaults to `0`.\n" + "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `\"redis\"` or `\"valkey\"`. Defaults to `0`.\n" }, "description": { "type": "string", @@ -256426,7 +257523,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n" + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`.\n" }, "fullEngineVersion": { "type": "string", @@ -256526,7 +257623,7 @@ }, "dailySnapshotTime": { "type": "string", - "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `\"redis\"`. Defaults to `0`.\n" + "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `\"redis\"` or `\"valkey\"`. Defaults to `0`.\n" }, "description": { "type": "string", @@ -256534,7 +257631,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n" + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`.\n" }, "kmsKeyId": { "type": "string", @@ -256608,7 +257705,7 @@ }, "dailySnapshotTime": { "type": "string", - "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `\"redis\"`. Defaults to `0`.\n" + "description": "The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `\"redis\"` or `\"valkey\"`. Defaults to `0`.\n" }, "description": { "type": "string", @@ -256623,7 +257720,7 @@ }, "engine": { "type": "string", - "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`.\n" + "description": "Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`.\n" }, "fullEngineVersion": { "type": "string", @@ -280868,6 +281965,169 @@ "type": "object" } }, + "aws:imagebuilder/lifecyclePolicy:LifecyclePolicy": { + "description": "Manages an Image Builder Lifecycle Policy.\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 current = aws.getRegion({});\nconst currentGetPartition = aws.getPartition({});\nconst example = new aws.iam.Role(\"example\", {\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Principal: {\n Service: currentGetPartition.then(currentGetPartition =\u003e `imagebuilder.${currentGetPartition.dnsSuffix}`),\n },\n }],\n }),\n name: \"example\",\n});\nconst exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment(\"example\", {\n policyArn: currentGetPartition.then(currentGetPartition =\u003e `arn:${currentGetPartition.partition}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy`),\n role: example.name,\n});\nconst exampleLifecyclePolicy = new aws.imagebuilder.LifecyclePolicy(\"example\", {\n name: \"name\",\n description: \"Example description\",\n executionRole: example.arn,\n resourceType: \"AMI_IMAGE\",\n policyDetails: [{\n action: {\n type: \"DELETE\",\n },\n filter: {\n type: \"AGE\",\n value: 6,\n retainAtLeast: 10,\n unit: \"YEARS\",\n },\n }],\n resourceSelection: {\n tagMap: {\n key1: \"value1\",\n key2: \"value2\",\n },\n },\n}, {\n dependsOn: [exampleRolePolicyAttachment],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ncurrent = aws.get_region()\ncurrent_get_partition = aws.get_partition()\nexample = aws.iam.Role(\"example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": f\"imagebuilder.{current_get_partition.dns_suffix}\",\n },\n }],\n }),\n name=\"example\")\nexample_role_policy_attachment = aws.iam.RolePolicyAttachment(\"example\",\n policy_arn=f\"arn:{current_get_partition.partition}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy\",\n role=example.name)\nexample_lifecycle_policy = aws.imagebuilder.LifecyclePolicy(\"example\",\n name=\"name\",\n description=\"Example description\",\n execution_role=example.arn,\n resource_type=\"AMI_IMAGE\",\n policy_details=[{\n \"action\": {\n \"type\": \"DELETE\",\n },\n \"filter\": {\n \"type\": \"AGE\",\n \"value\": 6,\n \"retain_at_least\": 10,\n \"unit\": \"YEARS\",\n },\n }],\n resource_selection={\n \"tag_map\": {\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[example_role_policy_attachment]))\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 current = Aws.GetRegion.Invoke();\n\n var currentGetPartition = Aws.GetPartition.Invoke();\n\n var example = new Aws.Iam.Role(\"example\", new()\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 [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = $\"imagebuilder.{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.DnsSuffix)}\",\n },\n },\n },\n }),\n Name = \"example\",\n });\n\n var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment(\"example\", new()\n {\n PolicyArn = $\"arn:{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.Partition)}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy\",\n Role = example.Name,\n });\n\n var exampleLifecyclePolicy = new Aws.ImageBuilder.LifecyclePolicy(\"example\", new()\n {\n Name = \"name\",\n Description = \"Example description\",\n ExecutionRole = example.Arn,\n ResourceType = \"AMI_IMAGE\",\n PolicyDetails = new[]\n {\n new Aws.ImageBuilder.Inputs.LifecyclePolicyPolicyDetailArgs\n {\n Action = new Aws.ImageBuilder.Inputs.LifecyclePolicyPolicyDetailActionArgs\n {\n Type = \"DELETE\",\n },\n Filter = new Aws.ImageBuilder.Inputs.LifecyclePolicyPolicyDetailFilterArgs\n {\n Type = \"AGE\",\n Value = 6,\n RetainAtLeast = 10,\n Unit = \"YEARS\",\n },\n },\n },\n ResourceSelection = new Aws.ImageBuilder.Inputs.LifecyclePolicyResourceSelectionArgs\n {\n TagMap = \n {\n { \"key1\", \"value1\" },\n { \"key2\", \"value2\" },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n exampleRolePolicyAttachment,\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\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/imagebuilder\"\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 := aws.GetRegion(ctx, \u0026aws.GetRegionArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetPartition, err := aws.GetPartition(ctx, \u0026aws.GetPartitionArgs{}, 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\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": fmt.Sprintf(\"imagebuilder.%v\", currentGetPartition.DnsSuffix),\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\texample, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\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\texampleRolePolicyAttachment, err := iam.NewRolePolicyAttachment(ctx, \"example\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tPolicyArn: pulumi.Sprintf(\"arn:%v:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy\", currentGetPartition.Partition),\n\t\t\tRole: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = imagebuilder.NewLifecyclePolicy(ctx, \"example\", \u0026imagebuilder.LifecyclePolicyArgs{\n\t\t\tName: pulumi.String(\"name\"),\n\t\t\tDescription: pulumi.String(\"Example description\"),\n\t\t\tExecutionRole: example.Arn,\n\t\t\tResourceType: pulumi.String(\"AMI_IMAGE\"),\n\t\t\tPolicyDetails: imagebuilder.LifecyclePolicyPolicyDetailArray{\n\t\t\t\t\u0026imagebuilder.LifecyclePolicyPolicyDetailArgs{\n\t\t\t\t\tAction: \u0026imagebuilder.LifecyclePolicyPolicyDetailActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"DELETE\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilter: \u0026imagebuilder.LifecyclePolicyPolicyDetailFilterArgs{\n\t\t\t\t\t\tType: pulumi.String(\"AGE\"),\n\t\t\t\t\t\tValue: pulumi.Int(6),\n\t\t\t\t\t\tRetainAtLeast: pulumi.Int(10),\n\t\t\t\t\t\tUnit: pulumi.String(\"YEARS\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceSelection: \u0026imagebuilder.LifecyclePolicyResourceSelectionArgs{\n\t\t\t\tTagMap: pulumi.StringMap{\n\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleRolePolicyAttachment,\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.GetPartitionArgs;\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.imagebuilder.LifecyclePolicy;\nimport com.pulumi.aws.imagebuilder.LifecyclePolicyArgs;\nimport com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailArgs;\nimport com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailActionArgs;\nimport com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailFilterArgs;\nimport com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyResourceSelectionArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getRegion();\n\n final var currentGetPartition = AwsFunctions.getPartition();\n\n var example = new Role(\"example\", RoleArgs.builder()\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(\"Principal\", jsonObject(\n jsonProperty(\"Service\", String.format(\"imagebuilder.%s\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.dnsSuffix())))\n ))\n )))\n )))\n .name(\"example\")\n .build());\n\n var exampleRolePolicyAttachment = new RolePolicyAttachment(\"exampleRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n .policyArn(String.format(\"arn:%s:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.partition())))\n .role(example.name())\n .build());\n\n var exampleLifecyclePolicy = new LifecyclePolicy(\"exampleLifecyclePolicy\", LifecyclePolicyArgs.builder()\n .name(\"name\")\n .description(\"Example description\")\n .executionRole(example.arn())\n .resourceType(\"AMI_IMAGE\")\n .policyDetails(LifecyclePolicyPolicyDetailArgs.builder()\n .action(LifecyclePolicyPolicyDetailActionArgs.builder()\n .type(\"DELETE\")\n .build())\n .filter(LifecyclePolicyPolicyDetailFilterArgs.builder()\n .type(\"AGE\")\n .value(6)\n .retainAtLeast(10)\n .unit(\"YEARS\")\n .build())\n .build())\n .resourceSelection(LifecyclePolicyResourceSelectionArgs.builder()\n .tagMap(Map.ofEntries(\n Map.entry(\"key1\", \"value1\"),\n Map.entry(\"key2\", \"value2\")\n ))\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(exampleRolePolicyAttachment)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Principal:\n Service: imagebuilder.${currentGetPartition.dnsSuffix}\n name: example\n exampleRolePolicyAttachment:\n type: aws:iam:RolePolicyAttachment\n name: example\n properties:\n policyArn: arn:${currentGetPartition.partition}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy\n role: ${example.name}\n exampleLifecyclePolicy:\n type: aws:imagebuilder:LifecyclePolicy\n name: example\n properties:\n name: name\n description: Example description\n executionRole: ${example.arn}\n resourceType: AMI_IMAGE\n policyDetails:\n - action:\n type: DELETE\n filter:\n type: AGE\n value: 6\n retainAtLeast: 10\n unit: YEARS\n resourceSelection:\n tagMap:\n key1: value1\n key2: value2\n options:\n dependson:\n - ${exampleRolePolicyAttachment}\nvariables:\n current:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n currentGetPartition:\n fn::invoke:\n Function: aws:getPartition\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_imagebuilder_lifecycle_policy` using the Amazon Resource Name (ARN). For example:\n\n```sh\n$ pulumi import aws:imagebuilder/lifecyclePolicy:LifecyclePolicy example arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/example\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the lifecycle policy.\n" + }, + "description": { + "type": "string", + "description": "description for the lifecycle policy.\n" + }, + "executionRole": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role).\n" + }, + "name": { + "type": "string", + "description": "The name of the lifecycle policy to create.\n" + }, + "policyDetails": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetail:LifecyclePolicyPolicyDetail" + }, + "description": "Configuration block with policy details. Detailed below.\n" + }, + "resourceSelection": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyResourceSelection:LifecyclePolicyResourceSelection", + "description": "Selection criteria for the resources that the lifecycle policy applies to. Detailed below.\n\nThe following arguments are optional:\n" + }, + "resourceType": { + "type": "string", + "description": "The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`.\n" + }, + "status": { + "type": "string", + "description": "The status of the lifecycle policy.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the Image Builder Lifecycle Policy. 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": [ + "arn", + "executionRole", + "name", + "resourceType", + "status", + "tagsAll" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "description for the lifecycle policy.\n" + }, + "executionRole": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role).\n" + }, + "name": { + "type": "string", + "description": "The name of the lifecycle policy to create.\n" + }, + "policyDetails": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetail:LifecyclePolicyPolicyDetail" + }, + "description": "Configuration block with policy details. Detailed below.\n" + }, + "resourceSelection": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyResourceSelection:LifecyclePolicyResourceSelection", + "description": "Selection criteria for the resources that the lifecycle policy applies to. Detailed below.\n\nThe following arguments are optional:\n" + }, + "resourceType": { + "type": "string", + "description": "The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`.\n" + }, + "status": { + "type": "string", + "description": "The status of the lifecycle policy.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the Image Builder Lifecycle Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + } + }, + "requiredInputs": [ + "executionRole", + "resourceType" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering LifecyclePolicy resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the lifecycle policy.\n" + }, + "description": { + "type": "string", + "description": "description for the lifecycle policy.\n" + }, + "executionRole": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role).\n" + }, + "name": { + "type": "string", + "description": "The name of the lifecycle policy to create.\n" + }, + "policyDetails": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyPolicyDetail:LifecyclePolicyPolicyDetail" + }, + "description": "Configuration block with policy details. Detailed below.\n" + }, + "resourceSelection": { + "$ref": "#/types/aws:imagebuilder/LifecyclePolicyResourceSelection:LifecyclePolicyResourceSelection", + "description": "Selection criteria for the resources that the lifecycle policy applies to. Detailed below.\n\nThe following arguments are optional:\n" + }, + "resourceType": { + "type": "string", + "description": "The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`.\n" + }, + "status": { + "type": "string", + "description": "The status of the lifecycle policy.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the Image Builder Lifecycle Policy. 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:imagebuilder/workflow:Workflow": { "description": "Resource for managing an AWS EC2 Image Builder Workflow.\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.imagebuilder.Workflow(\"example\", {\n name: \"example\",\n version: \"1.0.0\",\n type: \"TEST\",\n data: `name: example\ndescription: Workflow to test an image\nschemaVersion: 1.0\n\nparameters:\n - name: waitForActionAtEnd\n type: boolean\n\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"ssmAgent\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.: \".stepOutputs.LaunchTestInstance.instanceId\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \".parameters.waitForActionAtEnd\"\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.imagebuilder.Workflow(\"example\",\n name=\"example\",\n version=\"1.0.0\",\n type=\"TEST\",\n data=\"\"\"name: example\ndescription: Workflow to test an image\nschemaVersion: 1.0\n\nparameters:\n - name: waitForActionAtEnd\n type: boolean\n\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"ssmAgent\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \"$.parameters.waitForActionAtEnd\"\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.ImageBuilder.Workflow(\"example\", new()\n {\n Name = \"example\",\n Version = \"1.0.0\",\n Type = \"TEST\",\n Data = @\"name: example\ndescription: Workflow to test an image\nschemaVersion: 1.0\n\nparameters:\n - name: waitForActionAtEnd\n type: boolean\n\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"\"ssmAgent\"\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"\"$.stepOutputs.LaunchTestInstance.instanceId\"\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \"\"$.parameters.waitForActionAtEnd\"\"\n\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/imagebuilder\"\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 := imagebuilder.NewWorkflow(ctx, \"example\", \u0026imagebuilder.WorkflowArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tVersion: pulumi.String(\"1.0.0\"),\n\t\t\tType: pulumi.String(\"TEST\"),\n\t\t\tData: pulumi.String(`name: example\ndescription: Workflow to test an image\nschemaVersion: 1.0\n\nparameters:\n - name: waitForActionAtEnd\n type: boolean\n\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"ssmAgent\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \"$.parameters.waitForActionAtEnd\"\n`),\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.imagebuilder.Workflow;\nimport com.pulumi.aws.imagebuilder.WorkflowArgs;\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 Workflow(\"example\", WorkflowArgs.builder()\n .name(\"example\")\n .version(\"1.0.0\")\n .type(\"TEST\")\n .data(\"\"\"\nname: example\ndescription: Workflow to test an image\nschemaVersion: 1.0\n\nparameters:\n - name: waitForActionAtEnd\n type: boolean\n\nsteps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"ssmAgent\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \"$.parameters.waitForActionAtEnd\"\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:imagebuilder:Workflow\n properties:\n name: example\n version: 1.0.0\n type: TEST\n data: |\n name: example\n description: Workflow to test an image\n schemaVersion: 1.0\n\n parameters:\n - name: waitForActionAtEnd\n type: boolean\n\n steps:\n - name: LaunchTestInstance\n action: LaunchInstance\n onFailure: Abort\n inputs:\n waitFor: \"ssmAgent\"\n\n - name: TerminateTestInstance\n action: TerminateInstance\n onFailure: Continue\n inputs:\n instanceId.$: \"$.stepOutputs.LaunchTestInstance.instanceId\"\n\n - name: WaitForActionAtEnd\n action: WaitForAction\n if:\n booleanEquals: true\n value: \"$.parameters.waitForActionAtEnd\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import EC2 Image Builder Workflow using the `example_id_arg`. For example:\n\n```sh\n$ pulumi import aws:imagebuilder/workflow:Workflow example arn:aws:imagebuilder:us-east-1:aws:workflow/test/example/1.0.1/1\n```\nCertain resource arguments, such as `uri`, cannot be read via the API and imported into Terraform. Terraform will display a difference for these arguments the first run after import if declared in the Terraform configuration for an imported resource.\n\n", "properties": { @@ -286083,7 +287343,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.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", + "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### Iceberg Destination\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst current = aws.getCallerIdentity({});\nconst currentGetPartition = aws.getPartition({});\nconst currentGetRegion = aws.getRegion({});\nconst bucket = new aws.s3.BucketV2(\"bucket\", {\n bucket: \"test-bucket\",\n forceDestroy: true,\n});\nconst test = new aws.glue.CatalogDatabase(\"test\", {name: \"test\"});\nconst testCatalogTable = new aws.glue.CatalogTable(\"test\", {\n name: \"test\",\n databaseName: test.name,\n parameters: {\n format: \"parquet\",\n },\n tableType: \"EXTERNAL_TABLE\",\n openTableFormatInput: {\n icebergInput: {\n metadataOperation: \"CREATE\",\n version: \"2\",\n },\n },\n storageDescriptor: {\n location: pulumi.interpolate`s3://${bucket.id}`,\n columns: [{\n name: \"my_column_1\",\n type: \"int\",\n }],\n },\n});\nconst testStream = new aws.kinesis.FirehoseDeliveryStream(\"test_stream\", {\n name: \"kinesis-firehose-test-stream\",\n destination: \"iceberg\",\n icebergConfiguration: {\n roleArn: firehoseRole.arn,\n catalogArn: Promise.all([currentGetPartition, currentGetRegion, current]).then(([currentGetPartition, currentGetRegion, current]) =\u003e `arn:${currentGetPartition.partition}:glue:${currentGetRegion.name}:${current.accountId}:catalog`),\n bufferingSize: 10,\n bufferingInterval: 400,\n s3Configuration: {\n roleArn: firehoseRole.arn,\n bucketArn: bucket.arn,\n },\n destinationTableConfigurations: [{\n databaseName: test.name,\n tableName: testCatalogTable.name,\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\ncurrent = aws.get_caller_identity()\ncurrent_get_partition = aws.get_partition()\ncurrent_get_region = aws.get_region()\nbucket = aws.s3.BucketV2(\"bucket\",\n bucket=\"test-bucket\",\n force_destroy=True)\ntest = aws.glue.CatalogDatabase(\"test\", name=\"test\")\ntest_catalog_table = aws.glue.CatalogTable(\"test\",\n name=\"test\",\n database_name=test.name,\n parameters={\n \"format\": \"parquet\",\n },\n table_type=\"EXTERNAL_TABLE\",\n open_table_format_input={\n \"iceberg_input\": {\n \"metadata_operation\": \"CREATE\",\n \"version\": \"2\",\n },\n },\n storage_descriptor={\n \"location\": bucket.id.apply(lambda id: f\"s3://{id}\"),\n \"columns\": [{\n \"name\": \"my_column_1\",\n \"type\": \"int\",\n }],\n })\ntest_stream = aws.kinesis.FirehoseDeliveryStream(\"test_stream\",\n name=\"kinesis-firehose-test-stream\",\n destination=\"iceberg\",\n iceberg_configuration={\n \"role_arn\": firehose_role[\"arn\"],\n \"catalog_arn\": f\"arn:{current_get_partition.partition}:glue:{current_get_region.name}:{current.account_id}:catalog\",\n \"buffering_size\": 10,\n \"buffering_interval\": 400,\n \"s3_configuration\": {\n \"role_arn\": firehose_role[\"arn\"],\n \"bucket_arn\": bucket.arn,\n },\n \"destination_table_configurations\": [{\n \"database_name\": test.name,\n \"table_name\": test_catalog_table.name,\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 current = Aws.GetCallerIdentity.Invoke();\n\n var currentGetPartition = Aws.GetPartition.Invoke();\n\n var currentGetRegion = Aws.GetRegion.Invoke();\n\n var bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"test-bucket\",\n ForceDestroy = true,\n });\n\n var test = new Aws.Glue.CatalogDatabase(\"test\", new()\n {\n Name = \"test\",\n });\n\n var testCatalogTable = new Aws.Glue.CatalogTable(\"test\", new()\n {\n Name = \"test\",\n DatabaseName = test.Name,\n Parameters = \n {\n { \"format\", \"parquet\" },\n },\n TableType = \"EXTERNAL_TABLE\",\n OpenTableFormatInput = new Aws.Glue.Inputs.CatalogTableOpenTableFormatInputArgs\n {\n IcebergInput = new Aws.Glue.Inputs.CatalogTableOpenTableFormatInputIcebergInputArgs\n {\n MetadataOperation = \"CREATE\",\n Version = \"2\",\n },\n },\n StorageDescriptor = new Aws.Glue.Inputs.CatalogTableStorageDescriptorArgs\n {\n Location = bucket.Id.Apply(id =\u003e $\"s3://{id}\"),\n Columns = new[]\n {\n new Aws.Glue.Inputs.CatalogTableStorageDescriptorColumnArgs\n {\n Name = \"my_column_1\",\n Type = \"int\",\n },\n },\n },\n });\n\n var testStream = new Aws.Kinesis.FirehoseDeliveryStream(\"test_stream\", new()\n {\n Name = \"kinesis-firehose-test-stream\",\n Destination = \"iceberg\",\n IcebergConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n CatalogArn = Output.Tuple(currentGetPartition, currentGetRegion, current).Apply(values =\u003e\n {\n var currentGetPartition = values.Item1;\n var currentGetRegion = values.Item2;\n var current = values.Item3;\n return $\"arn:{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.Partition)}:glue:{currentGetRegion.Apply(getRegionResult =\u003e getRegionResult.Name)}:{current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:catalog\";\n }),\n BufferingSize = 10,\n BufferingInterval = 400,\n S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs\n {\n RoleArn = firehoseRole.Arn,\n BucketArn = bucket.Arn,\n },\n DestinationTableConfigurations = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs\n {\n DatabaseName = test.Name,\n TableName = testCatalogTable.Name,\n },\n },\n ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs\n {\n Enabled = true,\n Processors = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs\n {\n Type = \"Lambda\",\n Parameters = new[]\n {\n new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs\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\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis\"\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\tcurrent, err := aws.GetCallerIdentity(ctx, \u0026aws.GetCallerIdentityArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetPartition, err := aws.GetPartition(ctx, \u0026aws.GetPartitionArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetRegion, err := aws.GetRegion(ctx, \u0026aws.GetRegionArgs{}, nil)\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(\"test-bucket\"),\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := glue.NewCatalogDatabase(ctx, \"test\", \u0026glue.CatalogDatabaseArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestCatalogTable, err := glue.NewCatalogTable(ctx, \"test\", \u0026glue.CatalogTableArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tDatabaseName: test.Name,\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"format\": pulumi.String(\"parquet\"),\n\t\t\t},\n\t\t\tTableType: pulumi.String(\"EXTERNAL_TABLE\"),\n\t\t\tOpenTableFormatInput: \u0026glue.CatalogTableOpenTableFormatInputArgs{\n\t\t\t\tIcebergInput: \u0026glue.CatalogTableOpenTableFormatInputIcebergInputArgs{\n\t\t\t\t\tMetadataOperation: pulumi.String(\"CREATE\"),\n\t\t\t\t\tVersion: pulumi.String(\"2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorageDescriptor: \u0026glue.CatalogTableStorageDescriptorArgs{\n\t\t\t\tLocation: bucket.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"s3://%v\", id), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tColumns: glue.CatalogTableStorageDescriptorColumnArray{\n\t\t\t\t\t\u0026glue.CatalogTableStorageDescriptorColumnArgs{\n\t\t\t\t\t\tName: pulumi.String(\"my_column_1\"),\n\t\t\t\t\t\tType: pulumi.String(\"int\"),\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 = kinesis.NewFirehoseDeliveryStream(ctx, \"test_stream\", \u0026kinesis.FirehoseDeliveryStreamArgs{\n\t\t\tName: pulumi.String(\"kinesis-firehose-test-stream\"),\n\t\t\tDestination: pulumi.String(\"iceberg\"),\n\t\t\tIcebergConfiguration: \u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationArgs{\n\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\tCatalogArn: pulumi.Sprintf(\"arn:%v:glue:%v:%v:catalog\", currentGetPartition.Partition, currentGetRegion.Name, current.AccountId),\n\t\t\t\tBufferingSize: pulumi.Int(10),\n\t\t\t\tBufferingInterval: pulumi.Int(400),\n\t\t\t\tS3Configuration: \u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs{\n\t\t\t\t\tRoleArn: pulumi.Any(firehoseRole.Arn),\n\t\t\t\t\tBucketArn: bucket.Arn,\n\t\t\t\t},\n\t\t\t\tDestinationTableConfigurations: kinesis.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArray{\n\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs{\n\t\t\t\t\t\tDatabaseName: test.Name,\n\t\t\t\t\t\tTableName: testCatalogTable.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tProcessingConfiguration: \u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tProcessors: kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArray{\n\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Lambda\"),\n\t\t\t\t\t\t\tParameters: kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArray{\n\t\t\t\t\t\t\t\t\u0026kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs{\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.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.inputs.GetPartitionArgs;\nimport com.pulumi.aws.inputs.GetRegionArgs;\nimport com.pulumi.aws.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.glue.CatalogDatabase;\nimport com.pulumi.aws.glue.CatalogDatabaseArgs;\nimport com.pulumi.aws.glue.CatalogTable;\nimport com.pulumi.aws.glue.CatalogTableArgs;\nimport com.pulumi.aws.glue.inputs.CatalogTableOpenTableFormatInputArgs;\nimport com.pulumi.aws.glue.inputs.CatalogTableOpenTableFormatInputIcebergInputArgs;\nimport com.pulumi.aws.glue.inputs.CatalogTableStorageDescriptorArgs;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStream;\nimport com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs;\nimport com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getCallerIdentity();\n\n final var currentGetPartition = AwsFunctions.getPartition();\n\n final var currentGetRegion = AwsFunctions.getRegion();\n\n var bucket = new BucketV2(\"bucket\", BucketV2Args.builder()\n .bucket(\"test-bucket\")\n .forceDestroy(true)\n .build());\n\n var test = new CatalogDatabase(\"test\", CatalogDatabaseArgs.builder()\n .name(\"test\")\n .build());\n\n var testCatalogTable = new CatalogTable(\"testCatalogTable\", CatalogTableArgs.builder()\n .name(\"test\")\n .databaseName(test.name())\n .parameters(Map.of(\"format\", \"parquet\"))\n .tableType(\"EXTERNAL_TABLE\")\n .openTableFormatInput(CatalogTableOpenTableFormatInputArgs.builder()\n .icebergInput(CatalogTableOpenTableFormatInputIcebergInputArgs.builder()\n .metadataOperation(\"CREATE\")\n .version(2)\n .build())\n .build())\n .storageDescriptor(CatalogTableStorageDescriptorArgs.builder()\n .location(bucket.id().applyValue(id -\u003e String.format(\"s3://%s\", id)))\n .columns(CatalogTableStorageDescriptorColumnArgs.builder()\n .name(\"my_column_1\")\n .type(\"int\")\n .build())\n .build())\n .build());\n\n var testStream = new FirehoseDeliveryStream(\"testStream\", FirehoseDeliveryStreamArgs.builder()\n .name(\"kinesis-firehose-test-stream\")\n .destination(\"iceberg\")\n .icebergConfiguration(FirehoseDeliveryStreamIcebergConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .catalogArn(String.format(\"arn:%s:glue:%s:%s:catalog\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.partition()),currentGetRegion.applyValue(getRegionResult -\u003e getRegionResult.name()),current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId())))\n .bufferingSize(10)\n .bufferingInterval(400)\n .s3Configuration(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs.builder()\n .roleArn(firehoseRole.arn())\n .bucketArn(bucket.arn())\n .build())\n .destinationTableConfigurations(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs.builder()\n .databaseName(test.name())\n .tableName(testCatalogTable.name())\n .build())\n .processingConfiguration(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs.builder()\n .enabled(\"true\")\n .processors(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs.builder()\n .type(\"Lambda\")\n .parameters(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs.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 bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: test-bucket\n forceDestroy: true\n test:\n type: aws:glue:CatalogDatabase\n properties:\n name: test\n testCatalogTable:\n type: aws:glue:CatalogTable\n name: test\n properties:\n name: test\n databaseName: ${test.name}\n parameters:\n format: parquet\n tableType: EXTERNAL_TABLE\n openTableFormatInput:\n icebergInput:\n metadataOperation: CREATE\n version: 2\n storageDescriptor:\n location: s3://${bucket.id}\n columns:\n - name: my_column_1\n type: int\n testStream:\n type: aws:kinesis:FirehoseDeliveryStream\n name: test_stream\n properties:\n name: kinesis-firehose-test-stream\n destination: iceberg\n icebergConfiguration:\n roleArn: ${firehoseRole.arn}\n catalogArn: arn:${currentGetPartition.partition}:glue:${currentGetRegion.name}:${current.accountId}:catalog\n bufferingSize: 10\n bufferingInterval: 400\n s3Configuration:\n roleArn: ${firehoseRole.arn}\n bucketArn: ${bucket.arn}\n destinationTableConfigurations:\n - databaseName: ${test.name}\n tableName: ${testCatalogTable.name}\n processingConfiguration:\n enabled: 'true'\n processors:\n - type: Lambda\n parameters:\n - parameterName: LambdaArn\n parameterValue: ${lambdaProcessor.arn}:$LATEST\nvariables:\n current:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n currentGetPartition:\n fn::invoke:\n Function: aws:getPartition\n Arguments: {}\n currentGetRegion:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\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", @@ -286108,6 +287368,10 @@ "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfiguration:FirehoseDeliveryStreamHttpEndpointConfiguration", "description": "Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details.\n" }, + "icebergConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfiguration:FirehoseDeliveryStreamIcebergConfiguration", + "description": "Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details.\n" + }, "kinesisSourceConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration", "description": "The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details.\n" @@ -286196,6 +287460,10 @@ "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfiguration:FirehoseDeliveryStreamHttpEndpointConfiguration", "description": "Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details.\n" }, + "icebergConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfiguration:FirehoseDeliveryStreamIcebergConfiguration", + "description": "Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details.\n" + }, "kinesisSourceConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration", "description": "The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details.\n", @@ -286276,6 +287544,10 @@ "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamHttpEndpointConfiguration:FirehoseDeliveryStreamHttpEndpointConfiguration", "description": "Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details.\n" }, + "icebergConfiguration": { + "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamIcebergConfiguration:FirehoseDeliveryStreamIcebergConfiguration", + "description": "Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details.\n" + }, "kinesisSourceConfiguration": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamKinesisSourceConfiguration:FirehoseDeliveryStreamKinesisSourceConfiguration", "description": "The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details.\n", @@ -288384,7 +289656,7 @@ } }, "aws:lakeformation/dataLakeSettings:DataLakeSettings": { - "description": "Manages Lake Formation principals designated as data lake administrators and lists of principal permission entries for default create database and default create table permissions.\n\n\u003e **NOTE:** Lake Formation introduces fine-grained access control for data in your data lake. Part of the changes include the `IAMAllowedPrincipals` principal in order to make Lake Formation backwards compatible with existing IAM and Glue permissions. For more information, see [Changing the Default Security Settings for Your Data Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html) and [Upgrading AWS Glue Data Permissions to the AWS Lake Formation Model](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html).\n\n## Example Usage\n\n### Data Lake Admins\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {admins: [\n test.arn,\n testAwsIamRole.arn,\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\", admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create Default Permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.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.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\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 DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable EMR access to LakeFormation resources\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n allowExternalDataFiltering: true,\n externalDataFilteringAllowLists: [\n current.accountId,\n thirdParty.accountId,\n ],\n authorizedSessionTagValueLists: [\"Amazon EMR\"],\n allowFullTableExternalDataAccess: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }],\n allow_external_data_filtering=True,\n external_data_filtering_allow_lists=[\n current[\"accountId\"],\n third_party[\"accountId\"],\n ],\n authorized_session_tag_value_lists=[\"Amazon EMR\"],\n allow_full_table_external_data_access=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.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n AllowExternalDataFiltering = true,\n ExternalDataFilteringAllowLists = new[]\n {\n current.AccountId,\n thirdParty.AccountId,\n },\n AuthorizedSessionTagValueLists = new[]\n {\n \"Amazon EMR\",\n },\n AllowFullTableExternalDataAccess = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAllowExternalDataFiltering: pulumi.Bool(true),\n\t\t\tExternalDataFilteringAllowLists: pulumi.StringArray{\n\t\t\t\tcurrent.AccountId,\n\t\t\t\tthirdParty.AccountId,\n\t\t\t},\n\t\t\tAuthorizedSessionTagValueLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Amazon EMR\"),\n\t\t\t},\n\t\t\tAllowFullTableExternalDataAccess: 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.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\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 DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .allowExternalDataFiltering(true)\n .externalDataFilteringAllowLists( \n current.accountId(),\n thirdParty.accountId())\n .authorizedSessionTagValueLists(\"Amazon EMR\")\n .allowFullTableExternalDataAccess(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n allowExternalDataFiltering: true\n externalDataFilteringAllowLists:\n - ${current.accountId}\n - ${thirdParty.accountId}\n authorizedSessionTagValueLists:\n - Amazon EMR\n allowFullTableExternalDataAccess: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Manages Lake Formation principals designated as data lake administrators and lists of principal permission entries for default create database and default create table permissions.\n\n\u003e **NOTE:** Lake Formation introduces fine-grained access control for data in your data lake. Part of the changes include the `IAMAllowedPrincipals` principal in order to make Lake Formation backwards compatible with existing IAM and Glue permissions. For more information, see [Changing the Default Security Settings for Your Data Lake](https://docs.aws.amazon.com/lake-formation/latest/dg/change-settings.html) and [Upgrading AWS Glue Data Permissions to the AWS Lake Formation Model](https://docs.aws.amazon.com/lake-formation/latest/dg/upgrade-glue-lake-formation.html).\n\n## Example Usage\n\n### Data Lake Admins\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {admins: [\n test.arn,\n testAwsIamRole.arn,\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\", admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create Default Permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.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.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\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 DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable EMR access to LakeFormation resources\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {\n admins: [\n test.arn,\n testAwsIamRole.arn,\n ],\n createDatabaseDefaultPermissions: [{\n permissions: [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n principal: test.arn,\n }],\n createTableDefaultPermissions: [{\n permissions: [\"ALL\"],\n principal: testAwsIamRole.arn,\n }],\n allowExternalDataFiltering: true,\n externalDataFilteringAllowLists: [\n current.accountId,\n thirdParty.accountId,\n ],\n authorizedSessionTagValueLists: [\"Amazon EMR\"],\n allowFullTableExternalDataAccess: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\",\n admins=[\n test[\"arn\"],\n test_aws_iam_role[\"arn\"],\n ],\n create_database_default_permissions=[{\n \"permissions\": [\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n ],\n \"principal\": test[\"arn\"],\n }],\n create_table_default_permissions=[{\n \"permissions\": [\"ALL\"],\n \"principal\": test_aws_iam_role[\"arn\"],\n }],\n allow_external_data_filtering=True,\n external_data_filtering_allow_lists=[\n current[\"accountId\"],\n third_party[\"accountId\"],\n ],\n authorized_session_tag_value_lists=[\"Amazon EMR\"],\n allow_full_table_external_data_access=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.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Admins = new[]\n {\n test.Arn,\n testAwsIamRole.Arn,\n },\n CreateDatabaseDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"SELECT\",\n \"ALTER\",\n \"DROP\",\n },\n Principal = test.Arn,\n },\n },\n CreateTableDefaultPermissions = new[]\n {\n new Aws.LakeFormation.Inputs.DataLakeSettingsCreateTableDefaultPermissionArgs\n {\n Permissions = new[]\n {\n \"ALL\",\n },\n Principal = testAwsIamRole.Arn,\n },\n },\n AllowExternalDataFiltering = true,\n ExternalDataFilteringAllowLists = new[]\n {\n current.AccountId,\n thirdParty.AccountId,\n },\n AuthorizedSessionTagValueLists = new[]\n {\n \"Amazon EMR\",\n },\n AllowFullTableExternalDataAccess = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tAdmins: pulumi.StringArray{\n\t\t\t\ttest.Arn,\n\t\t\t\ttestAwsIamRole.Arn,\n\t\t\t},\n\t\t\tCreateDatabaseDefaultPermissions: lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateDatabaseDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"SELECT\"),\n\t\t\t\t\t\tpulumi.String(\"ALTER\"),\n\t\t\t\t\t\tpulumi.String(\"DROP\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(test.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreateTableDefaultPermissions: lakeformation.DataLakeSettingsCreateTableDefaultPermissionArray{\n\t\t\t\t\u0026lakeformation.DataLakeSettingsCreateTableDefaultPermissionArgs{\n\t\t\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrincipal: pulumi.Any(testAwsIamRole.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAllowExternalDataFiltering: pulumi.Bool(true),\n\t\t\tExternalDataFilteringAllowLists: pulumi.StringArray{\n\t\t\t\tcurrent.AccountId,\n\t\t\t\tthirdParty.AccountId,\n\t\t\t},\n\t\t\tAuthorizedSessionTagValueLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Amazon EMR\"),\n\t\t\t},\n\t\t\tAllowFullTableExternalDataAccess: 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.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateDatabaseDefaultPermissionArgs;\nimport com.pulumi.aws.lakeformation.inputs.DataLakeSettingsCreateTableDefaultPermissionArgs;\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 DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .admins( \n test.arn(),\n testAwsIamRole.arn())\n .createDatabaseDefaultPermissions(DataLakeSettingsCreateDatabaseDefaultPermissionArgs.builder()\n .permissions( \n \"SELECT\",\n \"ALTER\",\n \"DROP\")\n .principal(test.arn())\n .build())\n .createTableDefaultPermissions(DataLakeSettingsCreateTableDefaultPermissionArgs.builder()\n .permissions(\"ALL\")\n .principal(testAwsIamRole.arn())\n .build())\n .allowExternalDataFiltering(true)\n .externalDataFilteringAllowLists( \n current.accountId(),\n thirdParty.accountId())\n .authorizedSessionTagValueLists(\"Amazon EMR\")\n .allowFullTableExternalDataAccess(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n admins:\n - ${test.arn}\n - ${testAwsIamRole.arn}\n createDatabaseDefaultPermissions:\n - permissions:\n - SELECT\n - ALTER\n - DROP\n principal: ${test.arn}\n createTableDefaultPermissions:\n - permissions:\n - ALL\n principal: ${testAwsIamRole.arn}\n allowExternalDataFiltering: true\n externalDataFilteringAllowLists:\n - ${current.accountId}\n - ${thirdParty.accountId}\n authorizedSessionTagValueLists:\n - Amazon EMR\n allowFullTableExternalDataAccess: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Change Cross Account Version\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lakeformation.DataLakeSettings(\"example\", {parameters: {\n CROSS_ACCOUNT_VERSION: \"3\",\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.DataLakeSettings(\"example\", parameters={\n \"CROSS_ACCOUNT_VERSION\": \"3\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LakeFormation.DataLakeSettings(\"example\", new()\n {\n Parameters = \n {\n { \"CROSS_ACCOUNT_VERSION\", \"3\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lakeformation.NewDataLakeSettings(ctx, \"example\", \u0026lakeformation.DataLakeSettingsArgs{\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"CROSS_ACCOUNT_VERSION\": pulumi.String(\"3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lakeformation.DataLakeSettings;\nimport com.pulumi.aws.lakeformation.DataLakeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new DataLakeSettings(\"example\", DataLakeSettingsArgs.builder()\n .parameters(Map.of(\"CROSS_ACCOUNT_VERSION\", \"3\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:DataLakeSettings\n properties:\n parameters:\n CROSS_ACCOUNT_VERSION: '3'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "admins": { "type": "array", @@ -288399,7 +289671,7 @@ }, "allowFullTableExternalDataAccess": { "type": "boolean", - "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n" }, "authorizedSessionTagValueLists": { "type": "array", @@ -288433,6 +289705,13 @@ }, "description": "A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.\n" }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `\"1\"`, `\"2\"`, `\"3\"`, or `\"4\"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `\"1\"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `\"1\"`.\n" + }, "readOnlyAdmins": { "type": "array", "items": { @@ -288445,7 +289724,7 @@ "items": { "type": "string" }, - "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n" + "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.\n" } }, "required": [ @@ -288454,6 +289733,7 @@ "createDatabaseDefaultPermissions", "createTableDefaultPermissions", "externalDataFilteringAllowLists", + "parameters", "readOnlyAdmins", "trustedResourceOwners" ], @@ -288471,7 +289751,7 @@ }, "allowFullTableExternalDataAccess": { "type": "boolean", - "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n" }, "authorizedSessionTagValueLists": { "type": "array", @@ -288506,6 +289786,13 @@ }, "description": "A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.\n" }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `\"1\"`, `\"2\"`, `\"3\"`, or `\"4\"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `\"1\"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `\"1\"`.\n" + }, "readOnlyAdmins": { "type": "array", "items": { @@ -288518,7 +289805,7 @@ "items": { "type": "string" }, - "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n" + "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.\n" } }, "stateInputs": { @@ -288537,7 +289824,7 @@ }, "allowFullTableExternalDataAccess": { "type": "boolean", - "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared.\n" + "description": "Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions.\n" }, "authorizedSessionTagValueLists": { "type": "array", @@ -288572,6 +289859,13 @@ }, "description": "A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering.\n" }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `\"1\"`, `\"2\"`, `\"3\"`, or `\"4\"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `\"1\"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `\"1\"`.\n" + }, "readOnlyAdmins": { "type": "array", "items": { @@ -288584,7 +289878,7 @@ "items": { "type": "string" }, - "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n" + "description": "List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs).\n\n\u003e **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared.\n" } }, "type": "object" @@ -292003,6 +293297,10 @@ }, "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." + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "required": [ @@ -292057,6 +293355,10 @@ "type": "string" }, "description": "A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "requiredInputs": [ @@ -292120,6 +293422,10 @@ }, "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." + }, + "tcpIdleTimeoutSeconds": { + "type": "integer", + "description": "TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`.\n" } }, "type": "object" @@ -292395,155 +293701,163 @@ "type": "boolean", "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" }, - "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { - "type": "string", - "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" - }, - "idleTimeout": { - "type": "integer", - "description": "Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60.\n" - }, - "internal": { - "type": "boolean", - "description": "If true, the LB will be internal. Defaults to `false`.\n" - }, - "ipAddressType": { - "type": "string", - "description": "Type of IP addresses used by the subnets for your load balancer. The possible values depend upon the load balancer type: `ipv4` (all load balancer types), `dualstack` (all load balancer types), and `dualstack-without-public-ipv4` (type `application` only).\n" - }, - "loadBalancerType": { - "type": "string", - "description": "Type of load balancer to create. Possible values are `application`, `gateway`, or `network`. The default value is `application`.\n" - }, - "name": { - "type": "string", - "description": "Name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with `tf-lb`.\n" - }, - "namePrefix": { - "type": "string", - "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n" - }, - "preserveHostHeader": { - "type": "boolean", - "description": "Whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to `false`.\n" - }, - "securityGroups": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of security group IDs to assign to the LB. Only valid for Load Balancers of type `application` or `network`. For load balancers of type `network` security groups cannot be added if none are currently present, and cannot all be removed once added. If either of these conditions are met, this will force a recreation of the resource.\n" - }, - "subnetMappings": { - "type": "array", - "items": { - "$ref": "#/types/aws:lb/LoadBalancerSubnetMapping:LoadBalancerSubnetMapping" - }, - "description": "Subnet mapping block. See below. For Load Balancers of type `network` subnet mappings can only be added.\n" - }, - "subnets": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of subnet IDs to attach to the LB. For Load Balancers of type `network` subnets can only be added (see [Availability Zones](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#availability-zones)), deleting a subnet for load balancers of type `network` will force a recreation of the resource.\n" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" - }, - "tagsAll": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", - "deprecationMessage": "Please use `tags` instead." - }, - "vpcId": { - "type": "string" - }, - "xffHeaderProcessingMode": { - "type": "string", - "description": "Determines how the load balancer modifies the `X-Forwarded-For` header in the HTTP request before sending the request to the target. The possible values are `append`, `preserve`, and `remove`. Only valid for Load Balancers of type `application`. The default is `append`.\n" - }, - "zoneId": { - "type": "string", - "description": "Canonical hosted zone ID of the load balancer (to be used in a Route 53 Alias record).\n" - } - }, - "required": [ - "arn", - "arnSuffix", - "dnsName", - "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic", - "internal", - "ipAddressType", - "name", - "namePrefix", - "securityGroups", - "subnetMappings", - "subnets", - "tagsAll", - "vpcId", - "zoneId" - ], - "inputProperties": { - "accessLogs": { - "$ref": "#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", - "description": "Access Logs block. See below.\n" - }, - "clientKeepAlive": { - "type": "integer", - "description": "Client keep alive value in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n" - }, - "connectionLogs": { - "$ref": "#/types/aws:lb/LoadBalancerConnectionLogs:LoadBalancerConnectionLogs", - "description": "Connection Logs block. See below. Only valid for Load Balancers of type `application`.\n" - }, - "customerOwnedIpv4Pool": { - "type": "string", - "description": "ID of the customer owned ipv4 pool to use for this load balancer.\n", - "willReplaceOnChanges": true - }, - "desyncMitigationMode": { - "type": "string", - "description": "How the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`.\n" - }, - "dnsRecordClientRoutingPolicy": { - "type": "string", - "description": "How traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers.\n" - }, - "dropInvalidHeaderFields": { - "type": "boolean", - "description": "Whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`.\n" - }, - "enableCrossZoneLoadBalancing": { - "type": "boolean", - "description": "If true, cross-zone load balancing of the load balancer will be enabled. For `network` and `gateway` type load balancers, this feature is disabled by default (`false`). For `application` load balancer this feature is always enabled (`true`) and cannot be disabled. Defaults to `false`.\n" - }, - "enableDeletionProtection": { - "type": "boolean", - "description": "If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to `false`.\n" - }, - "enableHttp2": { - "type": "boolean", - "description": "Whether HTTP/2 is enabled in `application` load balancers. Defaults to `true`.\n" - }, - "enableTlsVersionAndCipherSuiteHeaders": { + "enableZonalShift": { + "type": "boolean", + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" + }, + "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string", + "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" + }, + "idleTimeout": { + "type": "integer", + "description": "Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60.\n" + }, + "internal": { + "type": "boolean", + "description": "If true, the LB will be internal. Defaults to `false`.\n" + }, + "ipAddressType": { + "type": "string", + "description": "Type of IP addresses used by the subnets for your load balancer. The possible values depend upon the load balancer type: `ipv4` (all load balancer types), `dualstack` (all load balancer types), and `dualstack-without-public-ipv4` (type `application` only).\n" + }, + "loadBalancerType": { + "type": "string", + "description": "Type of load balancer to create. Possible values are `application`, `gateway`, or `network`. The default value is `application`.\n" + }, + "name": { + "type": "string", + "description": "Name of the LB. This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen. If not specified, this provider will autogenerate a name beginning with `tf-lb`.\n" + }, + "namePrefix": { + "type": "string", + "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n" + }, + "preserveHostHeader": { + "type": "boolean", + "description": "Whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. Defaults to `false`.\n" + }, + "securityGroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of security group IDs to assign to the LB. Only valid for Load Balancers of type `application` or `network`. For load balancers of type `network` security groups cannot be added if none are currently present, and cannot all be removed once added. If either of these conditions are met, this will force a recreation of the resource.\n" + }, + "subnetMappings": { + "type": "array", + "items": { + "$ref": "#/types/aws:lb/LoadBalancerSubnetMapping:LoadBalancerSubnetMapping" + }, + "description": "Subnet mapping block. See below. For Load Balancers of type `network` subnet mappings can only be added.\n" + }, + "subnets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subnet IDs to attach to the LB. For Load Balancers of type `network` subnets can only be added (see [Availability Zones](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#availability-zones)), deleting a subnet for load balancers of type `network` will force a recreation of the resource.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "vpcId": { + "type": "string" + }, + "xffHeaderProcessingMode": { + "type": "string", + "description": "Determines how the load balancer modifies the `X-Forwarded-For` header in the HTTP request before sending the request to the target. The possible values are `append`, `preserve`, and `remove`. Only valid for Load Balancers of type `application`. The default is `append`.\n" + }, + "zoneId": { + "type": "string", + "description": "Canonical hosted zone ID of the load balancer (to be used in a Route 53 Alias record).\n" + } + }, + "required": [ + "arn", + "arnSuffix", + "dnsName", + "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic", + "internal", + "ipAddressType", + "name", + "namePrefix", + "securityGroups", + "subnetMappings", + "subnets", + "tagsAll", + "vpcId", + "zoneId" + ], + "inputProperties": { + "accessLogs": { + "$ref": "#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", + "description": "Access Logs block. See below.\n" + }, + "clientKeepAlive": { + "type": "integer", + "description": "Client keep alive value in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n" + }, + "connectionLogs": { + "$ref": "#/types/aws:lb/LoadBalancerConnectionLogs:LoadBalancerConnectionLogs", + "description": "Connection Logs block. See below. Only valid for Load Balancers of type `application`.\n" + }, + "customerOwnedIpv4Pool": { + "type": "string", + "description": "ID of the customer owned ipv4 pool to use for this load balancer.\n", + "willReplaceOnChanges": true + }, + "desyncMitigationMode": { + "type": "string", + "description": "How the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`.\n" + }, + "dnsRecordClientRoutingPolicy": { + "type": "string", + "description": "How traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers.\n" + }, + "dropInvalidHeaderFields": { + "type": "boolean", + "description": "Whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`.\n" + }, + "enableCrossZoneLoadBalancing": { + "type": "boolean", + "description": "If true, cross-zone load balancing of the load balancer will be enabled. For `network` and `gateway` type load balancers, this feature is disabled by default (`false`). For `application` load balancer this feature is always enabled (`true`) and cannot be disabled. Defaults to `false`.\n" + }, + "enableDeletionProtection": { + "type": "boolean", + "description": "If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to `false`.\n" + }, + "enableHttp2": { + "type": "boolean", + "description": "Whether HTTP/2 is enabled in `application` load balancers. Defaults to `true`.\n" + }, + "enableTlsVersionAndCipherSuiteHeaders": { + "type": "boolean", + "description": "Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false`\n" + }, + "enableWafFailOpen": { + "type": "boolean", + "description": "Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`.\n" + }, + "enableXffClientPort": { + "type": "boolean", + "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" + }, + "enableZonalShift": { "type": "boolean", - "description": "Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false`\n" - }, - "enableWafFailOpen": { - "type": "boolean", - "description": "Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`.\n" - }, - "enableXffClientPort": { - "type": "boolean", - "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -292682,6 +293996,10 @@ "type": "boolean", "description": "Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`.\n" }, + "enableZonalShift": { + "type": "boolean", + "description": "Whether zonal shift is enabled. Defaults to `false`.\n" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", "description": "Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`.\n" @@ -336201,6 +337519,152 @@ "type": "object" } }, + "aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy": { + "description": "Resource for managing an AWS Resilience Hub Resiliency Policy.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n example:\n type: aws:resiliencehub:ResiliencyPolicy\n properties:\n policyName: testexample\n policyDescription: testexample\n tier: NonCritical\n dataLocationConstraint: AnyLocation\n policy:\n - region:\n - rpo: 24h\n rto: 24h\n az:\n - rpo: 24h\n rto: 24h\n hardware:\n - rpo: 24h\n rto: 24h\n software:\n - rpo: 24h\n rto: 24h\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Resilience Hub Resiliency Policy using the `arn`. For example:\n\n```sh\n$ pulumi import aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy example arn:aws:resiliencehub:us-east-1:123456789012:resiliency-policy/8c1cfa29-d1dd-4421-aa68-c9f64cced4c2\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "ARN of the Resiliency Policy.\n" + }, + "dataLocationConstraint": { + "type": "string", + "description": "Data Location Constraint of the Policy.\nValid values are `AnyLocation`, `SameContinent`, and `SameCountry`.\n" + }, + "description": { + "type": "string", + "description": "Description of Resiliency Policy.\n" + }, + "estimatedCostTier": { + "type": "string", + "description": "Estimated Cost Tier of the Resiliency Policy.\n" + }, + "name": { + "type": "string", + "description": "Name of Resiliency Policy.\nMust be between 2 and 60 characters long.\nMust start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens.\n" + }, + "policy": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicy:ResiliencyPolicyPolicy", + "description": "The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`.\n\nThe following arguments are optional:\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "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." + }, + "tier": { + "type": "string", + "description": "Resiliency Policy Tier.\nValid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`.\n" + }, + "timeouts": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyTimeouts:ResiliencyPolicyTimeouts" + } + }, + "required": [ + "arn", + "dataLocationConstraint", + "estimatedCostTier", + "name", + "tagsAll", + "tier" + ], + "inputProperties": { + "dataLocationConstraint": { + "type": "string", + "description": "Data Location Constraint of the Policy.\nValid values are `AnyLocation`, `SameContinent`, and `SameCountry`.\n" + }, + "description": { + "type": "string", + "description": "Description of Resiliency Policy.\n" + }, + "name": { + "type": "string", + "description": "Name of Resiliency Policy.\nMust be between 2 and 60 characters long.\nMust start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens.\n" + }, + "policy": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicy:ResiliencyPolicyPolicy", + "description": "The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`.\n\nThe following arguments are optional:\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tier": { + "type": "string", + "description": "Resiliency Policy Tier.\nValid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`.\n" + }, + "timeouts": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyTimeouts:ResiliencyPolicyTimeouts" + } + }, + "requiredInputs": [ + "tier" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ResiliencyPolicy resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "ARN of the Resiliency Policy.\n" + }, + "dataLocationConstraint": { + "type": "string", + "description": "Data Location Constraint of the Policy.\nValid values are `AnyLocation`, `SameContinent`, and `SameCountry`.\n" + }, + "description": { + "type": "string", + "description": "Description of Resiliency Policy.\n" + }, + "estimatedCostTier": { + "type": "string", + "description": "Estimated Cost Tier of the Resiliency Policy.\n" + }, + "name": { + "type": "string", + "description": "Name of Resiliency Policy.\nMust be between 2 and 60 characters long.\nMust start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens.\n" + }, + "policy": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyPolicy:ResiliencyPolicyPolicy", + "description": "The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`.\n\nThe following arguments are optional:\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "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." + }, + "tier": { + "type": "string", + "description": "Resiliency Policy Tier.\nValid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`.\n" + }, + "timeouts": { + "$ref": "#/types/aws:resiliencehub/ResiliencyPolicyTimeouts:ResiliencyPolicyTimeouts" + } + }, + "type": "object" + } + }, "aws:resourceexplorer/index:Index": { "description": "Provides a resource to manage a Resource Explorer index in the current AWS Region.\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.resourceexplorer.Index(\"example\", {type: \"LOCAL\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.resourceexplorer.Index(\"example\", type=\"LOCAL\")\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.ResourceExplorer.Index(\"example\", new()\n {\n Type = \"LOCAL\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/resourceexplorer\"\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 := resourceexplorer.NewIndex(ctx, \"example\", \u0026resourceexplorer.IndexArgs{\n\t\t\tType: pulumi.String(\"LOCAL\"),\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.resourceexplorer.Index;\nimport com.pulumi.aws.resourceexplorer.IndexArgs;\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 Index(\"example\", IndexArgs.builder()\n .type(\"LOCAL\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:resourceexplorer:Index\n properties:\n type: LOCAL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Resource Explorer indexes using the `arn`. For example:\n\n```sh\n$ pulumi import aws:resourceexplorer/index:Index example arn:aws:resource-explorer-2:us-east-1:123456789012:index/6047ac4e-207e-4487-9bcf-cb53bb0ff5cc\n```\n", "properties": { @@ -337612,7 +339076,7 @@ }, "name": { "type": "string", - "description": "Name of the Profile Association.\n" + "description": "Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`.\n" }, "ownerId": { "type": "string" @@ -337627,7 +339091,7 @@ }, "status": { "type": "string", - "description": "Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html)\n" + "description": "Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values.\n" }, "statusMessage": { "type": "string", @@ -337663,7 +339127,7 @@ "inputProperties": { "name": { "type": "string", - "description": "Name of the Profile Association.\n" + "description": "Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`.\n" }, "profileId": { "type": "string", @@ -337695,7 +339159,7 @@ }, "name": { "type": "string", - "description": "Name of the Profile Association.\n" + "description": "Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`.\n" }, "ownerId": { "type": "string" @@ -337710,7 +339174,7 @@ }, "status": { "type": "string", - "description": "Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html)\n" + "description": "Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values.\n" }, "statusMessage": { "type": "string", @@ -347853,6 +349317,10 @@ }, "description": "The VPC subnets that Studio uses for communication.\n" }, + "tagPropagation": { + "type": "string", + "description": "Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`.\n" + }, "tags": { "type": "object", "additionalProperties": { @@ -347894,13 +349362,11 @@ "inputProperties": { "appNetworkAccessType": { "type": "string", - "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n", - "willReplaceOnChanges": true + "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n" }, "appSecurityGroupManagement": { "type": "string", - "description": "The entity that creates and manages the required security groups for inter-app communication in `VPCOnly` mode. Valid values are `Service` and `Customer`.\n", - "willReplaceOnChanges": true + "description": "The entity that creates and manages the required security groups for inter-app communication in `VPCOnly` mode. Valid values are `Service` and `Customer`.\n" }, "authMode": { "type": "string", @@ -347942,6 +349408,10 @@ "description": "The VPC subnets that Studio uses for communication.\n", "willReplaceOnChanges": true }, + "tagPropagation": { + "type": "string", + "description": "Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`.\n" + }, "tags": { "type": "object", "additionalProperties": { @@ -347967,13 +349437,11 @@ "properties": { "appNetworkAccessType": { "type": "string", - "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n", - "willReplaceOnChanges": true + "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n" }, "appSecurityGroupManagement": { "type": "string", - "description": "The entity that creates and manages the required security groups for inter-app communication in `VPCOnly` mode. Valid values are `Service` and `Customer`.\n", - "willReplaceOnChanges": true + "description": "The entity that creates and manages the required security groups for inter-app communication in `VPCOnly` mode. Valid values are `Service` and `Customer`.\n" }, "arn": { "type": "string", @@ -348035,6 +349503,10 @@ "description": "The VPC subnets that Studio uses for communication.\n", "willReplaceOnChanges": true }, + "tagPropagation": { + "type": "string", + "description": "Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`.\n" + }, "tags": { "type": "object", "additionalProperties": { @@ -348404,6 +349876,9 @@ }, "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." + }, + "throughputConfig": { + "$ref": "#/types/aws:sagemaker/FeatureGroupThroughputConfig:FeatureGroupThroughputConfig" } }, "required": [ @@ -348413,7 +349888,8 @@ "featureGroupName", "recordIdentifierFeatureName", "roleArn", - "tagsAll" + "tagsAll", + "throughputConfig" ], "inputProperties": { "description": { @@ -348465,6 +349941,9 @@ "type": "string" }, "description": "Map of resource tags for the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "throughputConfig": { + "$ref": "#/types/aws:sagemaker/FeatureGroupThroughputConfig:FeatureGroupThroughputConfig" } }, "requiredInputs": [ @@ -348538,6 +350017,9 @@ }, "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." + }, + "throughputConfig": { + "$ref": "#/types/aws:sagemaker/FeatureGroupThroughputConfig:FeatureGroupThroughputConfig" } }, "type": "object" @@ -348699,6 +350181,147 @@ "type": "object" } }, + "aws:sagemaker/hub:Hub": { + "description": "Provides a SageMaker Hub resource.\n\n## Example Usage\n\n### Basic usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.sagemaker.Hub(\"example\", {\n hubName: \"example\",\n hubDescription: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.sagemaker.Hub(\"example\",\n hub_name=\"example\",\n hub_description=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Sagemaker.Hub(\"example\", new()\n {\n HubName = \"example\",\n HubDescription = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sagemaker\"\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 := sagemaker.NewHub(ctx, \"example\", \u0026sagemaker.HubArgs{\n\t\t\tHubName: pulumi.String(\"example\"),\n\t\t\tHubDescription: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.sagemaker.Hub;\nimport com.pulumi.aws.sagemaker.HubArgs;\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 Hub(\"example\", HubArgs.builder()\n .hubName(\"example\")\n .hubDescription(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sagemaker:Hub\n properties:\n hubName: example\n hubDescription: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import SageMaker Hubs using the `name`. For example:\n\n```sh\n$ pulumi import aws:sagemaker/hub:Hub test_hub my-code-repo\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this Hub.\n" + }, + "hubDescription": { + "type": "string", + "description": "A description of the hub.\n" + }, + "hubDisplayName": { + "type": "string", + "description": "The display name of the hub.\n" + }, + "hubName": { + "type": "string", + "description": "The name of the hub.\n" + }, + "hubSearchKeywords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The searchable keywords for the hub.\n" + }, + "s3StorageConfig": { + "$ref": "#/types/aws:sagemaker/HubS3StorageConfig:HubS3StorageConfig", + "description": "The Amazon S3 storage configuration for the hub. See S3 Storage Config details below.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "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": [ + "arn", + "hubDescription", + "hubName", + "tagsAll" + ], + "inputProperties": { + "hubDescription": { + "type": "string", + "description": "A description of the hub.\n" + }, + "hubDisplayName": { + "type": "string", + "description": "The display name of the hub.\n" + }, + "hubName": { + "type": "string", + "description": "The name of the hub.\n", + "willReplaceOnChanges": true + }, + "hubSearchKeywords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The searchable keywords for the hub.\n" + }, + "s3StorageConfig": { + "$ref": "#/types/aws:sagemaker/HubS3StorageConfig:HubS3StorageConfig", + "description": "The Amazon S3 storage configuration for the hub. See S3 Storage Config details below.\n", + "willReplaceOnChanges": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + } + }, + "requiredInputs": [ + "hubDescription", + "hubName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Hub resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this Hub.\n" + }, + "hubDescription": { + "type": "string", + "description": "A description of the hub.\n" + }, + "hubDisplayName": { + "type": "string", + "description": "The display name of the hub.\n" + }, + "hubName": { + "type": "string", + "description": "The name of the hub.\n", + "willReplaceOnChanges": true + }, + "hubSearchKeywords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The searchable keywords for the hub.\n" + }, + "s3StorageConfig": { + "$ref": "#/types/aws:sagemaker/HubS3StorageConfig:HubS3StorageConfig", + "description": "The Amazon S3 storage configuration for the hub. See S3 Storage Config details below.\n", + "willReplaceOnChanges": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + } + }, + "type": "object" + } + }, "aws:sagemaker/humanTaskUI:HumanTaskUI": { "description": "Provides a SageMaker Human Task UI 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\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new aws.sagemaker.HumanTaskUI(\"example\", {\n humanTaskUiName: \"example\",\n uiTemplate: {\n content: std.file({\n input: \"sagemaker-human-task-ui-template.html\",\n }).then(invoke =\u003e invoke.result),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_std as std\n\nexample = aws.sagemaker.HumanTaskUI(\"example\",\n human_task_ui_name=\"example\",\n ui_template={\n \"content\": std.file(input=\"sagemaker-human-task-ui-template.html\").result,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Sagemaker.HumanTaskUI(\"example\", new()\n {\n HumanTaskUiName = \"example\",\n UiTemplate = new Aws.Sagemaker.Inputs.HumanTaskUIUiTemplateArgs\n {\n Content = Std.File.Invoke(new()\n {\n Input = \"sagemaker-human-task-ui-template.html\",\n }).Apply(invoke =\u003e invoke.Result),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sagemaker\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"sagemaker-human-task-ui-template.html\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sagemaker.NewHumanTaskUI(ctx, \"example\", \u0026sagemaker.HumanTaskUIArgs{\n\t\t\tHumanTaskUiName: pulumi.String(\"example\"),\n\t\t\tUiTemplate: \u0026sagemaker.HumanTaskUIUiTemplateArgs{\n\t\t\t\tContent: pulumi.String(invokeFile.Result),\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.sagemaker.HumanTaskUI;\nimport com.pulumi.aws.sagemaker.HumanTaskUIArgs;\nimport com.pulumi.aws.sagemaker.inputs.HumanTaskUIUiTemplateArgs;\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 HumanTaskUI(\"example\", HumanTaskUIArgs.builder()\n .humanTaskUiName(\"example\")\n .uiTemplate(HumanTaskUIUiTemplateArgs.builder()\n .content(StdFunctions.file(FileArgs.builder()\n .input(\"sagemaker-human-task-ui-template.html\")\n .build()).result())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sagemaker:HumanTaskUI\n properties:\n humanTaskUiName: example\n uiTemplate:\n content:\n fn::invoke:\n Function: std:file\n Arguments:\n input: sagemaker-human-task-ui-template.html\n Return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import SageMaker Human Task UIs using the `human_task_ui_name`. For example:\n\n```sh\n$ pulumi import aws:sagemaker/humanTaskUI:HumanTaskUI example example\n```\n", "properties": { @@ -348998,6 +350621,177 @@ "type": "object" } }, + "aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer": { + "description": "Provides a SageMaker MLFlow Tracking Server resource.\n\n## Example Usage\n\n### Cognito 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.sagemaker.MlflowTrackingServer(\"example\", {\n trackingServerName: \"example\",\n roleArn: exampleAwsIamRole.arn,\n artifactStoreUri: `s3://${exampleAwsS3Bucket.bucket}/path`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.sagemaker.MlflowTrackingServer(\"example\",\n tracking_server_name=\"example\",\n role_arn=example_aws_iam_role[\"arn\"],\n artifact_store_uri=f\"s3://{example_aws_s3_bucket['bucket']}/path\")\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.Sagemaker.MlflowTrackingServer(\"example\", new()\n {\n TrackingServerName = \"example\",\n RoleArn = exampleAwsIamRole.Arn,\n ArtifactStoreUri = $\"s3://{exampleAwsS3Bucket.Bucket}/path\",\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/sagemaker\"\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 := sagemaker.NewMlflowTrackingServer(ctx, \"example\", \u0026sagemaker.MlflowTrackingServerArgs{\n\t\t\tTrackingServerName: pulumi.String(\"example\"),\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tArtifactStoreUri: pulumi.Sprintf(\"s3://%v/path\", exampleAwsS3Bucket.Bucket),\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.sagemaker.MlflowTrackingServer;\nimport com.pulumi.aws.sagemaker.MlflowTrackingServerArgs;\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 MlflowTrackingServer(\"example\", MlflowTrackingServerArgs.builder()\n .trackingServerName(\"example\")\n .roleArn(exampleAwsIamRole.arn())\n .artifactStoreUri(String.format(\"s3://%s/path\", exampleAwsS3Bucket.bucket()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sagemaker:MlflowTrackingServer\n properties:\n trackingServerName: example\n roleArn: ${exampleAwsIamRole.arn}\n artifactStoreUri: s3://${exampleAwsS3Bucket.bucket}/path\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import SageMaker MLFlow Tracking Servers using the `workteam_name`. For example:\n\n```sh\n$ pulumi import aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer example example\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server.\n" + }, + "artifactStoreUri": { + "type": "string", + "description": "The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store.\n" + }, + "automaticModelRegistration": { + "type": "boolean", + "description": "A list of Member Definitions that contains objects that identify the workers that make up the work team.\n" + }, + "mlflowVersion": { + "type": "string", + "description": "The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works).\n" + }, + "roleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html).\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "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." + }, + "trackingServerName": { + "type": "string", + "description": "A unique string identifying the tracking server name. This string is part of the tracking server ARN.\n" + }, + "trackingServerSize": { + "type": "string", + "description": "The size of the tracking server you want to create. You can choose between \"Small\", \"Medium\", and \"Large\". The default MLflow Tracking Server configuration size is \"Small\". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use.\n" + }, + "trackingServerUrl": { + "type": "string", + "description": "The URL to connect to the MLflow user interface for the described tracking server.\n" + }, + "weeklyMaintenanceWindowStart": { + "type": "string", + "description": "The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30.\n" + } + }, + "required": [ + "arn", + "artifactStoreUri", + "mlflowVersion", + "roleArn", + "tagsAll", + "trackingServerName", + "trackingServerUrl", + "weeklyMaintenanceWindowStart" + ], + "inputProperties": { + "artifactStoreUri": { + "type": "string", + "description": "The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store.\n" + }, + "automaticModelRegistration": { + "type": "boolean", + "description": "A list of Member Definitions that contains objects that identify the workers that make up the work team.\n" + }, + "mlflowVersion": { + "type": "string", + "description": "The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works).\n", + "willReplaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html).\n", + "willReplaceOnChanges": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "trackingServerName": { + "type": "string", + "description": "A unique string identifying the tracking server name. This string is part of the tracking server ARN.\n", + "willReplaceOnChanges": true + }, + "trackingServerSize": { + "type": "string", + "description": "The size of the tracking server you want to create. You can choose between \"Small\", \"Medium\", and \"Large\". The default MLflow Tracking Server configuration size is \"Small\". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use.\n" + }, + "weeklyMaintenanceWindowStart": { + "type": "string", + "description": "The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30.\n" + } + }, + "requiredInputs": [ + "artifactStoreUri", + "roleArn", + "trackingServerName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering MlflowTrackingServer resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server.\n" + }, + "artifactStoreUri": { + "type": "string", + "description": "The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store.\n" + }, + "automaticModelRegistration": { + "type": "boolean", + "description": "A list of Member Definitions that contains objects that identify the workers that make up the work team.\n" + }, + "mlflowVersion": { + "type": "string", + "description": "The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works).\n", + "willReplaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html).\n", + "willReplaceOnChanges": true + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "trackingServerName": { + "type": "string", + "description": "A unique string identifying the tracking server name. This string is part of the tracking server ARN.\n", + "willReplaceOnChanges": true + }, + "trackingServerSize": { + "type": "string", + "description": "The size of the tracking server you want to create. You can choose between \"Small\", \"Medium\", and \"Large\". The default MLflow Tracking Server configuration size is \"Small\". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use.\n" + }, + "trackingServerUrl": { + "type": "string", + "description": "The URL to connect to the MLflow user interface for the described tracking server.\n" + }, + "weeklyMaintenanceWindowStart": { + "type": "string", + "description": "The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30.\n" + } + }, + "type": "object" + } + }, "aws:sagemaker/model:Model": { "description": "Provides a SageMaker model resource.\n\n## Example Usage\n\nBasic usage:\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 actions: [\"sts:AssumeRole\"],\n principals: [{\n type: \"Service\",\n identifiers: [\"sagemaker.amazonaws.com\"],\n }],\n }],\n});\nconst exampleRole = new aws.iam.Role(\"example\", {assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json)});\nconst test = aws.sagemaker.getPrebuiltEcrImage({\n repositoryName: \"kmeans\",\n});\nconst example = new aws.sagemaker.Model(\"example\", {\n name: \"my-model\",\n executionRoleArn: exampleRole.arn,\n primaryContainer: {\n image: test.then(test =\u003e test.registryPath),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nassume_role = aws.iam.get_policy_document(statements=[{\n \"actions\": [\"sts:AssumeRole\"],\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"sagemaker.amazonaws.com\"],\n }],\n}])\nexample_role = aws.iam.Role(\"example\", assume_role_policy=assume_role.json)\ntest = aws.sagemaker.get_prebuilt_ecr_image(repository_name=\"kmeans\")\nexample = aws.sagemaker.Model(\"example\",\n name=\"my-model\",\n execution_role_arn=example_role.arn,\n primary_container={\n \"image\": test.registry_path,\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 Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"sagemaker.amazonaws.com\",\n },\n },\n },\n },\n },\n });\n\n var exampleRole = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var test = Aws.Sagemaker.GetPrebuiltEcrImage.Invoke(new()\n {\n RepositoryName = \"kmeans\",\n });\n\n var example = new Aws.Sagemaker.Model(\"example\", new()\n {\n Name = \"my-model\",\n ExecutionRoleArn = exampleRole.Arn,\n PrimaryContainer = new Aws.Sagemaker.Inputs.ModelPrimaryContainerArgs\n {\n Image = test.Apply(getPrebuiltEcrImageResult =\u003e getPrebuiltEcrImageResult.RegistryPath),\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/sagemaker\"\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\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\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\"sagemaker.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},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRole, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\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\ttest, err := sagemaker.GetPrebuiltEcrImage(ctx, \u0026sagemaker.GetPrebuiltEcrImageArgs{\n\t\t\tRepositoryName: \"kmeans\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sagemaker.NewModel(ctx, \"example\", \u0026sagemaker.ModelArgs{\n\t\t\tName: pulumi.String(\"my-model\"),\n\t\t\tExecutionRoleArn: exampleRole.Arn,\n\t\t\tPrimaryContainer: \u0026sagemaker.ModelPrimaryContainerArgs{\n\t\t\t\tImage: pulumi.String(test.RegistryPath),\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.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.sagemaker.SagemakerFunctions;\nimport com.pulumi.aws.sagemaker.inputs.GetPrebuiltEcrImageArgs;\nimport com.pulumi.aws.sagemaker.Model;\nimport com.pulumi.aws.sagemaker.ModelArgs;\nimport com.pulumi.aws.sagemaker.inputs.ModelPrimaryContainerArgs;\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 .actions(\"sts:AssumeRole\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"sagemaker.amazonaws.com\")\n .build())\n .build())\n .build());\n\n var exampleRole = new Role(\"exampleRole\", RoleArgs.builder()\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n final var test = SagemakerFunctions.getPrebuiltEcrImage(GetPrebuiltEcrImageArgs.builder()\n .repositoryName(\"kmeans\")\n .build());\n\n var example = new Model(\"example\", ModelArgs.builder()\n .name(\"my-model\")\n .executionRoleArn(exampleRole.arn())\n .primaryContainer(ModelPrimaryContainerArgs.builder()\n .image(test.applyValue(getPrebuiltEcrImageResult -\u003e getPrebuiltEcrImageResult.registryPath()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sagemaker:Model\n properties:\n name: my-model\n executionRoleArn: ${exampleRole.arn}\n primaryContainer:\n image: ${test.registryPath}\n exampleRole:\n type: aws:iam:Role\n name: example\n properties:\n assumeRolePolicy: ${assumeRole.json}\nvariables:\n assumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - sts:AssumeRole\n principals:\n - type: Service\n identifiers:\n - sagemaker.amazonaws.com\n test:\n fn::invoke:\n Function: aws:sagemaker:getPrebuiltEcrImage\n Arguments:\n repositoryName: kmeans\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Inference Execution Config\n\n* `mode` - (Required) How containers in a multi-container are run. The following values are valid `Serial` and `Direct`.\n\n## Import\n\nUsing `pulumi import`, import models using the `name`. For example:\n\n```sh\n$ pulumi import aws:sagemaker/model:Model test_model model-foo\n```\n", "properties": { @@ -352881,7 +354675,7 @@ "properties": { "standardsArn": { "type": "string", - "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n" + "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n" } }, "required": [ @@ -352890,7 +354684,7 @@ "inputProperties": { "standardsArn": { "type": "string", - "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n", + "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n", "willReplaceOnChanges": true } }, @@ -352902,7 +354696,7 @@ "properties": { "standardsArn": { "type": "string", - "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n", + "description": "The ARN of a standard - see below.\n\nCurrently available standards (remember to replace `${var.partition}` and `${var.region}` as appropriate):\n\n| Name | ARN |\n|------------------------------------------|--------------------------------------------------------------------------------------------------------------|\n| AWS Foundational Security Best Practices | `arn:${var.partition}:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` |\n| AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` |\n| CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` |\n| CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` |\n| CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` |\n| NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` |\n| PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` |\n", "willReplaceOnChanges": true } }, @@ -370184,7 +371978,7 @@ } }, "aws:verifiedaccess/group:Group": { - "description": "Resource for managing a Verified Access Group.\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.verifiedaccess.Group(\"example\", {verifiedaccessInstanceId: exampleAwsVerifiedaccessInstance.id});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.verifiedaccess.Group(\"example\", verifiedaccess_instance_id=example_aws_verifiedaccess_instance[\"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.VerifiedAccess.Group(\"example\", new()\n {\n VerifiedaccessInstanceId = exampleAwsVerifiedaccessInstance.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess\"\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 := verifiedaccess.NewGroup(ctx, \"example\", \u0026verifiedaccess.GroupArgs{\n\t\t\tVerifiedaccessInstanceId: pulumi.Any(exampleAwsVerifiedaccessInstance.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.verifiedaccess.Group;\nimport com.pulumi.aws.verifiedaccess.GroupArgs;\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 Group(\"example\", GroupArgs.builder()\n .verifiedaccessInstanceId(exampleAwsVerifiedaccessInstance.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:verifiedaccess:Group\n properties:\n verifiedaccessInstanceId: ${exampleAwsVerifiedaccessInstance.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Usage with KMS Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n testKey:\n type: aws:kms:Key\n name: test_key\n properties:\n description: KMS key for Verified Access Group test\n test:\n type: aws:verifiedaccess:Group\n properties:\n verifiedaccessInstanceId: ${testAwsVerifiedaccessInstanceTrustProviderAttachment.verifiedaccessInstanceId}\n serverSideEncryptionConfiguration:\n - kmsKeyArn: ${testKey.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Resource for managing a Verified Access Group.\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.verifiedaccess.Group(\"example\", {verifiedaccessInstanceId: exampleAwsVerifiedaccessInstance.id});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.verifiedaccess.Group(\"example\", verifiedaccess_instance_id=example_aws_verifiedaccess_instance[\"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.VerifiedAccess.Group(\"example\", new()\n {\n VerifiedaccessInstanceId = exampleAwsVerifiedaccessInstance.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess\"\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 := verifiedaccess.NewGroup(ctx, \"example\", \u0026verifiedaccess.GroupArgs{\n\t\t\tVerifiedaccessInstanceId: pulumi.Any(exampleAwsVerifiedaccessInstance.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.verifiedaccess.Group;\nimport com.pulumi.aws.verifiedaccess.GroupArgs;\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 Group(\"example\", GroupArgs.builder()\n .verifiedaccessInstanceId(exampleAwsVerifiedaccessInstance.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:verifiedaccess:Group\n properties:\n verifiedaccessInstanceId: ${exampleAwsVerifiedaccessInstance.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Usage with KMS Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testKey = new aws.kms.Key(\"test_key\", {description: \"KMS key for Verified Access Group test\"});\nconst test = new aws.verifiedaccess.Group(\"test\", {\n verifiedaccessInstanceId: testAwsVerifiedaccessInstanceTrustProviderAttachment.verifiedaccessInstanceId,\n sseConfiguration: {\n kmsKeyArn: testKey.arn,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_key = aws.kms.Key(\"test_key\", description=\"KMS key for Verified Access Group test\")\ntest = aws.verifiedaccess.Group(\"test\",\n verifiedaccess_instance_id=test_aws_verifiedaccess_instance_trust_provider_attachment[\"verifiedaccessInstanceId\"],\n sse_configuration={\n \"kms_key_arn\": test_key.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 testKey = new Aws.Kms.Key(\"test_key\", new()\n {\n Description = \"KMS key for Verified Access Group test\",\n });\n\n var test = new Aws.VerifiedAccess.Group(\"test\", new()\n {\n VerifiedaccessInstanceId = testAwsVerifiedaccessInstanceTrustProviderAttachment.VerifiedaccessInstanceId,\n SseConfiguration = new Aws.VerifiedAccess.Inputs.GroupSseConfigurationArgs\n {\n KmsKeyArn = testKey.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestKey, err := kms.NewKey(ctx, \"test_key\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"KMS key for Verified Access Group test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = verifiedaccess.NewGroup(ctx, \"test\", \u0026verifiedaccess.GroupArgs{\n\t\t\tVerifiedaccessInstanceId: pulumi.Any(testAwsVerifiedaccessInstanceTrustProviderAttachment.VerifiedaccessInstanceId),\n\t\t\tSseConfiguration: \u0026verifiedaccess.GroupSseConfigurationArgs{\n\t\t\t\tKmsKeyArn: testKey.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.kms.Key;\nimport com.pulumi.aws.kms.KeyArgs;\nimport com.pulumi.aws.verifiedaccess.Group;\nimport com.pulumi.aws.verifiedaccess.GroupArgs;\nimport com.pulumi.aws.verifiedaccess.inputs.GroupSseConfigurationArgs;\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 testKey = new Key(\"testKey\", KeyArgs.builder()\n .description(\"KMS key for Verified Access Group test\")\n .build());\n\n var test = new Group(\"test\", GroupArgs.builder()\n .verifiedaccessInstanceId(testAwsVerifiedaccessInstanceTrustProviderAttachment.verifiedaccessInstanceId())\n .sseConfiguration(GroupSseConfigurationArgs.builder()\n .kmsKeyArn(testKey.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testKey:\n type: aws:kms:Key\n name: test_key\n properties:\n description: KMS key for Verified Access Group test\n test:\n type: aws:verifiedaccess:Group\n properties:\n verifiedaccessInstanceId: ${testAwsVerifiedaccessInstanceTrustProviderAttachment.verifiedaccessInstanceId}\n sseConfiguration:\n kmsKeyArn: ${testKey.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "creationTime": { "type": "string", @@ -377212,6 +379006,9 @@ "enableXffClientPort": { "type": "boolean" }, + "enableZonalShift": { + "type": "boolean" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string" }, @@ -377288,6 +379085,7 @@ "enableTlsVersionAndCipherSuiteHeaders", "enableWafFailOpen", "enableXffClientPort", + "enableZonalShift", "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic", "idleTimeout", "internal", @@ -392534,7 +394332,7 @@ } }, "aws:ec2/getSubnet:getSubnet": { - "description": "`aws.ec2.Subnet` provides details about a specific VPC subnet.\n\nThis resource can prove useful when a module accepts a subnet ID as an input variable and needs to, for example, determine the ID of the VPC that the subnet belongs to.\n\n## Example Usage\n\nThe following example shows how one might accept a subnet ID as a variable and use this data source to obtain the data necessary to create a security group that allows connections from hosts in that subnet.\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 subnetId = config.requireObject(\"subnetId\");\nconst selected = aws.ec2.getSubnet({\n id: subnetId,\n});\nconst subnet = new aws.ec2.SecurityGroup(\"subnet\", {\n vpcId: selected.then(selected =\u003e selected.vpcId),\n ingress: [{\n cidrBlocks: [selected.then(selected =\u003e selected.cidrBlock)],\n fromPort: 80,\n toPort: 80,\n protocol: \"tcp\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nconfig = pulumi.Config()\nsubnet_id = config.require_object(\"subnetId\")\nselected = aws.ec2.get_subnet(id=subnet_id)\nsubnet = aws.ec2.SecurityGroup(\"subnet\",\n vpc_id=selected.vpc_id,\n ingress=[{\n \"cidr_blocks\": [selected.cidr_block],\n \"from_port\": 80,\n \"to_port\": 80,\n \"protocol\": \"tcp\",\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 config = new Config();\n var subnetId = config.RequireObject\u003cdynamic\u003e(\"subnetId\");\n var selected = Aws.Ec2.GetSubnet.Invoke(new()\n {\n Id = subnetId,\n });\n\n var subnet = new Aws.Ec2.SecurityGroup(\"subnet\", new()\n {\n VpcId = selected.Apply(getSubnetResult =\u003e getSubnetResult.VpcId),\n Ingress = new[]\n {\n new Aws.Ec2.Inputs.SecurityGroupIngressArgs\n {\n CidrBlocks = new[]\n {\n selected.Apply(getSubnetResult =\u003e getSubnetResult.CidrBlock),\n },\n FromPort = 80,\n ToPort = 80,\n Protocol = \"tcp\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/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\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tselected, err := ec2.LookupSubnet(ctx, \u0026ec2.LookupSubnetArgs{\n\t\t\tId: pulumi.StringRef(subnetId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroup(ctx, \"subnet\", \u0026ec2.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(selected.VpcId),\n\t\t\tIngress: ec2.SecurityGroupIngressArray{\n\t\t\t\t\u0026ec2.SecurityGroupIngressArgs{\n\t\t\t\t\tCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(selected.CidrBlock),\n\t\t\t\t\t},\n\t\t\t\t\tFromPort: pulumi.Int(80),\n\t\t\t\t\tToPort: pulumi.Int(80),\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\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.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetSubnetArgs;\nimport com.pulumi.aws.ec2.SecurityGroup;\nimport com.pulumi.aws.ec2.SecurityGroupArgs;\nimport com.pulumi.aws.ec2.inputs.SecurityGroupIngressArgs;\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 subnetId = config.get(\"subnetId\");\n final var selected = Ec2Functions.getSubnet(GetSubnetArgs.builder()\n .id(subnetId)\n .build());\n\n var subnet = new SecurityGroup(\"subnet\", SecurityGroupArgs.builder()\n .vpcId(selected.applyValue(getSubnetResult -\u003e getSubnetResult.vpcId()))\n .ingress(SecurityGroupIngressArgs.builder()\n .cidrBlocks(selected.applyValue(getSubnetResult -\u003e getSubnetResult.cidrBlock()))\n .fromPort(80)\n .toPort(80)\n .protocol(\"tcp\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n subnetId:\n type: dynamic\nresources:\n subnet:\n type: aws:ec2:SecurityGroup\n properties:\n vpcId: ${selected.vpcId}\n ingress:\n - cidrBlocks:\n - ${selected.cidrBlock}\n fromPort: 80\n toPort: 80\n protocol: tcp\nvariables:\n selected:\n fn::invoke:\n Function: aws:ec2:getSubnet\n Arguments:\n id: ${subnetId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter Example\n\nIf you want to match against tag `Name`, use:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst selected = aws.ec2.getSubnet({\n filters: [{\n name: \"tag:Name\",\n values: [\"yakdriver\"],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nselected = aws.ec2.get_subnet(filters=[{\n \"name\": \"tag:Name\",\n \"values\": [\"yakdriver\"],\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 selected = Aws.Ec2.GetSubnet.Invoke(new()\n {\n Filters = new[]\n {\n new Aws.Ec2.Inputs.GetSubnetFilterInputArgs\n {\n Name = \"tag:Name\",\n Values = new[]\n {\n \"yakdriver\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.LookupSubnet(ctx, \u0026ec2.LookupSubnetArgs{\n\t\t\tFilters: []ec2.GetSubnetFilter{\n\t\t\t\t{\n\t\t\t\t\tName: \"tag:Name\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"yakdriver\",\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\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetSubnetArgs;\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 selected = Ec2Functions.getSubnet(GetSubnetArgs.builder()\n .filters(GetSubnetFilterArgs.builder()\n .name(\"tag:Name\")\n .values(\"yakdriver\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n selected:\n fn::invoke:\n Function: aws:ec2:getSubnet\n Arguments:\n filters:\n - name: tag:Name\n values:\n - yakdriver\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "`aws.ec2.Subnet` provides details about a specific VPC subnet.\n\nThis resource can prove useful when a module accepts a subnet ID as an input variable and needs to, for example, determine the ID of the VPC that the subnet belongs to.\n\n## Example Usage\n\nThe following example shows how one might accept a subnet ID as a variable and use this data source to obtain the data necessary to create a security group that allows connections from hosts in that subnet.\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 subnetId = config.requireObject(\"subnetId\");\nconst selected = aws.ec2.getSubnet({\n id: subnetId,\n});\nconst subnetSecurityGroup = new aws.ec2.SecurityGroup(\"subnet_security_group\", {\n vpcId: selected.then(selected =\u003e selected.vpcId),\n ingress: [{\n cidrBlocks: [selected.then(selected =\u003e selected.cidrBlock)],\n fromPort: 80,\n toPort: 80,\n protocol: \"tcp\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nconfig = pulumi.Config()\nsubnet_id = config.require_object(\"subnetId\")\nselected = aws.ec2.get_subnet(id=subnet_id)\nsubnet_security_group = aws.ec2.SecurityGroup(\"subnet_security_group\",\n vpc_id=selected.vpc_id,\n ingress=[{\n \"cidr_blocks\": [selected.cidr_block],\n \"from_port\": 80,\n \"to_port\": 80,\n \"protocol\": \"tcp\",\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 config = new Config();\n var subnetId = config.RequireObject\u003cdynamic\u003e(\"subnetId\");\n var selected = Aws.Ec2.GetSubnet.Invoke(new()\n {\n Id = subnetId,\n });\n\n var subnetSecurityGroup = new Aws.Ec2.SecurityGroup(\"subnet_security_group\", new()\n {\n VpcId = selected.Apply(getSubnetResult =\u003e getSubnetResult.VpcId),\n Ingress = new[]\n {\n new Aws.Ec2.Inputs.SecurityGroupIngressArgs\n {\n CidrBlocks = new[]\n {\n selected.Apply(getSubnetResult =\u003e getSubnetResult.CidrBlock),\n },\n FromPort = 80,\n ToPort = 80,\n Protocol = \"tcp\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/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\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\tselected, err := ec2.LookupSubnet(ctx, \u0026ec2.LookupSubnetArgs{\n\t\t\tId: pulumi.StringRef(subnetId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroup(ctx, \"subnet_security_group\", \u0026ec2.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(selected.VpcId),\n\t\t\tIngress: ec2.SecurityGroupIngressArray{\n\t\t\t\t\u0026ec2.SecurityGroupIngressArgs{\n\t\t\t\t\tCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(selected.CidrBlock),\n\t\t\t\t\t},\n\t\t\t\t\tFromPort: pulumi.Int(80),\n\t\t\t\t\tToPort: pulumi.Int(80),\n\t\t\t\t\tProtocol: pulumi.String(\"tcp\"),\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.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetSubnetArgs;\nimport com.pulumi.aws.ec2.SecurityGroup;\nimport com.pulumi.aws.ec2.SecurityGroupArgs;\nimport com.pulumi.aws.ec2.inputs.SecurityGroupIngressArgs;\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 subnetId = config.get(\"subnetId\");\n final var selected = Ec2Functions.getSubnet(GetSubnetArgs.builder()\n .id(subnetId)\n .build());\n\n var subnetSecurityGroup = new SecurityGroup(\"subnetSecurityGroup\", SecurityGroupArgs.builder()\n .vpcId(selected.applyValue(getSubnetResult -\u003e getSubnetResult.vpcId()))\n .ingress(SecurityGroupIngressArgs.builder()\n .cidrBlocks(selected.applyValue(getSubnetResult -\u003e getSubnetResult.cidrBlock()))\n .fromPort(80)\n .toPort(80)\n .protocol(\"tcp\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n subnetId:\n type: dynamic\nresources:\n subnetSecurityGroup:\n type: aws:ec2:SecurityGroup\n name: subnet_security_group\n properties:\n vpcId: ${selected.vpcId}\n ingress:\n - cidrBlocks:\n - ${selected.cidrBlock}\n fromPort: 80\n toPort: 80\n protocol: tcp\nvariables:\n selected:\n fn::invoke:\n Function: aws:ec2:getSubnet\n Arguments:\n id: ${subnetId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter Example\n\nIf you want to match against tag `Name`, use:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst selected = aws.ec2.getSubnet({\n filters: [{\n name: \"tag:Name\",\n values: [\"yakdriver\"],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nselected = aws.ec2.get_subnet(filters=[{\n \"name\": \"tag:Name\",\n \"values\": [\"yakdriver\"],\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 selected = Aws.Ec2.GetSubnet.Invoke(new()\n {\n Filters = new[]\n {\n new Aws.Ec2.Inputs.GetSubnetFilterInputArgs\n {\n Name = \"tag:Name\",\n Values = new[]\n {\n \"yakdriver\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.LookupSubnet(ctx, \u0026ec2.LookupSubnetArgs{\n\t\t\tFilters: []ec2.GetSubnetFilter{\n\t\t\t\t{\n\t\t\t\t\tName: \"tag:Name\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"yakdriver\",\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\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetSubnetArgs;\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 selected = Ec2Functions.getSubnet(GetSubnetArgs.builder()\n .filters(GetSubnetFilterArgs.builder()\n .name(\"tag:Name\")\n .values(\"yakdriver\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n selected:\n fn::invoke:\n Function: aws:ec2:getSubnet\n Arguments:\n filters:\n - name: tag:Name\n values:\n - yakdriver\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSubnet.\n", "properties": { @@ -397990,7 +399788,7 @@ }, "productDescription": { "type": "string", - "description": "Engine type for the reserved cache node.\nValid values are `redis` and `memcached`.\n" + "description": "Engine type for the reserved cache node.\nValid values are `redis`, `valkey` and `memcached`.\n" } }, "type": "object", @@ -398072,7 +399870,7 @@ "type": "string" }, "dailySnapshotTime": { - "description": "The daily time that snapshots will be created from the new serverless cache. Only available for engine type `\"redis\"`.\n", + "description": "The daily time that snapshots will be created from the new serverless cache. Only available for engine types `\"redis\"` and `\"valkey\"`.\n", "type": "string" }, "description": { @@ -402084,6 +403882,7 @@ "owner", "parentImage", "platform", + "tags", "targetRepositories", "version", "workingDirectory", @@ -402691,6 +404490,7 @@ "owner", "parentImage", "platform", + "tags", "userDataBase64", "version", "workingDirectory", @@ -405162,6 +406962,13 @@ "description": "The provider-assigned unique ID for this managed resource.\n", "type": "string" }, + "parameters": { + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of additional configuration. `CROSS_ACCOUNT_VERSION` will be set to values `\"1\"`, `\"2\"`, `\"3\"`, or `\"4\"`. `SET_CONTEXT` will also be returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `\"1\"`.\n", + "type": "object" + }, "readOnlyAdmins": { "description": "List of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources.\n", "items": { @@ -405185,6 +406992,7 @@ "createDatabaseDefaultPermissions", "createTableDefaultPermissions", "externalDataFilteringAllowLists", + "parameters", "readOnlyAdmins", "trustedResourceOwners", "id" @@ -406236,6 +408044,9 @@ "enableXffClientPort": { "type": "boolean" }, + "enableZonalShift": { + "type": "boolean" + }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string" }, @@ -406312,6 +408123,7 @@ "enableTlsVersionAndCipherSuiteHeaders", "enableWafFailOpen", "enableXffClientPort", + "enableZonalShift", "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic", "idleTimeout", "internal", @@ -420654,6 +422466,56 @@ "type": "object" } }, + "aws:ssm/getPatchBaselines:getPatchBaselines": { + "description": "Data source for retrieving AWS SSM (Systems Manager) Patch Baselines.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.ssm.getPatchBaselines({});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ssm.get_patch_baselines()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.Ssm.GetPatchBaselines.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm\"\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 := ssm.GetPatchBaselines(ctx, \u0026ssm.GetPatchBaselinesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ssm.SsmFunctions;\nimport com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;\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 = SsmFunctions.getPatchBaselines();\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:ssm:getPatchBaselines\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Filters\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.ssm.getPatchBaselines({\n filters: [\n {\n key: \"OWNER\",\n values: [\"AWS\"],\n },\n {\n key: \"OPERATING_SYSTEM\",\n values: [\"WINDOWS\"],\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ssm.get_patch_baselines(filters=[\n {\n \"key\": \"OWNER\",\n \"values\": [\"AWS\"],\n },\n {\n \"key\": \"OPERATING_SYSTEM\",\n \"values\": [\"WINDOWS\"],\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 = Aws.Ssm.GetPatchBaselines.Invoke(new()\n {\n Filters = new[]\n {\n new Aws.Ssm.Inputs.GetPatchBaselinesFilterInputArgs\n {\n Key = \"OWNER\",\n Values = new[]\n {\n \"AWS\",\n },\n },\n new Aws.Ssm.Inputs.GetPatchBaselinesFilterInputArgs\n {\n Key = \"OPERATING_SYSTEM\",\n Values = new[]\n {\n \"WINDOWS\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm\"\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 := ssm.GetPatchBaselines(ctx, \u0026ssm.GetPatchBaselinesArgs{\n\t\t\tFilters: []ssm.GetPatchBaselinesFilter{\n\t\t\t\t{\n\t\t\t\t\tKey: \"OWNER\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"AWS\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tKey: \"OPERATING_SYSTEM\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"WINDOWS\",\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\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.ssm.SsmFunctions;\nimport com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;\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 = SsmFunctions.getPatchBaselines(GetPatchBaselinesArgs.builder()\n .filters( \n GetPatchBaselinesFilterArgs.builder()\n .key(\"OWNER\")\n .values(\"AWS\")\n .build(),\n GetPatchBaselinesFilterArgs.builder()\n .key(\"OPERATING_SYSTEM\")\n .values(\"WINDOWS\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:ssm:getPatchBaselines\n Arguments:\n filters:\n - key: OWNER\n values:\n - AWS\n - key: OPERATING_SYSTEM\n values:\n - WINDOWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getPatchBaselines.\n", + "properties": { + "defaultBaselines": { + "type": "boolean", + "description": "Only return baseline identities where `default_baseline` is `true`.\n" + }, + "filters": { + "type": "array", + "items": { + "$ref": "#/types/aws:ssm/getPatchBaselinesFilter:getPatchBaselinesFilter" + }, + "description": "Key-value pairs used to filter the results. See `filter` below.\n" + } + }, + "type": "object" + }, + "outputs": { + "description": "A collection of values returned by getPatchBaselines.\n", + "properties": { + "baselineIdentities": { + "description": "List of baseline identities. See `baseline_identities` below.\n", + "items": { + "$ref": "#/types/aws:ssm/getPatchBaselinesBaselineIdentity:getPatchBaselinesBaselineIdentity" + }, + "type": "array" + }, + "defaultBaselines": { + "type": "boolean" + }, + "filters": { + "items": { + "$ref": "#/types/aws:ssm/getPatchBaselinesFilter:getPatchBaselinesFilter" + }, + "type": "array" + }, + "id": { + "description": "The provider-assigned unique ID for this managed resource.\n", + "type": "string" + } + }, + "required": [ + "baselineIdentities", + "id" + ], + "type": "object" + } + }, "aws:ssmcontacts/getContact:getContact": { "description": "Data source for managing an AWS SSM Contact.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = aws.ssmcontacts.getContact({\n arn: \"arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ssmcontacts.get_contact(arn=\"arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Aws.SsmContacts.GetContact.Invoke(new()\n {\n Arn = \"arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssmcontacts\"\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 := ssmcontacts.LookupContact(ctx, \u0026ssmcontacts.LookupContactArgs{\n\t\t\tArn: \"arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ssmcontacts.SsmcontactsFunctions;\nimport com.pulumi.aws.ssmcontacts.inputs.GetContactArgs;\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 = SsmcontactsFunctions.getContact(GetContactArgs.builder()\n .arn(\"arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:ssmcontacts:getContact\n Arguments:\n arn: arn:aws:ssm-contacts:us-west-2:123456789012:contact/contactalias\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { diff --git a/provider/go.mod b/provider/go.mod index 3ff7135f5be..2e2767c5b4e 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.32.2 - github.com/aws/aws-sdk-go-v2/config v1.27.43 + github.com/aws/aws-sdk-go-v2/config v1.28.0 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 github.com/aws/aws-sdk-go-v2/service/appconfig v1.34.2 github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.40.0 github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.25.2 - github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3 + github.com/aws/aws-sdk-go-v2/service/s3 v1.66.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 @@ -73,7 +73,7 @@ require ( github.com/aws/aws-sdk-go v1.55.5 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.32 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.33 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect @@ -90,21 +90,21 @@ require ( github.com/aws/aws-sdk-go-v2/service/appflow v1.45.3 // indirect github.com/aws/aws-sdk-go-v2/service/appintegrations v1.30.2 // indirect github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.28.2 // indirect + github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.29.0 // indirect github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.6.2 // indirect github.com/aws/aws-sdk-go-v2/service/appmesh v1.29.2 // indirect github.com/aws/aws-sdk-go-v2/service/apprunner v1.32.2 // indirect github.com/aws/aws-sdk-go-v2/service/appstream v1.41.2 // indirect github.com/aws/aws-sdk-go-v2/service/appsync v1.38.2 // indirect - github.com/aws/aws-sdk-go-v2/service/athena v1.47.2 // indirect + github.com/aws/aws-sdk-go-v2/service/athena v1.48.0 // indirect github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.2 // indirect - github.com/aws/aws-sdk-go-v2/service/autoscaling v1.45.2 // indirect + github.com/aws/aws-sdk-go-v2/service/autoscaling v1.46.0 // indirect github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.2 // indirect github.com/aws/aws-sdk-go-v2/service/backup v1.39.3 // indirect github.com/aws/aws-sdk-go-v2/service/batch v1.46.2 // indirect github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/service/bedrock v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.23.2 // indirect + github.com/aws/aws-sdk-go-v2/service/bedrock v1.21.0 // indirect + github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.24.0 // indirect github.com/aws/aws-sdk-go-v2/service/budgets v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/chatbot v1.8.2 // indirect github.com/aws/aws-sdk-go-v2/service/chime v1.34.2 // indirect @@ -139,17 +139,17 @@ require ( github.com/aws/aws-sdk-go-v2/service/configservice v1.50.2 // indirect github.com/aws/aws-sdk-go-v2/service/connect v1.113.2 // indirect github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.2 // indirect - github.com/aws/aws-sdk-go-v2/service/controltower v1.18.2 // indirect + github.com/aws/aws-sdk-go-v2/service/controltower v1.18.3 // indirect github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/costexplorer v1.43.2 // indirect github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.10.2 // indirect github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.42.2 // indirect - github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.43.0 // indirect + github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.0 // indirect github.com/aws/aws-sdk-go-v2/service/databrew v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/dataexchange v1.32.2 // indirect + github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.0 // indirect github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.2 // indirect github.com/aws/aws-sdk-go-v2/service/datasync v1.42.2 // indirect - github.com/aws/aws-sdk-go-v2/service/datazone v1.22.2 // indirect + github.com/aws/aws-sdk-go-v2/service/datazone v1.23.0 // indirect github.com/aws/aws-sdk-go-v2/service/dax v1.23.2 // indirect github.com/aws/aws-sdk-go-v2/service/detective v1.31.2 // indirect github.com/aws/aws-sdk-go-v2/service/devicefarm v1.28.2 // indirect @@ -161,12 +161,12 @@ require ( github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/service/drs v1.30.2 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.182.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.184.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.2 // indirect - github.com/aws/aws-sdk-go-v2/service/ecs v1.47.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4 // indirect github.com/aws/aws-sdk-go-v2/service/efs v1.33.2 // indirect - github.com/aws/aws-sdk-go-v2/service/eks v1.50.2 // indirect + github.com/aws/aws-sdk-go-v2/service/eks v1.51.0 // indirect github.com/aws/aws-sdk-go-v2/service/elasticache v1.43.0 // indirect github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.28.2 // indirect @@ -180,7 +180,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/finspace v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/firehose v1.34.2 // indirect github.com/aws/aws-sdk-go-v2/service/fis v1.30.2 // indirect - github.com/aws/aws-sdk-go-v2/service/fms v1.37.2 // indirect + github.com/aws/aws-sdk-go-v2/service/fms v1.38.0 // indirect github.com/aws/aws-sdk-go-v2/service/fsx v1.49.2 // indirect github.com/aws/aws-sdk-go-v2/service/gamelift v1.36.2 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.26.2 // indirect @@ -193,6 +193,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/healthlake v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/iam v1.37.2 // indirect github.com/aws/aws-sdk-go-v2/service/identitystore v1.27.2 // indirect + github.com/aws/aws-sdk-go-v2/service/imagebuilder v1.38.0 // indirect github.com/aws/aws-sdk-go-v2/service/inspector v1.25.2 // indirect github.com/aws/aws-sdk-go-v2/service/inspector2 v1.32.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect @@ -224,7 +225,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/lightsail v1.42.2 // indirect github.com/aws/aws-sdk-go-v2/service/location v1.42.2 // indirect github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.2 // indirect - github.com/aws/aws-sdk-go-v2/service/m2 v1.17.2 // indirect + github.com/aws/aws-sdk-go-v2/service/m2 v1.18.0 // indirect github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.2 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.35.2 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.61.2 // indirect @@ -251,16 +252,16 @@ require ( github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.9.2 // indirect github.com/aws/aws-sdk-go-v2/service/pcs v1.2.2 // indirect github.com/aws/aws-sdk-go-v2/service/pinpoint v1.34.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.15.2 // indirect - github.com/aws/aws-sdk-go-v2/service/pipes v1.17.2 // indirect + github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.16.0 // indirect + github.com/aws/aws-sdk-go-v2/service/pipes v1.18.0 // indirect github.com/aws/aws-sdk-go-v2/service/polly v1.45.2 // indirect github.com/aws/aws-sdk-go-v2/service/pricing v1.32.2 // indirect github.com/aws/aws-sdk-go-v2/service/qbusiness v1.14.0 // indirect github.com/aws/aws-sdk-go-v2/service/qldb v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/quicksight v1.76.2 // indirect + github.com/aws/aws-sdk-go-v2/service/quicksight v1.77.0 // indirect github.com/aws/aws-sdk-go-v2/service/ram v1.29.2 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.20.2 // indirect - github.com/aws/aws-sdk-go-v2/service/rds v1.87.2 // indirect + github.com/aws/aws-sdk-go-v2/service/rds v1.88.0 // indirect github.com/aws/aws-sdk-go-v2/service/redshift v1.50.0 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.30.2 // indirect github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.23.2 // indirect @@ -316,7 +317,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/vpclattice v1.12.2 // indirect github.com/aws/aws-sdk-go-v2/service/waf v1.25.2 // indirect github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.2 // indirect - github.com/aws/aws-sdk-go-v2/service/wafv2 v1.54.2 // indirect + github.com/aws/aws-sdk-go-v2/service/wafv2 v1.55.0 // indirect github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.34.2 // indirect github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2 // indirect github.com/aws/aws-sdk-go-v2/service/workspaces v1.48.2 // indirect @@ -399,7 +400,7 @@ require ( github.com/hashicorp/terraform-plugin-framework-jsontypes v0.2.0 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 // indirect - github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 // indirect + github.com/hashicorp/terraform-plugin-framework-validators v0.14.0 // indirect github.com/hashicorp/terraform-plugin-go v0.24.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-mux v0.16.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index e01eefdd4e9..1c5ee0adb5d 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1238,14 +1238,14 @@ github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcT github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA= -github.com/aws/aws-sdk-go-v2/config v1.27.43 h1:p33fDDihFC390dhhuv8nOmX419wjOSDQRb+USt20RrU= -github.com/aws/aws-sdk-go-v2/config v1.27.43/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc= +github.com/aws/aws-sdk-go-v2/config v1.28.0 h1:FosVYWcqEtWNxHn8gB/Vs6jOlNwSoyOCA/g/sxyySOQ= +github.com/aws/aws-sdk-go-v2/config v1.28.0/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc= github.com/aws/aws-sdk-go-v2/credentials v1.17.41 h1:7gXo+Axmp+R4Z+AK8YFQO0ZV3L0gizGINCOWxSLY9W8= github.com/aws/aws-sdk-go-v2/credentials v1.17.41/go.mod h1:u4Eb8d3394YLubphT4jLEwN1rLNq2wFOlT6OuxFwPzU= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 h1:TMH3f/SCAWdNtXXVPPu5D6wrr4G5hI1rAxbcocKfC7Q= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17/go.mod h1:1ZRXLdTpzdJb9fwTMXiLipENRxkGMTn1sfKexGllQCw= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.32 h1:C2hE+gJ40Cb4vzhFJ+tTzjvBpPloUq7XP6PD3A2Fk7g= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.32/go.mod h1:0OmMtVNp+10JFBTfmA2AIeqBDm0YthDXmE+N7poaptk= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.33 h1:X+4YY5kZRI/cOoSMVMGTqFXHAMg1bvvay7IBcqHpybQ= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.33/go.mod h1:DPynzu+cn92k5UQ6tZhX+wfTB4ah6QDU/NgdHqatmvk= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21/go.mod h1:JNr43NFf5L9YaG3eKTm7HQzls9J+A9YYcGI5Quh1r2Y= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 h1:6jZVETqmYCadGFvrYEQfC5fAQmlo80CeL5psbno6r0s= @@ -1280,8 +1280,8 @@ github.com/aws/aws-sdk-go-v2/service/appintegrations v1.30.2 h1:r/++KdfZx8Woi3pI github.com/aws/aws-sdk-go-v2/service/appintegrations v1.30.2/go.mod h1:bcwWgN13kk3Y7iq5stSA+joIygO0/QK7d18ohTEF188= github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.33.2 h1:douQmMbPFGG5AxFDoWdImN3T+8N1z32hkQXPIL7NKGs= github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.33.2/go.mod h1:yg5Zb3dlzZMV7FsmL5fI82xPgUa62sQP4MeQwTS3NRk= -github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.28.2 h1:gOn6bFXWTsGHSBMdMUU5hwmZzop650HoYPq0JSqM+so= -github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.28.2/go.mod h1:6igoPKTMLmlS5UzkIaVsJYLXQjSQAVs75HiY2xdJyKI= +github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.29.0 h1:eI1i6YZDDwAd+wN2v40yWwzRd7DMVPO3227233q9vgA= +github.com/aws/aws-sdk-go-v2/service/applicationinsights v1.29.0/go.mod h1:6igoPKTMLmlS5UzkIaVsJYLXQjSQAVs75HiY2xdJyKI= github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.6.2 h1:VhZVJ0HiiWieoahI0LC+/rrAkgwPpuWw37HlVxs8OrM= github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.6.2/go.mod h1:GzJ9Fze7pxMh9r8wIjFWWDpR7LidenXT5/xEAlZjBkQ= github.com/aws/aws-sdk-go-v2/service/appmesh v1.29.2 h1:YWAxOgkdNG0+K25He+mU3QnxoB7HAGoqDOSLkIA4Ix8= @@ -1292,12 +1292,12 @@ github.com/aws/aws-sdk-go-v2/service/appstream v1.41.2 h1:gNGJ/+acSa5t10VkXTi0FK github.com/aws/aws-sdk-go-v2/service/appstream v1.41.2/go.mod h1:zjq724ntnP8ame8ZzDW0/yca9YPb4CeENOS4hSH/t0Y= github.com/aws/aws-sdk-go-v2/service/appsync v1.38.2 h1:ygiw0umAkC+Gdzcs77aaLtjq4UUJOW6lIu7eK8vpaxM= github.com/aws/aws-sdk-go-v2/service/appsync v1.38.2/go.mod h1:L7JKjMdMuWIfvOLPkN0dGNSLbKrcey+XATTHeB+dCJM= -github.com/aws/aws-sdk-go-v2/service/athena v1.47.2 h1:y8ela03RAsDRd4ajx/M2l/aZQAjwz763LWvuvltxXak= -github.com/aws/aws-sdk-go-v2/service/athena v1.47.2/go.mod h1:bmGCoIiNCRnfKa6T64nCTKrWOtw362tPUKDpq/fjMDU= +github.com/aws/aws-sdk-go-v2/service/athena v1.48.0 h1:oGuR6wuok/T96ISXwQZ64jA83g0qw+poXrDqElx8jk0= +github.com/aws/aws-sdk-go-v2/service/athena v1.48.0/go.mod h1:bmGCoIiNCRnfKa6T64nCTKrWOtw362tPUKDpq/fjMDU= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.2 h1:n6IT2Q6DJg+540tWwIBnJHMrO3Vl5nu+HafGNNo077c= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.37.2/go.mod h1:IZovD0WWpMx5oFy87RwgPPQcnMCQsiFHir7C9SCV50E= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.45.2 h1:NurelK9YO5OB0HlIUj1ycEZJIFNvkuG5iJjo7/r6AJ4= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.45.2/go.mod h1:YmWinWbpoVdOgnBZQFeZJ2l4kT97lvnRlTvX2zyyBfc= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.46.0 h1:HQ0OvPxqTh2mYKRx4BappkCeLBU+E6oWAKSJ5JpP03c= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.46.0/go.mod h1:YmWinWbpoVdOgnBZQFeZJ2l4kT97lvnRlTvX2zyyBfc= github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.2 h1:adYgaCwIbN816Nxyjhfh4P+YkbgoWX5u/+195qOeDH8= github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.24.2/go.mod h1:FJIWPT79C+J0TC0svBOcVZi3agyv/t8ej+nZekrTItU= github.com/aws/aws-sdk-go-v2/service/backup v1.39.3 h1:mjYDN7CPl0CHrTBe36EKqAAGGXAKy8MXuNF+2qHkVdM= @@ -1306,10 +1306,10 @@ github.com/aws/aws-sdk-go-v2/service/batch v1.46.2 h1:QS0NsLcQjsigdaswnWN/xlqZuC github.com/aws/aws-sdk-go-v2/service/batch v1.46.2/go.mod h1:cAqXVRS4uwp/DsssDOY+Gi2wiDoQ4xgRWaPAX/mJbi8= github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.2 h1:phRK57EADWnti25vt4PoNtsOgD/ZH5ojlm5Netstokk= github.com/aws/aws-sdk-go-v2/service/bcmdataexports v1.7.2/go.mod h1:l/bYZQeSpoxKlYA8gEcQQDqkec+MId5k1g3r/EXpYdg= -github.com/aws/aws-sdk-go-v2/service/bedrock v1.20.2 h1:5lZExZBtvE/iWK387JSMbfLWnVSiGCUB4nZdc413RCs= -github.com/aws/aws-sdk-go-v2/service/bedrock v1.20.2/go.mod h1:o0EnsM4cr3V+xf+dQw3TzeqOSYkxxq7VgGnDsgyjgBw= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.23.2 h1:xy4po1FFPotL07BNMDNDrgivQB9rxi6/rV2+Q4qQQ5M= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.23.2/go.mod h1:gYKKDvLQt8S5EdovDwxZBDTVWa4aC86GixDtsmxcZqM= +github.com/aws/aws-sdk-go-v2/service/bedrock v1.21.0 h1:STFP+23Q1vXMnauv3OWu5vLenuzWPKYeTC1JUHolW8U= +github.com/aws/aws-sdk-go-v2/service/bedrock v1.21.0/go.mod h1:o0EnsM4cr3V+xf+dQw3TzeqOSYkxxq7VgGnDsgyjgBw= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.24.0 h1:NbiMdHggevTwK+YY/4gpPEgt60z7dfdPpznhUR1qi1c= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.24.0/go.mod h1:gYKKDvLQt8S5EdovDwxZBDTVWa4aC86GixDtsmxcZqM= github.com/aws/aws-sdk-go-v2/service/budgets v1.28.2 h1:bHYXDkOhPR44ewGRD+7jU6zAvgqAJfNWQ5tsMp4C+UE= github.com/aws/aws-sdk-go-v2/service/budgets v1.28.2/go.mod h1:VS+/KtauBBdzOBHe4v7LjF0lHb4l5f+/Bwlq6aG/LJ0= github.com/aws/aws-sdk-go-v2/service/chatbot v1.8.2 h1:/q5MHgjvnVjFwXS+DVhfvk8HS9B+TlwcywoDD0+HiyA= @@ -1378,8 +1378,8 @@ github.com/aws/aws-sdk-go-v2/service/connect v1.113.2 h1:h45hg2xWdzhr+eFn7aqfg26 github.com/aws/aws-sdk-go-v2/service/connect v1.113.2/go.mod h1:Cr/NBm+YdRHJg0uHNTIDEF++8IQL207oUsjhTAyS4zE= github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.2 h1:BtBIsvj3F0LrsDoLPSZO9qanyXYoDFmXCNJ3I+X80XI= github.com/aws/aws-sdk-go-v2/service/connectcases v1.21.2/go.mod h1:ZrU0ZA81zcKXOUnC8rvjYddEFB3pl7t9tYCdtIRFAb4= -github.com/aws/aws-sdk-go-v2/service/controltower v1.18.2 h1:IZi4ivxDbOAfCZvEeNhvYwrBANiYF9RE35yczZb4f0Y= -github.com/aws/aws-sdk-go-v2/service/controltower v1.18.2/go.mod h1:15mOn+tmGhx9+TidoQaa8gSBItjFx/A5XT9GV1L+LPc= +github.com/aws/aws-sdk-go-v2/service/controltower v1.18.3 h1:v4aBi2Jw4vGmLv58u5YZduJbbErX8a0ML1+RRWI7Sko= +github.com/aws/aws-sdk-go-v2/service/controltower v1.18.3/go.mod h1:15mOn+tmGhx9+TidoQaa8gSBItjFx/A5XT9GV1L+LPc= github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.28.2 h1:i7yTib7O8olbSmTyW2c5C2asN6GUfMI2RLmdKsc/3e4= github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.28.2/go.mod h1:2Ux5wul+bF0/JIAATf1cv3PWJatZqi/dFt7bRSeYEcU= github.com/aws/aws-sdk-go-v2/service/costexplorer v1.43.2 h1:Tg7kuCaHMCFOW+HhK/maIH7qtkeDbzahqQOUO9c+/L8= @@ -1388,18 +1388,18 @@ github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.10.2 h1:3MtTruznyGml github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.10.2/go.mod h1:khyqDEa/5mT22FwodCCtZN4n+9C62VXwqNiPeAkqYlY= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.42.2 h1:dHQXIHPlijJIBUubNpShhIUooNDUKB/B8nJ6OSsJfmQ= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.42.2/go.mod h1:n9F5nRLYyqBz1khsBptXyceq6ZJG9xqzl2pIyVqYq/8= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.43.0 h1:jb9QBxC7Xh0cSpprVOtzJtlyVbJrnLs0oAplby2sZ78= -github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.43.0/go.mod h1:+JQlP0jMyl8iWGcUcGzTf+qculjIY+08UN7RKiljmps= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.0 h1:u/zESCIEwz9UoEHFZgITa097TkQZWyrqR5bNHZn/Ozw= +github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.44.0/go.mod h1:+JQlP0jMyl8iWGcUcGzTf+qculjIY+08UN7RKiljmps= github.com/aws/aws-sdk-go-v2/service/databrew v1.33.2 h1:M18nqFfXtAgxfGoUaaeJS7x8vfZum5SeGq1+5Iu0DLQ= github.com/aws/aws-sdk-go-v2/service/databrew v1.33.2/go.mod h1:CVFxoBbEUNT6MbNBrDAv2rAZJSuYYLUssU9pyXVQbEc= -github.com/aws/aws-sdk-go-v2/service/dataexchange v1.32.2 h1:Xm45iokXdZeq+gSsl7P3ZLzPnHIAUWdH2RLOEYt342Y= -github.com/aws/aws-sdk-go-v2/service/dataexchange v1.32.2/go.mod h1:s7mEeIfGsxtBz5vAt/0N+cTHrO+jktEyJMuRxhaLQG8= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.0 h1:k6mEvId7/e7VFQHDYERVSIINa/b+9rTs8kASzsS5aQ0= +github.com/aws/aws-sdk-go-v2/service/dataexchange v1.33.0/go.mod h1:s7mEeIfGsxtBz5vAt/0N+cTHrO+jktEyJMuRxhaLQG8= github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.2 h1:RyuqjcKTFUrAcOrORvZTc7OrqO280S8CKBHjNuSQWHY= github.com/aws/aws-sdk-go-v2/service/datapipeline v1.25.2/go.mod h1:s5RnNkqKX4CuWw48LUh0l18kxmcY1ft7Vz1uZOogxmk= github.com/aws/aws-sdk-go-v2/service/datasync v1.42.2 h1:mNOyYZFjd3CakcvYIVCmqXFZ0pZJSGobtDx5UciBLOc= github.com/aws/aws-sdk-go-v2/service/datasync v1.42.2/go.mod h1:qWAvIKfkNqX/IN0sXwOiq73zzSCW/Ar96mHbfY/5D9c= -github.com/aws/aws-sdk-go-v2/service/datazone v1.22.2 h1:d/oy2uO4xd8CdUvpPBtdMcyicNvmjcv1FMR2uz8GeAQ= -github.com/aws/aws-sdk-go-v2/service/datazone v1.22.2/go.mod h1:vP3xFM0eQ1QJiEyoLeMQQZFPyVDyAiz8oZT6Oyktc44= +github.com/aws/aws-sdk-go-v2/service/datazone v1.23.0 h1:vPcABuqO6byiCK1ziiuqRGhwJIZ5olcLIVqdfsVjnLc= +github.com/aws/aws-sdk-go-v2/service/datazone v1.23.0/go.mod h1:vP3xFM0eQ1QJiEyoLeMQQZFPyVDyAiz8oZT6Oyktc44= github.com/aws/aws-sdk-go-v2/service/dax v1.23.2 h1:sa4Tc0fyVoQ4TYTpYEts24eme3A/gJ8JtJ8ivPnmZfU= github.com/aws/aws-sdk-go-v2/service/dax v1.23.2/go.mod h1:I0tRaWbXqL20SQYLpkj/SMfF7DWn2uixcWh6wgxPmIA= github.com/aws/aws-sdk-go-v2/service/detective v1.31.2 h1:YNJKvWXuq2bSP7gGiiUAFovKsIfRroQ+hrH7jAUN0IE= @@ -1422,18 +1422,18 @@ github.com/aws/aws-sdk-go-v2/service/drs v1.30.2 h1:x3Npo3YynC7zY+2NBo7BGpyJ2FQ6 github.com/aws/aws-sdk-go-v2/service/drs v1.30.2/go.mod h1:J+ZP4mpSfSaWNFekoJULiHE2yZBzjYRMtWSlQhjZUQY= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.2 h1:kJqyYcGqhWFmXqjRrtFFD4Oc9FXiskhsll2xnlpe8Do= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.36.2/go.mod h1:+t2Zc5VNOzhaWzpGE+cEYZADsgAAQT5v55AO+fhU+2s= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.182.0 h1:LaeziEhHZ/SJZYBK223QVzl3ucHvA9IP4tQMcxGrc9I= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.182.0/go.mod h1:kYXaB4FzyhEJjvrJ84oPnMElLiEAjGxxUunVW2tBSng= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.184.0 h1:SZnuDlml1uFv5ojh+QTxS+Yru89Hr3QYIUwWoY71frI= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.184.0/go.mod h1:kYXaB4FzyhEJjvrJ84oPnMElLiEAjGxxUunVW2tBSng= github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 h1:VDQaVwGOokbd3VUbHF+wupiffdrbAZPdQnr5XZMJqrs= github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2/go.mod h1:lvUlMghKYmSxSfv0vU7pdU/8jSY+s0zpG8xXhaGKCw0= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.2 h1:Zru9Iy2JPM5+uRnFnoqeOZzi8JIVIHJ0ua6JdeDHcyg= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.2/go.mod h1:PtQC3XjutCYFCn1+i8+wtpDaXvEK+vXF2gyLIKAmh4A= -github.com/aws/aws-sdk-go-v2/service/ecs v1.47.3 h1:4eCmSyAxsmZ1i8Bf3YoXX0XXx4hN1G4Y+ujCY4/VYHE= -github.com/aws/aws-sdk-go-v2/service/ecs v1.47.3/go.mod h1:sMFLFhL27cKYa/eQYZp4asvIwHsnJWrAzTUpy9AQdnU= +github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4 h1:CTkPGE8fiElvLtYWl/U+Eu5+1fVXiZbJUjyVCRSRgxk= +github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4/go.mod h1:sMFLFhL27cKYa/eQYZp4asvIwHsnJWrAzTUpy9AQdnU= github.com/aws/aws-sdk-go-v2/service/efs v1.33.2 h1:ePgaKeaN4kXAqzxvDsSilIIq+jftioJb4KXRobIM6ko= github.com/aws/aws-sdk-go-v2/service/efs v1.33.2/go.mod h1:ZEnNWIxtJp/3H1pPE+IZE4exGTJkAdoGfpM5m5/evxo= -github.com/aws/aws-sdk-go-v2/service/eks v1.50.2 h1:vL3RqZ4x6uqpKswp5gB0KyGcsrgkUdKmLTXCDHDUUZw= -github.com/aws/aws-sdk-go-v2/service/eks v1.50.2/go.mod h1:oaPCqTzAe8C5RQZJGRD4RENcV7A4n99uGxbD4rULbNg= +github.com/aws/aws-sdk-go-v2/service/eks v1.51.0 h1:BYyB+byjQ7oyupe3v+YjTp1yfmfNEwChYA2naCc85xI= +github.com/aws/aws-sdk-go-v2/service/eks v1.51.0/go.mod h1:oaPCqTzAe8C5RQZJGRD4RENcV7A4n99uGxbD4rULbNg= github.com/aws/aws-sdk-go-v2/service/elasticache v1.43.0 h1:rebYexCOCdOpR1zU1ObUIn+or4pS38W1IVQGKzZcSos= github.com/aws/aws-sdk-go-v2/service/elasticache v1.43.0/go.mod h1:pfx/wDobZvEpxE96P1i0nHbTYEJMCCMv3uMk7UPvdsE= github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.28.2 h1:La4LqsDHSMdCKoYzKs5b20wSYHfvc6xFBb8OAPDFuGg= @@ -1462,8 +1462,8 @@ github.com/aws/aws-sdk-go-v2/service/firehose v1.34.2 h1:9uMAwYszi6P6FTbUVq1X6MM github.com/aws/aws-sdk-go-v2/service/firehose v1.34.2/go.mod h1:yGI4W+5bau/K+JNUGepk4lwqLPt77Le6bLL8XrmKAMY= github.com/aws/aws-sdk-go-v2/service/fis v1.30.2 h1:qw7ZkSCy0akQJbJdIgRQaqXEHe7PrA3DHvE4VvemFJw= github.com/aws/aws-sdk-go-v2/service/fis v1.30.2/go.mod h1:CArS66NFuL1fBiSLVfWZV6oQjicsdViLm7Ic9Lte7x4= -github.com/aws/aws-sdk-go-v2/service/fms v1.37.2 h1:TwT5oa4EUI2O97pPSzLQmJH/4R1aqV+ucnMatvksjXE= -github.com/aws/aws-sdk-go-v2/service/fms v1.37.2/go.mod h1:sWvDxD23qcn9nbwvVfCmXOQx2HufC9n76agqoio9pfg= +github.com/aws/aws-sdk-go-v2/service/fms v1.38.0 h1:GcVv0jgW1fXkNkDFYVQTfpkYB+J4UBXXQ69Epx8MzyE= +github.com/aws/aws-sdk-go-v2/service/fms v1.38.0/go.mod h1:sWvDxD23qcn9nbwvVfCmXOQx2HufC9n76agqoio9pfg= github.com/aws/aws-sdk-go-v2/service/fsx v1.49.2 h1:Wc2N860CGBc3GJTqfucK7IvQCtGECZXOrHACyFth3sI= github.com/aws/aws-sdk-go-v2/service/fsx v1.49.2/go.mod h1:sk7ZHm49x4rJzJAfeo1dl43sCL26lZx5/Yx2b2VUJkU= github.com/aws/aws-sdk-go-v2/service/gamelift v1.36.2 h1:YN63wWC/rOHKr2sKdCQ7d8GA1xkWpiAqxDeZEBRxvqg= @@ -1488,6 +1488,8 @@ github.com/aws/aws-sdk-go-v2/service/iam v1.37.2 h1:E7vCDUFeDN8uOk8Nb2d4E1howWS1 github.com/aws/aws-sdk-go-v2/service/iam v1.37.2/go.mod h1:QzMecFrIFYJ1cyxjlUoIFRzYSDX19gdqYUd0Tyws2J8= github.com/aws/aws-sdk-go-v2/service/identitystore v1.27.2 h1:QSrf6HsounqUtlFAwArhVNHPt3WXmSm0pz7RtojjBdo= github.com/aws/aws-sdk-go-v2/service/identitystore v1.27.2/go.mod h1:PtkL4CXOQy84zudggyFtyJFXCGDRY8igg9Nfo9df1sU= +github.com/aws/aws-sdk-go-v2/service/imagebuilder v1.38.0 h1:+gsGZbypyP+atqTDsrtaKe26TgrONg3z6rLTm5RmIhg= +github.com/aws/aws-sdk-go-v2/service/imagebuilder v1.38.0/go.mod h1:hqe5ZWGAMgZC14I2GrXc+tUPpucDfGb94RB/7IOdQ/o= github.com/aws/aws-sdk-go-v2/service/inspector v1.25.2 h1:xiQ70pTvXs9PFYmewDgeICVxRpiQP+cWQZmunV5uYKk= github.com/aws/aws-sdk-go-v2/service/inspector v1.25.2/go.mod h1:sDcAla3dh7DO6AAdh+29e+rowLaIcw2fxuwNFCIlBuA= github.com/aws/aws-sdk-go-v2/service/inspector2 v1.32.2 h1:D0nDW7y3KLPGShqF7gaKFRswY8ekG8jsfN4r3CWqAjQ= @@ -1550,8 +1552,8 @@ github.com/aws/aws-sdk-go-v2/service/location v1.42.2 h1:QeEPlMSVn/GtUGVz/G9FBFV github.com/aws/aws-sdk-go-v2/service/location v1.42.2/go.mod h1:nCDXuPUnJLC/PvDh6iXjM/4LIUak0MTzXamdVn9Typk= github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.2 h1:xq/m847nPu/qjcGWfT5AMmLfmb0Z8RzYmsiPQCnqWRg= github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.31.2/go.mod h1:sWTm2Cszymy7WYqCuLvw/Zvzy1t08ceZP6Brpo7COY0= -github.com/aws/aws-sdk-go-v2/service/m2 v1.17.2 h1:2U0/1YSsugrRPnSa9WSPQqBEt5/8ZuTPwYhSFjndIzY= -github.com/aws/aws-sdk-go-v2/service/m2 v1.17.2/go.mod h1:HWB51wlVsdbT1BrpH4BYrgpxhc012ja8je2TTwjzr/0= +github.com/aws/aws-sdk-go-v2/service/m2 v1.18.0 h1:4yncbqHQ5TmL+AElqjSIppgEvCiNgboMDk0FcQ5qSW8= +github.com/aws/aws-sdk-go-v2/service/m2 v1.18.0/go.mod h1:HWB51wlVsdbT1BrpH4BYrgpxhc012ja8je2TTwjzr/0= github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.2 h1:MbR0vRNd7am1So5hcYho+N11dxzhZbB4qdsi+cmcBp0= github.com/aws/aws-sdk-go-v2/service/macie2 v1.43.2/go.mod h1:B2FFzz9qQQ8l3MZV/MjMi4ua9VbqcQK8Huuv6066RZ8= github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.35.2 h1:AibWQdB6x5CTlJ11/C0wp+fAUUKmCFLwU5H4h9kov0c= @@ -1604,10 +1606,10 @@ github.com/aws/aws-sdk-go-v2/service/pcs v1.2.2 h1:UGa4l3NHvmTWb+tbaNrpqYt0jHgiQ github.com/aws/aws-sdk-go-v2/service/pcs v1.2.2/go.mod h1:IisjjF5pkMDOaPgMt3XtIp4ovE0eIghP6Xt4UjZOejs= github.com/aws/aws-sdk-go-v2/service/pinpoint v1.34.2 h1:2M25NsmsuIgFd4JLfcrgOhaikgJ77QghJitjCJM2fRM= github.com/aws/aws-sdk-go-v2/service/pinpoint v1.34.2/go.mod h1:MXITGxBf1myinMhDcLjx/8dskl5uwwOkjQuSk97mBe0= -github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.15.2 h1:2c/NwrSaSvoMIUeNIaFlF7OODfzAt/Pfm73ytyRkKUk= -github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.15.2/go.mod h1:jndiYCP1PdoEayQPElKL+m9Rg6sG+TElnL04eNBPZa4= -github.com/aws/aws-sdk-go-v2/service/pipes v1.17.2 h1:M6llQCYVeHTlLBK45YcwXpmQptmI/at47l3QXnGY6rU= -github.com/aws/aws-sdk-go-v2/service/pipes v1.17.2/go.mod h1:XtWK2mf8LxoRhiuidG/bsHd/kOGUijNkS2MKu5Yz2ZY= +github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.16.0 h1:oqt4D9ke97Mry5q6RWxRavlq+Z/mppBUGunongcrP5I= +github.com/aws/aws-sdk-go-v2/service/pinpointsmsvoicev2 v1.16.0/go.mod h1:jndiYCP1PdoEayQPElKL+m9Rg6sG+TElnL04eNBPZa4= +github.com/aws/aws-sdk-go-v2/service/pipes v1.18.0 h1:G6JDBcdwWA+c4pUrf1L6N7qx+l7nDhQyEHpwjxrj5vI= +github.com/aws/aws-sdk-go-v2/service/pipes v1.18.0/go.mod h1:XtWK2mf8LxoRhiuidG/bsHd/kOGUijNkS2MKu5Yz2ZY= github.com/aws/aws-sdk-go-v2/service/polly v1.45.2 h1:8SxFBXQz6ugH4+/91nQlYMHGpH4pdFDSOin+oQnMvJ8= github.com/aws/aws-sdk-go-v2/service/polly v1.45.2/go.mod h1:PAg+2IgPApH1b/uKkuf30SV6JTzew21vz0ztIFFas/M= github.com/aws/aws-sdk-go-v2/service/pricing v1.32.2 h1:eBKzA9Te6JHD1TfVjuja7pa8iEdXVzW5z0QPcbrPhNs= @@ -1616,14 +1618,14 @@ github.com/aws/aws-sdk-go-v2/service/qbusiness v1.14.0 h1:o+1+kyTMk1Wxiegc6tFGhY github.com/aws/aws-sdk-go-v2/service/qbusiness v1.14.0/go.mod h1:O4hOPHq3wkF16n15JtVWRfHV9FgR9cWVK+ZEiVrZQt4= github.com/aws/aws-sdk-go-v2/service/qldb v1.25.2 h1:4JPtMnMSUvNI0WmbmS6z3PrnFaYMivMOM61RaXlqFs4= github.com/aws/aws-sdk-go-v2/service/qldb v1.25.2/go.mod h1:LmPnnHoe1VWC1pnVVBP2IMJ2i/Fc70C9yamwgmwOyA4= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.76.2 h1:kne8Igc11d2/rTfrjDql4Eg5CAl/EC2VXbagPgeEqHQ= -github.com/aws/aws-sdk-go-v2/service/quicksight v1.76.2/go.mod h1:q9eOAAmLIZKHy+3ONua6b/WW2HwdtyVb8gUSBbh8Ejs= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.77.0 h1:rduomqww7uQsAZhwOQeKbjSk37v7gvuBLcGytuhFT6Q= +github.com/aws/aws-sdk-go-v2/service/quicksight v1.77.0/go.mod h1:q9eOAAmLIZKHy+3ONua6b/WW2HwdtyVb8gUSBbh8Ejs= github.com/aws/aws-sdk-go-v2/service/ram v1.29.2 h1:MzE8+xBV5omQ8aP7I2XarPS1bORO3tHpJcyCkMQQa+8= github.com/aws/aws-sdk-go-v2/service/ram v1.29.2/go.mod h1:/rvsX6270oRGq4zBWQlFAenU4144KSJcaOFrDffHsjk= github.com/aws/aws-sdk-go-v2/service/rbin v1.20.2 h1:U+BnnWf3/yxyTQO5GBXkFO9S2lxJwtEcHskMSNIqqE0= github.com/aws/aws-sdk-go-v2/service/rbin v1.20.2/go.mod h1:B7r89tuqcg/tnDE5rtukNU1irjRhC+S10GjEFIFAj1M= -github.com/aws/aws-sdk-go-v2/service/rds v1.87.2 h1:EUBCpvWYJRDV+baakcOlytZsEnjq21dBBw+di4q5TUE= -github.com/aws/aws-sdk-go-v2/service/rds v1.87.2/go.mod h1:KziDa/w2AVz3dfANxwuBV0XqoQjxTKbVQyLNH5BRvO4= +github.com/aws/aws-sdk-go-v2/service/rds v1.88.0 h1:QdpwmIB0ZZN/devOnw+dJSF2VFnmn3LM5kuEKQ0kpj0= +github.com/aws/aws-sdk-go-v2/service/rds v1.88.0/go.mod h1:KziDa/w2AVz3dfANxwuBV0XqoQjxTKbVQyLNH5BRvO4= github.com/aws/aws-sdk-go-v2/service/redshift v1.50.0 h1:AT056ID/JR3pCAhwpak11ATQ6wRtaQpFqoJYjoEG7aM= github.com/aws/aws-sdk-go-v2/service/redshift v1.50.0/go.mod h1:LuUSvbRK6lNleFaeXOm3gJxnnau2qoZd1wPU7DwjS4w= github.com/aws/aws-sdk-go-v2/service/redshiftdata v1.30.2 h1:nghfgMfAqF3xl783g5Ig0UZafPMNAHm+Bx8G2l63aEg= @@ -1656,8 +1658,8 @@ github.com/aws/aws-sdk-go-v2/service/route53resolver v1.33.0 h1:CBZvorZuZJOtHRnM github.com/aws/aws-sdk-go-v2/service/route53resolver v1.33.0/go.mod h1:hw1tbJqbXUc5KzxQjgMhxQ7jrvlJHEnnvpBbrpECoy4= github.com/aws/aws-sdk-go-v2/service/rum v1.21.2 h1:/Pkl6B1xo1Q+/O31/M6+jIu/8DxyNR4R/7BUbTrpG5M= github.com/aws/aws-sdk-go-v2/service/rum v1.21.2/go.mod h1:TdJqY9exgK2kZ9ltoAubxiJ+a+mfF4qLYXsQaI1JkUI= -github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3 h1:xxHGZ+wUgZNACQmxtdvP5tgzfsxGS3vPpTP5Hy3iToE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0 h1:xA6XhTF7PE89BCNHJbQi8VvPzcgMtmGC5dr8S8N7lHk= +github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8= github.com/aws/aws-sdk-go-v2/service/s3control v1.49.2 h1:W1nwi6M/LfTRO8bPw9wlKJ1tDy1tIT4fytBsHXpIRIw= github.com/aws/aws-sdk-go-v2/service/s3control v1.49.2/go.mod h1:+EAvXfnipjpvEfaKWS98sgU7KgzEuH4/qxJIeEG+GTY= github.com/aws/aws-sdk-go-v2/service/s3outposts v1.28.2 h1:n5Pq/tEiZFuk6Ylju7zyWjA6tlgOvpBVx7h3KJtMC5k= @@ -1738,8 +1740,8 @@ github.com/aws/aws-sdk-go-v2/service/waf v1.25.2 h1:mGMfHPEXIR1G2mRJ5BGQnksDTt7J github.com/aws/aws-sdk-go-v2/service/waf v1.25.2/go.mod h1:g7m/OfmrD3MK7JHjJ/NBxMy87Mffp1KhNhQIKskMp2U= github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.2 h1:PMBOZsPm34AE5+0FUkBD94hoEdAsRiVNO+V1NcVstWk= github.com/aws/aws-sdk-go-v2/service/wafregional v1.25.2/go.mod h1:Zw9xd/Zg0wMX3V57Pi/KAiQdqXg9ikfdEd0IK83v9B0= -github.com/aws/aws-sdk-go-v2/service/wafv2 v1.54.2 h1:SXwBXwm13cbQKjV3nt7Fkkxs/blH3lrbV9aKdjT+Zmk= -github.com/aws/aws-sdk-go-v2/service/wafv2 v1.54.2/go.mod h1:0omlXhQY21zKfGkdIfufpV7kLt564XtjQcywixaNXrM= +github.com/aws/aws-sdk-go-v2/service/wafv2 v1.55.0 h1:sS3SDk8EugdW+KW56VR6qcEg8JpC8pNLVICVBr8mMb4= +github.com/aws/aws-sdk-go-v2/service/wafv2 v1.55.0/go.mod h1:0omlXhQY21zKfGkdIfufpV7kLt564XtjQcywixaNXrM= github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.34.2 h1:uhOu5pbceq96a/0nWtf/2Drt/M9hh94ic5d4LaEdFzE= github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.34.2/go.mod h1:VJNJ9aES48jXBIc74SZnP0KmQr6Fku2eYHSV8854qpc= github.com/aws/aws-sdk-go-v2/service/worklink v1.23.2 h1:VN3Qydtdl3UlJRHVxQxSP1d8I5gtvT5zdaCCAfZST7Y= @@ -2178,8 +2180,8 @@ github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 h1:gm5b1kHgFFhaK github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1/go.mod h1:MsjL1sQ9L7wGwzJ5RjcI6FzEMdyoBnw+XK8ZnOvQOLY= github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 h1:v3DapR8gsp3EM8fKMh6up9cJUFQ2iRaFsYLP8UJnCco= github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0/go.mod h1:c3PnGE9pHBDfdEVG9t1S1C9ia5LW+gkFR0CygXlM8ak= -github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E= -github.com/hashicorp/terraform-plugin-framework-validators v0.13.0/go.mod h1:wGeI02gEhj9nPANU62F2jCaHjXulejm/X+af4PdZaNo= +github.com/hashicorp/terraform-plugin-framework-validators v0.14.0 h1:3PCn9iyzdVOgHYOBmncpSSOxjQhCTYmc+PGvbdlqSaI= +github.com/hashicorp/terraform-plugin-framework-validators v0.14.0/go.mod h1:LwDKNdzxrDY/mHBrlC6aYfE2fQ3Dk3gaJD64vNiXvo4= github.com/hashicorp/terraform-plugin-go v0.22.0/go.mod h1:mPULV91VKss7sik6KFEcEu7HuTogMLLO/EvWCuFkRVE= github.com/hashicorp/terraform-plugin-go v0.24.0 h1:2WpHhginCdVhFIrWHxDEg6RBn3YaWzR2o6qUeIEat2U= github.com/hashicorp/terraform-plugin-go v0.24.0/go.mod h1:tUQ53lAsOyYSckFGEefGC5C8BAaO0ENqzFd3bQeuYQg= diff --git a/provider/resources.go b/provider/resources.go index 1d855c10d73..97294358855 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -202,6 +202,7 @@ const ( qldbMod = "Qldb" // QLDB quicksightMod = "Quicksight" // Quicksight ramMod = "Ram" // Resource Access Manager + resilienceHubMod = "ResilienceHub" // Resilience Hub rbinMod = "Rbin" // Recycle Bin rdsMod = "Rds" // Relational Database Service (RDS) rekognitionMod = "Rekognition" // Amazon Rekognition" @@ -433,6 +434,7 @@ var moduleMap = map[string]string{ "redshiftdata": redshiftDataMod, "redshiftserverless": redshiftServerlessMod, "rekognition": rekognitionMod, + "resiliencehub": resilienceHubMod, "resourcegroups": resourcegroupsMod, "resourcegroupstaggingapi": resourcegroupsTaggingApiMod, "rolesanywhere": rolesAnywhereMod, @@ -5865,7 +5867,9 @@ func setupComputedIDs(prov *tfbridge.ProviderInfo) { prov.Resources["aws_iam_user_policies_exclusive"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { return attr(state, "userName"), nil } - prov.Resources["aws_backup_restore_testing_plan"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { + prov.Resources["aws_backup_restore_testing_plan"].ComputeID = func( + ctx context.Context, state resource.PropertyMap, + ) (resource.ID, error) { return attr(state, "name"), nil } prov.Resources["aws_backup_restore_testing_selection"].ComputeID = func( @@ -5890,4 +5894,9 @@ func setupComputedIDs(prov *tfbridge.ProviderInfo) { ) (resource.ID, error) { return attrWithSeparator(state, "userName"), nil } + prov.Resources["aws_resiliencehub_resiliency_policy"].ComputeID = func( + ctx context.Context, state resource.PropertyMap, + ) (resource.ID, error) { + return attrWithSeparator(state, "arn"), nil + } } diff --git a/sdk/dotnet/Alb/GetLoadBalancer.cs b/sdk/dotnet/Alb/GetLoadBalancer.cs index fa3b5c182b2..469dd2ef92a 100644 --- a/sdk/dotnet/Alb/GetLoadBalancer.cs +++ b/sdk/dotnet/Alb/GetLoadBalancer.cs @@ -169,6 +169,7 @@ public sealed class GetLoadBalancerResult public readonly bool EnableTlsVersionAndCipherSuiteHeaders; public readonly bool EnableWafFailOpen; public readonly bool EnableXffClientPort; + public readonly bool EnableZonalShift; public readonly string EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic; /// /// The provider-assigned unique ID for this managed resource. @@ -222,6 +223,8 @@ private GetLoadBalancerResult( bool enableXffClientPort, + bool enableZonalShift, + string enforceSecurityGroupInboundRulesOnPrivateLinkTraffic, string id, @@ -268,6 +271,7 @@ private GetLoadBalancerResult( EnableTlsVersionAndCipherSuiteHeaders = enableTlsVersionAndCipherSuiteHeaders; EnableWafFailOpen = enableWafFailOpen; EnableXffClientPort = enableXffClientPort; + EnableZonalShift = enableZonalShift; EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic = enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; Id = id; IdleTimeout = idleTimeout; diff --git a/sdk/dotnet/Alb/Listener.cs b/sdk/dotnet/Alb/Listener.cs index dd62d0219ff..12cf6cab422 100644 --- a/sdk/dotnet/Alb/Listener.cs +++ b/sdk/dotnet/Alb/Listener.cs @@ -413,6 +413,12 @@ public partial class Listener : global::Pulumi.CustomResource [Output("tagsAll")] public Output> TagsAll { get; private set; } = null!; + /// + /// TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + /// + [Output("tcpIdleTimeoutSeconds")] + public Output TcpIdleTimeoutSeconds { get; private set; } = null!; + /// /// Create a Listener resource with the given unique name, arguments, and options. @@ -531,6 +537,12 @@ public InputMap Tags set => _tags = value; } + /// + /// TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + /// + [Input("tcpIdleTimeoutSeconds")] + public Input? TcpIdleTimeoutSeconds { get; set; } + public ListenerArgs() { } @@ -626,6 +638,12 @@ public InputMap TagsAll set => _tagsAll = value; } + /// + /// TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + /// + [Input("tcpIdleTimeoutSeconds")] + public Input? TcpIdleTimeoutSeconds { get; set; } + public ListenerState() { } diff --git a/sdk/dotnet/Alb/LoadBalancer.cs b/sdk/dotnet/Alb/LoadBalancer.cs index a548cc7c264..93cbdbfbb5a 100644 --- a/sdk/dotnet/Alb/LoadBalancer.cs +++ b/sdk/dotnet/Alb/LoadBalancer.cs @@ -255,6 +255,12 @@ public partial class LoadBalancer : global::Pulumi.CustomResource [Output("enableXffClientPort")] public Output EnableXffClientPort { get; private set; } = null!; + /// + /// Whether zonal shift is enabled. Defaults to `false`. + /// + [Output("enableZonalShift")] + public Output EnableZonalShift { get; private set; } = null!; + /// /// Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. /// @@ -476,6 +482,12 @@ public sealed class LoadBalancerArgs : global::Pulumi.ResourceArgs [Input("enableXffClientPort")] public Input? EnableXffClientPort { get; set; } + /// + /// Whether zonal shift is enabled. Defaults to `false`. + /// + [Input("enableZonalShift")] + public Input? EnableZonalShift { get; set; } + /// /// Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. /// @@ -682,6 +694,12 @@ public sealed class LoadBalancerState : global::Pulumi.ResourceArgs [Input("enableXffClientPort")] public Input? EnableXffClientPort { get; set; } + /// + /// Whether zonal shift is enabled. Defaults to `false`. + /// + [Input("enableZonalShift")] + public Input? EnableZonalShift { get; set; } + /// /// Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. /// diff --git a/sdk/dotnet/CodeDeploy/DeploymentConfig.cs b/sdk/dotnet/CodeDeploy/DeploymentConfig.cs index e5737958e39..de38e5a95ba 100644 --- a/sdk/dotnet/CodeDeploy/DeploymentConfig.cs +++ b/sdk/dotnet/CodeDeploy/DeploymentConfig.cs @@ -181,6 +181,12 @@ public partial class DeploymentConfig : global::Pulumi.CustomResource [Output("trafficRoutingConfig")] public Output TrafficRoutingConfig { get; private set; } = null!; + /// + /// A zonal_config block. Zonal Config is documented below. + /// + [Output("zonalConfig")] + public Output ZonalConfig { get; private set; } = null!; + /// /// Create a DeploymentConfig resource with the given unique name, arguments, and options. @@ -251,6 +257,12 @@ public sealed class DeploymentConfigArgs : global::Pulumi.ResourceArgs [Input("trafficRoutingConfig")] public Input? TrafficRoutingConfig { get; set; } + /// + /// A zonal_config block. Zonal Config is documented below. + /// + [Input("zonalConfig")] + public Input? ZonalConfig { get; set; } + public DeploymentConfigArgs() { } @@ -295,6 +307,12 @@ public sealed class DeploymentConfigState : global::Pulumi.ResourceArgs [Input("trafficRoutingConfig")] public Input? TrafficRoutingConfig { get; set; } + /// + /// A zonal_config block. Zonal Config is documented below. + /// + [Input("zonalConfig")] + public Input? ZonalConfig { get; set; } + public DeploymentConfigState() { } diff --git a/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigArgs.cs b/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigArgs.cs new file mode 100644 index 00000000000..13b96d30beb --- /dev/null +++ b/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigArgs.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.CodeDeploy.Inputs +{ + + public sealed class DeploymentConfigZonalConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + /// + [Input("firstZoneMonitorDurationInSeconds")] + public Input? FirstZoneMonitorDurationInSeconds { get; set; } + + /// + /// The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + /// + [Input("minimumHealthyHostsPerZone")] + public Input? MinimumHealthyHostsPerZone { get; set; } + + /// + /// The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + /// + [Input("monitorDurationInSeconds")] + public Input? MonitorDurationInSeconds { get; set; } + + public DeploymentConfigZonalConfigArgs() + { + } + public static new DeploymentConfigZonalConfigArgs Empty => new DeploymentConfigZonalConfigArgs(); + } +} diff --git a/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigGetArgs.cs b/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigGetArgs.cs new file mode 100644 index 00000000000..21ec2f626ae --- /dev/null +++ b/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigGetArgs.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.CodeDeploy.Inputs +{ + + public sealed class DeploymentConfigZonalConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + /// + [Input("firstZoneMonitorDurationInSeconds")] + public Input? FirstZoneMonitorDurationInSeconds { get; set; } + + /// + /// The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + /// + [Input("minimumHealthyHostsPerZone")] + public Input? MinimumHealthyHostsPerZone { get; set; } + + /// + /// The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + /// + [Input("monitorDurationInSeconds")] + public Input? MonitorDurationInSeconds { get; set; } + + public DeploymentConfigZonalConfigGetArgs() + { + } + public static new DeploymentConfigZonalConfigGetArgs Empty => new DeploymentConfigZonalConfigGetArgs(); + } +} diff --git a/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs.cs b/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs.cs new file mode 100644 index 00000000000..7061c8d195a --- /dev/null +++ b/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs.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.CodeDeploy.Inputs +{ + + public sealed class DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs : global::Pulumi.ResourceArgs + { + /// + /// The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + /// + [Input("type")] + public Input? Type { get; set; } + + /// + /// The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + /// + [Input("value")] + public Input? Value { get; set; } + + public DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs() + { + } + public static new DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs Empty => new DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs(); + } +} diff --git a/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneGetArgs.cs b/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneGetArgs.cs new file mode 100644 index 00000000000..ec08417774d --- /dev/null +++ b/sdk/dotnet/CodeDeploy/Inputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneGetArgs.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.CodeDeploy.Inputs +{ + + public sealed class DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + /// + [Input("type")] + public Input? Type { get; set; } + + /// + /// The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + /// + [Input("value")] + public Input? Value { get; set; } + + public DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneGetArgs() + { + } + public static new DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneGetArgs Empty => new DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneGetArgs(); + } +} diff --git a/sdk/dotnet/CodeDeploy/Outputs/DeploymentConfigZonalConfig.cs b/sdk/dotnet/CodeDeploy/Outputs/DeploymentConfigZonalConfig.cs new file mode 100644 index 00000000000..372faf38efe --- /dev/null +++ b/sdk/dotnet/CodeDeploy/Outputs/DeploymentConfigZonalConfig.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.CodeDeploy.Outputs +{ + + [OutputType] + public sealed class DeploymentConfigZonalConfig + { + /// + /// The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + /// + public readonly int? FirstZoneMonitorDurationInSeconds; + /// + /// The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + /// + public readonly Outputs.DeploymentConfigZonalConfigMinimumHealthyHostsPerZone? MinimumHealthyHostsPerZone; + /// + /// The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + /// + public readonly int? MonitorDurationInSeconds; + + [OutputConstructor] + private DeploymentConfigZonalConfig( + int? firstZoneMonitorDurationInSeconds, + + Outputs.DeploymentConfigZonalConfigMinimumHealthyHostsPerZone? minimumHealthyHostsPerZone, + + int? monitorDurationInSeconds) + { + FirstZoneMonitorDurationInSeconds = firstZoneMonitorDurationInSeconds; + MinimumHealthyHostsPerZone = minimumHealthyHostsPerZone; + MonitorDurationInSeconds = monitorDurationInSeconds; + } + } +} diff --git a/sdk/dotnet/CodeDeploy/Outputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZone.cs b/sdk/dotnet/CodeDeploy/Outputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZone.cs new file mode 100644 index 00000000000..1e0aa421e7e --- /dev/null +++ b/sdk/dotnet/CodeDeploy/Outputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZone.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.CodeDeploy.Outputs +{ + + [OutputType] + public sealed class DeploymentConfigZonalConfigMinimumHealthyHostsPerZone + { + /// + /// The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + /// + public readonly string? Type; + /// + /// The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + /// + public readonly int? Value; + + [OutputConstructor] + private DeploymentConfigZonalConfigMinimumHealthyHostsPerZone( + string? type, + + int? value) + { + Type = type; + Value = value; + } + } +} diff --git a/sdk/dotnet/CostExplorer/Inputs/AnomalySubscriptionThresholdExpressionArgs.cs b/sdk/dotnet/CostExplorer/Inputs/AnomalySubscriptionThresholdExpressionArgs.cs index 65e643e6daa..57517ae03b8 100644 --- a/sdk/dotnet/CostExplorer/Inputs/AnomalySubscriptionThresholdExpressionArgs.cs +++ b/sdk/dotnet/CostExplorer/Inputs/AnomalySubscriptionThresholdExpressionArgs.cs @@ -37,7 +37,7 @@ public InputList Ands public Input? Dimension { get; set; } /// - /// Return results that match both Dimension object. + /// Return results that do not match the Dimension object. /// [Input("not")] public Input? Not { get; set; } @@ -46,7 +46,7 @@ public InputList Ands private InputList? _ors; /// - /// Return results that match both Dimension object. + /// Return results that match either Dimension object. /// public InputList Ors { diff --git a/sdk/dotnet/CostExplorer/Inputs/AnomalySubscriptionThresholdExpressionGetArgs.cs b/sdk/dotnet/CostExplorer/Inputs/AnomalySubscriptionThresholdExpressionGetArgs.cs index 58fbf863eec..25f3c1d2a92 100644 --- a/sdk/dotnet/CostExplorer/Inputs/AnomalySubscriptionThresholdExpressionGetArgs.cs +++ b/sdk/dotnet/CostExplorer/Inputs/AnomalySubscriptionThresholdExpressionGetArgs.cs @@ -37,7 +37,7 @@ public InputList Ands public Input? Dimension { get; set; } /// - /// Return results that match both Dimension object. + /// Return results that do not match the Dimension object. /// [Input("not")] public Input? Not { get; set; } @@ -46,7 +46,7 @@ public InputList Ands private InputList? _ors; /// - /// Return results that match both Dimension object. + /// Return results that match either Dimension object. /// public InputList Ors { diff --git a/sdk/dotnet/CostExplorer/Outputs/AnomalySubscriptionThresholdExpression.cs b/sdk/dotnet/CostExplorer/Outputs/AnomalySubscriptionThresholdExpression.cs index 03e6da7e0c4..47e794aa5c1 100644 --- a/sdk/dotnet/CostExplorer/Outputs/AnomalySubscriptionThresholdExpression.cs +++ b/sdk/dotnet/CostExplorer/Outputs/AnomalySubscriptionThresholdExpression.cs @@ -26,11 +26,11 @@ public sealed class AnomalySubscriptionThresholdExpression /// public readonly Outputs.AnomalySubscriptionThresholdExpressionDimension? Dimension; /// - /// Return results that match both Dimension object. + /// Return results that do not match the Dimension object. /// public readonly Outputs.AnomalySubscriptionThresholdExpressionNot? Not; /// - /// Return results that match both Dimension object. + /// Return results that match either Dimension object. /// public readonly ImmutableArray Ors; /// diff --git a/sdk/dotnet/DynamoDB/KinesisStreamingDestination.cs b/sdk/dotnet/DynamoDB/KinesisStreamingDestination.cs index 8c8283baefb..3d641419ceb 100644 --- a/sdk/dotnet/DynamoDB/KinesisStreamingDestination.cs +++ b/sdk/dotnet/DynamoDB/KinesisStreamingDestination.cs @@ -46,6 +46,7 @@ namespace Pulumi.Aws.DynamoDB /// { /// StreamArn = exampleStream.Arn, /// TableName = example.Name, + /// ApproximateCreationDateTimePrecision = "MICROSECOND", /// }); /// /// }); @@ -62,6 +63,12 @@ namespace Pulumi.Aws.DynamoDB [AwsResourceType("aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination")] public partial class KinesisStreamingDestination : global::Pulumi.CustomResource { + /// + /// Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + /// + [Output("approximateCreationDateTimePrecision")] + public Output ApproximateCreationDateTimePrecision { get; private set; } = null!; + /// /// The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. /// @@ -69,8 +76,7 @@ public partial class KinesisStreamingDestination : global::Pulumi.CustomResource public Output StreamArn { get; private set; } = null!; /// - /// The name of the DynamoDB table. There - /// can only be one Kinesis streaming destination for a given DynamoDB table. + /// The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. /// [Output("tableName")] public Output TableName { get; private set; } = null!; @@ -121,6 +127,12 @@ public static KinesisStreamingDestination Get(string name, Input id, Kin public sealed class KinesisStreamingDestinationArgs : global::Pulumi.ResourceArgs { + /// + /// Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + /// + [Input("approximateCreationDateTimePrecision")] + public Input? ApproximateCreationDateTimePrecision { get; set; } + /// /// The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. /// @@ -128,8 +140,7 @@ public sealed class KinesisStreamingDestinationArgs : global::Pulumi.ResourceArg public Input StreamArn { get; set; } = null!; /// - /// The name of the DynamoDB table. There - /// can only be one Kinesis streaming destination for a given DynamoDB table. + /// The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. /// [Input("tableName", required: true)] public Input TableName { get; set; } = null!; @@ -142,6 +153,12 @@ public KinesisStreamingDestinationArgs() public sealed class KinesisStreamingDestinationState : global::Pulumi.ResourceArgs { + /// + /// Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + /// + [Input("approximateCreationDateTimePrecision")] + public Input? ApproximateCreationDateTimePrecision { get; set; } + /// /// The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. /// @@ -149,8 +166,7 @@ public sealed class KinesisStreamingDestinationState : global::Pulumi.ResourceAr public Input? StreamArn { get; set; } /// - /// The name of the DynamoDB table. There - /// can only be one Kinesis streaming destination for a given DynamoDB table. + /// The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. /// [Input("tableName")] public Input? TableName { get; set; } diff --git a/sdk/dotnet/Ec2/GetSubnet.cs b/sdk/dotnet/Ec2/GetSubnet.cs index 3b65408dcd7..e07b700d03f 100644 --- a/sdk/dotnet/Ec2/GetSubnet.cs +++ b/sdk/dotnet/Ec2/GetSubnet.cs @@ -35,7 +35,7 @@ public static class GetSubnet /// Id = subnetId, /// }); /// - /// var subnet = new Aws.Ec2.SecurityGroup("subnet", new() + /// var subnetSecurityGroup = new Aws.Ec2.SecurityGroup("subnet_security_group", new() /// { /// VpcId = selected.Apply(getSubnetResult => getSubnetResult.VpcId), /// Ingress = new[] @@ -113,7 +113,7 @@ public static Task InvokeAsync(GetSubnetArgs? args = null, Invo /// Id = subnetId, /// }); /// - /// var subnet = new Aws.Ec2.SecurityGroup("subnet", new() + /// var subnetSecurityGroup = new Aws.Ec2.SecurityGroup("subnet_security_group", new() /// { /// VpcId = selected.Apply(getSubnetResult => getSubnetResult.VpcId), /// Ingress = new[] diff --git a/sdk/dotnet/ElastiCache/Cluster.cs b/sdk/dotnet/ElastiCache/Cluster.cs index bd018a321b7..464aca9c8c1 100644 --- a/sdk/dotnet/ElastiCache/Cluster.cs +++ b/sdk/dotnet/ElastiCache/Cluster.cs @@ -265,7 +265,7 @@ public partial class Cluster : global::Pulumi.CustomResource public Output ConfigurationEndpoint { get; private set; } = null!; /// - /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. /// [Output("engine")] public Output Engine { get; private set; } = null!; @@ -513,7 +513,7 @@ public sealed class ClusterArgs : global::Pulumi.ResourceArgs public Input? ClusterId { get; set; } /// - /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. /// [Input("engine")] public Input? Engine { get; set; } @@ -765,7 +765,7 @@ public InputList CacheNodes public Input? ConfigurationEndpoint { get; set; } /// - /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. /// [Input("engine")] public Input? Engine { get; set; } diff --git a/sdk/dotnet/ElastiCache/GetReservedCacheNodeOffering.cs b/sdk/dotnet/ElastiCache/GetReservedCacheNodeOffering.cs index 2a53d5d598f..8c8c13a7b5f 100644 --- a/sdk/dotnet/ElastiCache/GetReservedCacheNodeOffering.cs +++ b/sdk/dotnet/ElastiCache/GetReservedCacheNodeOffering.cs @@ -95,7 +95,7 @@ public sealed class GetReservedCacheNodeOfferingArgs : global::Pulumi.InvokeArgs /// /// Engine type for the reserved cache node. - /// Valid values are `redis` and `memcached`. + /// Valid values are `redis`, `valkey` and `memcached`. /// [Input("productDescription", required: true)] public string ProductDescription { get; set; } = null!; @@ -134,7 +134,7 @@ public sealed class GetReservedCacheNodeOfferingInvokeArgs : global::Pulumi.Invo /// /// Engine type for the reserved cache node. - /// Valid values are `redis` and `memcached`. + /// Valid values are `redis`, `valkey` and `memcached`. /// [Input("productDescription", required: true)] public Input ProductDescription { get; set; } = null!; diff --git a/sdk/dotnet/ElastiCache/GetServerlessCache.cs b/sdk/dotnet/ElastiCache/GetServerlessCache.cs index cf224568f98..9c2c3e6535b 100644 --- a/sdk/dotnet/ElastiCache/GetServerlessCache.cs +++ b/sdk/dotnet/ElastiCache/GetServerlessCache.cs @@ -106,7 +106,7 @@ public sealed class GetServerlessCacheResult /// public readonly string CreateTime; /// - /// The daily time that snapshots will be created from the new serverless cache. Only available for engine type `"redis"`. + /// The daily time that snapshots will be created from the new serverless cache. Only available for engine types `"redis"` and `"valkey"`. /// public readonly string DailySnapshotTime; /// diff --git a/sdk/dotnet/ElastiCache/GlobalReplicationGroup.cs b/sdk/dotnet/ElastiCache/GlobalReplicationGroup.cs index 57d84e15515..1101b8159b7 100644 --- a/sdk/dotnet/ElastiCache/GlobalReplicationGroup.cs +++ b/sdk/dotnet/ElastiCache/GlobalReplicationGroup.cs @@ -53,7 +53,7 @@ namespace Pulumi.Aws.ElastiCache /// }); /// ``` /// - /// ### Managing Redis Engine Versions + /// ### Managing Redis OOS/Valkey Engine Versions /// /// The initial Redis version is determined by the version set on the primary replication group. /// However, once it is part of a Global Replication Group, diff --git a/sdk/dotnet/ElastiCache/ReplicationGroup.cs b/sdk/dotnet/ElastiCache/ReplicationGroup.cs index 8251513ab0b..3540739e077 100644 --- a/sdk/dotnet/ElastiCache/ReplicationGroup.cs +++ b/sdk/dotnet/ElastiCache/ReplicationGroup.cs @@ -33,7 +33,7 @@ namespace Pulumi.Aws.ElastiCache /// /// ## Example Usage /// - /// ### Redis Cluster Mode Disabled + /// ### Redis OSS/Valkey Cluster Mode Disabled /// /// To create a single shard primary with single read replica: /// @@ -106,7 +106,7 @@ namespace Pulumi.Aws.ElastiCache /// }); /// ``` /// - /// ### Redis Cluster Mode Enabled + /// ### Redis OSS/Valkey Cluster Mode Enabled /// /// To create two shards with a primary and a single read replica each: /// @@ -297,7 +297,7 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource /// /// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - /// Only supported for engine type `"redis"` and if the engine version is 6 or higher. + /// Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. /// Defaults to `true`. /// [Output("autoMinorVersionUpgrade")] @@ -340,7 +340,7 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource public Output Description { get; private set; } = null!; /// - /// Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + /// Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. /// [Output("engine")] public Output Engine { get; private set; } = null!; @@ -387,7 +387,7 @@ public partial class ReplicationGroup : global::Pulumi.CustomResource public Output KmsKeyId { get; private set; } = null!; /// - /// Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + /// Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. /// [Output("logDeliveryConfigurations")] public Output> LogDeliveryConfigurations { get; private set; } = null!; @@ -662,7 +662,7 @@ public Input? AuthToken /// /// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - /// Only supported for engine type `"redis"` and if the engine version is 6 or higher. + /// Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. /// Defaults to `true`. /// [Input("autoMinorVersionUpgrade")] @@ -693,7 +693,7 @@ public Input? AuthToken public Input Description { get; set; } = null!; /// - /// Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + /// Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. /// [Input("engine")] public Input? Engine { get; set; } @@ -737,7 +737,7 @@ public Input? AuthToken private InputList? _logDeliveryConfigurations; /// - /// Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + /// Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. /// public InputList LogDeliveryConfigurations { @@ -991,7 +991,7 @@ public Input? AuthToken /// /// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - /// Only supported for engine type `"redis"` and if the engine version is 6 or higher. + /// Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. /// Defaults to `true`. /// [Input("autoMinorVersionUpgrade")] @@ -1034,7 +1034,7 @@ public Input? AuthToken public Input? Description { get; set; } /// - /// Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + /// Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. /// [Input("engine")] public Input? Engine { get; set; } @@ -1084,7 +1084,7 @@ public Input? AuthToken private InputList? _logDeliveryConfigurations; /// - /// Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + /// Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. /// public InputList LogDeliveryConfigurations { diff --git a/sdk/dotnet/ElastiCache/ServerlessCache.cs b/sdk/dotnet/ElastiCache/ServerlessCache.cs index 3bd45aad2ee..2d40688ebc7 100644 --- a/sdk/dotnet/ElastiCache/ServerlessCache.cs +++ b/sdk/dotnet/ElastiCache/ServerlessCache.cs @@ -10,7 +10,7 @@ namespace Pulumi.Aws.ElastiCache { /// - /// Provides an ElastiCache Serverless Cache resource which manages memcached or redis. + /// Provides an ElastiCache Serverless Cache resource which manages memcached, redis or valkey. /// /// ## Example Usage /// @@ -56,7 +56,7 @@ namespace Pulumi.Aws.ElastiCache /// }); /// ``` /// - /// ### Redis Serverless + /// ### Redis OSS Serverless /// /// ```csharp /// using System.Collections.Generic; @@ -100,6 +100,50 @@ namespace Pulumi.Aws.ElastiCache /// }); /// ``` /// + /// ### Valkey Serverless + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.ElastiCache.ServerlessCache("example", new() + /// { + /// Engine = "valkey", + /// Name = "example", + /// CacheUsageLimits = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsArgs + /// { + /// DataStorage = new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs + /// { + /// Maximum = 10, + /// Unit = "GB", + /// }, + /// EcpuPerSeconds = new[] + /// { + /// new Aws.ElastiCache.Inputs.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs + /// { + /// Maximum = 5000, + /// }, + /// }, + /// }, + /// DailySnapshotTime = "09:00", + /// Description = "Test Server", + /// KmsKeyId = test.Arn, + /// MajorEngineVersion = "7", + /// SnapshotRetentionLimit = 1, + /// SecurityGroupIds = new[] + /// { + /// testAwsSecurityGroup.Id, + /// }, + /// SubnetIds = testAwsSubnet.Select(__item => __item.Id).ToList(), + /// }); + /// + /// }); + /// ``` + /// /// ## Import /// /// Using `pulumi import`, import ElastiCache Serverless Cache using the `name`. For example: @@ -130,7 +174,7 @@ public partial class ServerlessCache : global::Pulumi.CustomResource public Output CreateTime { get; private set; } = null!; /// - /// The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + /// The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. /// [Output("dailySnapshotTime")] public Output DailySnapshotTime { get; private set; } = null!; @@ -148,7 +192,7 @@ public partial class ServerlessCache : global::Pulumi.CustomResource public Output> Endpoints { get; private set; } = null!; /// - /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. /// [Output("engine")] public Output Engine { get; private set; } = null!; @@ -287,7 +331,7 @@ public sealed class ServerlessCacheArgs : global::Pulumi.ResourceArgs public Input? CacheUsageLimits { get; set; } /// - /// The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + /// The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. /// [Input("dailySnapshotTime")] public Input? DailySnapshotTime { get; set; } @@ -299,7 +343,7 @@ public sealed class ServerlessCacheArgs : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. /// [Input("engine", required: true)] public Input Engine { get; set; } = null!; @@ -415,7 +459,7 @@ public sealed class ServerlessCacheState : global::Pulumi.ResourceArgs public Input? CreateTime { get; set; } /// - /// The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + /// The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. /// [Input("dailySnapshotTime")] public Input? DailySnapshotTime { get; set; } @@ -439,7 +483,7 @@ public InputList Endpoints } /// - /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + /// Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. /// [Input("engine")] public Input? Engine { get; set; } diff --git a/sdk/dotnet/ImageBuilder/GetContainerRecipe.cs b/sdk/dotnet/ImageBuilder/GetContainerRecipe.cs index 2e51da40204..f494d93d196 100644 --- a/sdk/dotnet/ImageBuilder/GetContainerRecipe.cs +++ b/sdk/dotnet/ImageBuilder/GetContainerRecipe.cs @@ -173,7 +173,7 @@ public sealed class GetContainerRecipeResult /// /// Key-value map of resource tags for the container recipe. /// - public readonly ImmutableDictionary? Tags; + public readonly ImmutableDictionary Tags; /// /// Destination repository for the container image. /// @@ -217,7 +217,7 @@ private GetContainerRecipeResult( string platform, - ImmutableDictionary? tags, + ImmutableDictionary tags, ImmutableArray targetRepositories, diff --git a/sdk/dotnet/ImageBuilder/GetImageRecipe.cs b/sdk/dotnet/ImageBuilder/GetImageRecipe.cs index 1b742a239aa..140fee46c82 100644 --- a/sdk/dotnet/ImageBuilder/GetImageRecipe.cs +++ b/sdk/dotnet/ImageBuilder/GetImageRecipe.cs @@ -157,7 +157,7 @@ public sealed class GetImageRecipeResult /// /// Key-value map of resource tags for the image recipe. /// - public readonly ImmutableDictionary? Tags; + public readonly ImmutableDictionary Tags; /// /// Base64 encoded contents of user data. Commands or a command script to run when build instance is launched. /// @@ -193,7 +193,7 @@ private GetImageRecipeResult( string platform, - ImmutableDictionary? tags, + ImmutableDictionary tags, string userDataBase64, diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionArgs.cs new file mode 100644 index 00000000000..1387bc204cb --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionArgs.cs @@ -0,0 +1,34 @@ +// *** 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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailActionArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the resources that the lifecycle policy applies to. Detailed below. + /// + [Input("includeResources")] + public Input? IncludeResources { get; set; } + + /// + /// Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + /// + /// The following arguments are optional: + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public LifecyclePolicyPolicyDetailActionArgs() + { + } + public static new LifecyclePolicyPolicyDetailActionArgs Empty => new LifecyclePolicyPolicyDetailActionArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionGetArgs.cs new file mode 100644 index 00000000000..030f6857170 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionGetArgs.cs @@ -0,0 +1,34 @@ +// *** 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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailActionGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies the resources that the lifecycle policy applies to. Detailed below. + /// + [Input("includeResources")] + public Input? IncludeResources { get; set; } + + /// + /// Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + /// + /// The following arguments are optional: + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public LifecyclePolicyPolicyDetailActionGetArgs() + { + } + public static new LifecyclePolicyPolicyDetailActionGetArgs Empty => new LifecyclePolicyPolicyDetailActionGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionIncludeResourcesArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionIncludeResourcesArgs.cs new file mode 100644 index 00000000000..62d4f04ad2b --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionIncludeResourcesArgs.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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailActionIncludeResourcesArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies whether the lifecycle action should apply to distributed AMIs. + /// + [Input("amis")] + public Input? Amis { get; set; } + + /// + /// Specifies whether the lifecycle action should apply to distributed containers. + /// + [Input("containers")] + public Input? Containers { get; set; } + + /// + /// Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + /// + [Input("snapshots")] + public Input? Snapshots { get; set; } + + public LifecyclePolicyPolicyDetailActionIncludeResourcesArgs() + { + } + public static new LifecyclePolicyPolicyDetailActionIncludeResourcesArgs Empty => new LifecyclePolicyPolicyDetailActionIncludeResourcesArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionIncludeResourcesGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionIncludeResourcesGetArgs.cs new file mode 100644 index 00000000000..49ce16d79fd --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailActionIncludeResourcesGetArgs.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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailActionIncludeResourcesGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies whether the lifecycle action should apply to distributed AMIs. + /// + [Input("amis")] + public Input? Amis { get; set; } + + /// + /// Specifies whether the lifecycle action should apply to distributed containers. + /// + [Input("containers")] + public Input? Containers { get; set; } + + /// + /// Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + /// + [Input("snapshots")] + public Input? Snapshots { get; set; } + + public LifecyclePolicyPolicyDetailActionIncludeResourcesGetArgs() + { + } + public static new LifecyclePolicyPolicyDetailActionIncludeResourcesGetArgs Empty => new LifecyclePolicyPolicyDetailActionIncludeResourcesGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailArgs.cs new file mode 100644 index 00000000000..dd2d371009e --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailArgs.cs @@ -0,0 +1,40 @@ +// *** 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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailArgs : global::Pulumi.ResourceArgs + { + /// + /// Configuration details for the policy action. + /// + [Input("action")] + public Input? Action { get; set; } + + /// + /// Additional rules to specify resources that should be exempt from policy actions. + /// + [Input("exclusionRules")] + public Input? ExclusionRules { get; set; } + + /// + /// Specifies the resources that the lifecycle policy applies to. + /// + /// The following arguments are optional: + /// + [Input("filter")] + public Input? Filter { get; set; } + + public LifecyclePolicyPolicyDetailArgs() + { + } + public static new LifecyclePolicyPolicyDetailArgs Empty => new LifecyclePolicyPolicyDetailArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisArgs.cs new file mode 100644 index 00000000000..466e020ca48 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisArgs.cs @@ -0,0 +1,68 @@ +// *** 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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailExclusionRulesAmisArgs : global::Pulumi.ResourceArgs + { + /// + /// Configures whether public AMIs are excluded from the lifecycle action. + /// + [Input("isPublic")] + public Input? IsPublic { get; set; } + + /// + /// Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + /// + [Input("lastLaunched")] + public Input? LastLaunched { get; set; } + + [Input("regions")] + private InputList? _regions; + + /// + /// Configures AWS Regions that are excluded from the lifecycle action. + /// + public InputList Regions + { + get => _regions ?? (_regions = new InputList()); + set => _regions = value; + } + + [Input("sharedAccounts")] + private InputList? _sharedAccounts; + + /// + /// Specifies AWS accounts whose resources are excluded from the lifecycle action. + /// + public InputList SharedAccounts + { + get => _sharedAccounts ?? (_sharedAccounts = new InputList()); + set => _sharedAccounts = value; + } + + [Input("tagMap")] + private InputMap? _tagMap; + + /// + /// Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + /// + public InputMap TagMap + { + get => _tagMap ?? (_tagMap = new InputMap()); + set => _tagMap = value; + } + + public LifecyclePolicyPolicyDetailExclusionRulesAmisArgs() + { + } + public static new LifecyclePolicyPolicyDetailExclusionRulesAmisArgs Empty => new LifecyclePolicyPolicyDetailExclusionRulesAmisArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisGetArgs.cs new file mode 100644 index 00000000000..eabc9d46ea1 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisGetArgs.cs @@ -0,0 +1,68 @@ +// *** 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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailExclusionRulesAmisGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Configures whether public AMIs are excluded from the lifecycle action. + /// + [Input("isPublic")] + public Input? IsPublic { get; set; } + + /// + /// Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + /// + [Input("lastLaunched")] + public Input? LastLaunched { get; set; } + + [Input("regions")] + private InputList? _regions; + + /// + /// Configures AWS Regions that are excluded from the lifecycle action. + /// + public InputList Regions + { + get => _regions ?? (_regions = new InputList()); + set => _regions = value; + } + + [Input("sharedAccounts")] + private InputList? _sharedAccounts; + + /// + /// Specifies AWS accounts whose resources are excluded from the lifecycle action. + /// + public InputList SharedAccounts + { + get => _sharedAccounts ?? (_sharedAccounts = new InputList()); + set => _sharedAccounts = value; + } + + [Input("tagMap")] + private InputMap? _tagMap; + + /// + /// Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + /// + public InputMap TagMap + { + get => _tagMap ?? (_tagMap = new InputMap()); + set => _tagMap = value; + } + + public LifecyclePolicyPolicyDetailExclusionRulesAmisGetArgs() + { + } + public static new LifecyclePolicyPolicyDetailExclusionRulesAmisGetArgs Empty => new LifecyclePolicyPolicyDetailExclusionRulesAmisGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs.cs new file mode 100644 index 00000000000..4eabbc34849 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs.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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs : global::Pulumi.ResourceArgs + { + /// + /// Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + /// + [Input("unit", required: true)] + public Input Unit { get; set; } = null!; + + /// + /// The integer number of units for the time period. For example 6 (months). + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs() + { + } + public static new LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs Empty => new LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedGetArgs.cs new file mode 100644 index 00000000000..89000c719d5 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedGetArgs.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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + /// + [Input("unit", required: true)] + public Input Unit { get; set; } = null!; + + /// + /// The integer number of units for the time period. For example 6 (months). + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedGetArgs() + { + } + public static new LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedGetArgs Empty => new LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesArgs.cs new file mode 100644 index 00000000000..7312db105b6 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesArgs.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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailExclusionRulesArgs : global::Pulumi.ResourceArgs + { + /// + /// Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + /// + [Input("amis")] + public Input? Amis { get; set; } + + [Input("tagMap")] + private InputMap? _tagMap; + + /// + /// Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + /// + public InputMap TagMap + { + get => _tagMap ?? (_tagMap = new InputMap()); + set => _tagMap = value; + } + + public LifecyclePolicyPolicyDetailExclusionRulesArgs() + { + } + public static new LifecyclePolicyPolicyDetailExclusionRulesArgs Empty => new LifecyclePolicyPolicyDetailExclusionRulesArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesGetArgs.cs new file mode 100644 index 00000000000..93130b641ea --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailExclusionRulesGetArgs.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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailExclusionRulesGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + /// + [Input("amis")] + public Input? Amis { get; set; } + + [Input("tagMap")] + private InputMap? _tagMap; + + /// + /// Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + /// + public InputMap TagMap + { + get => _tagMap ?? (_tagMap = new InputMap()); + set => _tagMap = value; + } + + public LifecyclePolicyPolicyDetailExclusionRulesGetArgs() + { + } + public static new LifecyclePolicyPolicyDetailExclusionRulesGetArgs Empty => new LifecyclePolicyPolicyDetailExclusionRulesGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailFilterArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailFilterArgs.cs new file mode 100644 index 00000000000..6cc96882275 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailFilterArgs.cs @@ -0,0 +1,46 @@ +// *** 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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailFilterArgs : global::Pulumi.ResourceArgs + { + /// + /// For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + /// + [Input("retainAtLeast")] + public Input? RetainAtLeast { get; set; } + + /// + /// Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + /// + /// Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + /// + [Input("unit")] + public Input? Unit { get; set; } + + /// + /// The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + /// + /// The following arguments are optional: + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public LifecyclePolicyPolicyDetailFilterArgs() + { + } + public static new LifecyclePolicyPolicyDetailFilterArgs Empty => new LifecyclePolicyPolicyDetailFilterArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailFilterGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailFilterGetArgs.cs new file mode 100644 index 00000000000..0cee5a363b8 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailFilterGetArgs.cs @@ -0,0 +1,46 @@ +// *** 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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailFilterGetArgs : global::Pulumi.ResourceArgs + { + /// + /// For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + /// + [Input("retainAtLeast")] + public Input? RetainAtLeast { get; set; } + + /// + /// Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + /// + /// Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + /// + [Input("unit")] + public Input? Unit { get; set; } + + /// + /// The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + /// + /// The following arguments are optional: + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public LifecyclePolicyPolicyDetailFilterGetArgs() + { + } + public static new LifecyclePolicyPolicyDetailFilterGetArgs Empty => new LifecyclePolicyPolicyDetailFilterGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailGetArgs.cs new file mode 100644 index 00000000000..9b736ea918f --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyPolicyDetailGetArgs.cs @@ -0,0 +1,40 @@ +// *** 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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyPolicyDetailGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Configuration details for the policy action. + /// + [Input("action")] + public Input? Action { get; set; } + + /// + /// Additional rules to specify resources that should be exempt from policy actions. + /// + [Input("exclusionRules")] + public Input? ExclusionRules { get; set; } + + /// + /// Specifies the resources that the lifecycle policy applies to. + /// + /// The following arguments are optional: + /// + [Input("filter")] + public Input? Filter { get; set; } + + public LifecyclePolicyPolicyDetailGetArgs() + { + } + public static new LifecyclePolicyPolicyDetailGetArgs Empty => new LifecyclePolicyPolicyDetailGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionArgs.cs new file mode 100644 index 00000000000..b5cf56add2a --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionArgs.cs @@ -0,0 +1,44 @@ +// *** 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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyResourceSelectionArgs : global::Pulumi.ResourceArgs + { + [Input("recipes")] + private InputList? _recipes; + + /// + /// A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + /// + public InputList Recipes + { + get => _recipes ?? (_recipes = new InputList()); + set => _recipes = value; + } + + [Input("tagMap")] + private InputMap? _tagMap; + + /// + /// A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + /// + public InputMap TagMap + { + get => _tagMap ?? (_tagMap = new InputMap()); + set => _tagMap = value; + } + + public LifecyclePolicyResourceSelectionArgs() + { + } + public static new LifecyclePolicyResourceSelectionArgs Empty => new LifecyclePolicyResourceSelectionArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionGetArgs.cs new file mode 100644 index 00000000000..c3d40c5feb2 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyResourceSelectionGetArgs : global::Pulumi.ResourceArgs + { + [Input("recipes")] + private InputList? _recipes; + + /// + /// A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + /// + public InputList Recipes + { + get => _recipes ?? (_recipes = new InputList()); + set => _recipes = value; + } + + [Input("tagMap")] + private InputMap? _tagMap; + + /// + /// A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + /// + public InputMap TagMap + { + get => _tagMap ?? (_tagMap = new InputMap()); + set => _tagMap = value; + } + + public LifecyclePolicyResourceSelectionGetArgs() + { + } + public static new LifecyclePolicyResourceSelectionGetArgs Empty => new LifecyclePolicyResourceSelectionGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionRecipeArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionRecipeArgs.cs new file mode 100644 index 00000000000..e91ea837883 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionRecipeArgs.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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyResourceSelectionRecipeArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The version of the Image Builder recipe specified by the name field. + /// + [Input("semanticVersion", required: true)] + public Input SemanticVersion { get; set; } = null!; + + public LifecyclePolicyResourceSelectionRecipeArgs() + { + } + public static new LifecyclePolicyResourceSelectionRecipeArgs Empty => new LifecyclePolicyResourceSelectionRecipeArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionRecipeGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionRecipeGetArgs.cs new file mode 100644 index 00000000000..13b05f8222c --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/LifecyclePolicyResourceSelectionRecipeGetArgs.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.ImageBuilder.Inputs +{ + + public sealed class LifecyclePolicyResourceSelectionRecipeGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The version of the Image Builder recipe specified by the name field. + /// + [Input("semanticVersion", required: true)] + public Input SemanticVersion { get; set; } = null!; + + public LifecyclePolicyResourceSelectionRecipeGetArgs() + { + } + public static new LifecyclePolicyResourceSelectionRecipeGetArgs Empty => new LifecyclePolicyResourceSelectionRecipeGetArgs(); + } +} diff --git a/sdk/dotnet/ImageBuilder/LifecyclePolicy.cs b/sdk/dotnet/ImageBuilder/LifecyclePolicy.cs new file mode 100644 index 00000000000..346166e279c --- /dev/null +++ b/sdk/dotnet/ImageBuilder/LifecyclePolicy.cs @@ -0,0 +1,374 @@ +// *** 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.ImageBuilder +{ + /// + /// Manages an Image Builder Lifecycle Policy. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using System.Text.Json; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var current = Aws.GetRegion.Invoke(); + /// + /// var currentGetPartition = Aws.GetPartition.Invoke(); + /// + /// var example = new Aws.Iam.Role("example", new() + /// { + /// AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = "sts:AssumeRole", + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = $"imagebuilder.{currentGetPartition.Apply(getPartitionResult => getPartitionResult.DnsSuffix)}", + /// }, + /// }, + /// }, + /// }), + /// Name = "example", + /// }); + /// + /// var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("example", new() + /// { + /// PolicyArn = $"arn:{currentGetPartition.Apply(getPartitionResult => getPartitionResult.Partition)}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy", + /// Role = example.Name, + /// }); + /// + /// var exampleLifecyclePolicy = new Aws.ImageBuilder.LifecyclePolicy("example", new() + /// { + /// Name = "name", + /// Description = "Example description", + /// ExecutionRole = example.Arn, + /// ResourceType = "AMI_IMAGE", + /// PolicyDetails = new[] + /// { + /// new Aws.ImageBuilder.Inputs.LifecyclePolicyPolicyDetailArgs + /// { + /// Action = new Aws.ImageBuilder.Inputs.LifecyclePolicyPolicyDetailActionArgs + /// { + /// Type = "DELETE", + /// }, + /// Filter = new Aws.ImageBuilder.Inputs.LifecyclePolicyPolicyDetailFilterArgs + /// { + /// Type = "AGE", + /// Value = 6, + /// RetainAtLeast = 10, + /// Unit = "YEARS", + /// }, + /// }, + /// }, + /// ResourceSelection = new Aws.ImageBuilder.Inputs.LifecyclePolicyResourceSelectionArgs + /// { + /// TagMap = + /// { + /// { "key1", "value1" }, + /// { "key2", "value2" }, + /// }, + /// }, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// exampleRolePolicyAttachment, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import `aws_imagebuilder_lifecycle_policy` using the Amazon Resource Name (ARN). For example: + /// + /// ```sh + /// $ pulumi import aws:imagebuilder/lifecyclePolicy:LifecyclePolicy example arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/example + /// ``` + /// + [AwsResourceType("aws:imagebuilder/lifecyclePolicy:LifecyclePolicy")] + public partial class LifecyclePolicy : global::Pulumi.CustomResource + { + /// + /// Amazon Resource Name (ARN) of the lifecycle policy. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// description for the lifecycle policy. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + /// + [Output("executionRole")] + public Output ExecutionRole { get; private set; } = null!; + + /// + /// The name of the lifecycle policy to create. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Configuration block with policy details. Detailed below. + /// + [Output("policyDetails")] + public Output> PolicyDetails { get; private set; } = null!; + + /// + /// Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + /// + /// The following arguments are optional: + /// + [Output("resourceSelection")] + public Output ResourceSelection { get; private set; } = null!; + + /// + /// The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + /// + [Output("resourceType")] + public Output ResourceType { get; private set; } = null!; + + /// + /// The status of the lifecycle policy. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + /// + /// Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicy 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 LifecyclePolicy(string name, LifecyclePolicyArgs args, CustomResourceOptions? options = null) + : base("aws:imagebuilder/lifecyclePolicy:LifecyclePolicy", name, args ?? new LifecyclePolicyArgs(), MakeResourceOptions(options, "")) + { + } + + private LifecyclePolicy(string name, Input id, LifecyclePolicyState? state = null, CustomResourceOptions? options = null) + : base("aws:imagebuilder/lifecyclePolicy:LifecyclePolicy", 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 LifecyclePolicy 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 LifecyclePolicy Get(string name, Input id, LifecyclePolicyState? state = null, CustomResourceOptions? options = null) + { + return new LifecyclePolicy(name, id, state, options); + } + } + + public sealed class LifecyclePolicyArgs : global::Pulumi.ResourceArgs + { + /// + /// description for the lifecycle policy. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + /// + [Input("executionRole", required: true)] + public Input ExecutionRole { get; set; } = null!; + + /// + /// The name of the lifecycle policy to create. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("policyDetails")] + private InputList? _policyDetails; + + /// + /// Configuration block with policy details. Detailed below. + /// + public InputList PolicyDetails + { + get => _policyDetails ?? (_policyDetails = new InputList()); + set => _policyDetails = value; + } + + /// + /// Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + /// + /// The following arguments are optional: + /// + [Input("resourceSelection")] + public Input? ResourceSelection { get; set; } + + /// + /// The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + /// + [Input("resourceType", required: true)] + public Input ResourceType { get; set; } = null!; + + /// + /// The status of the lifecycle policy. + /// + [Input("status")] + public Input? Status { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicyArgs() + { + } + public static new LifecyclePolicyArgs Empty => new LifecyclePolicyArgs(); + } + + public sealed class LifecyclePolicyState : global::Pulumi.ResourceArgs + { + /// + /// Amazon Resource Name (ARN) of the lifecycle policy. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// description for the lifecycle policy. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + /// + [Input("executionRole")] + public Input? ExecutionRole { get; set; } + + /// + /// The name of the lifecycle policy to create. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("policyDetails")] + private InputList? _policyDetails; + + /// + /// Configuration block with policy details. Detailed below. + /// + public InputList PolicyDetails + { + get => _policyDetails ?? (_policyDetails = new InputList()); + set => _policyDetails = value; + } + + /// + /// Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + /// + /// The following arguments are optional: + /// + [Input("resourceSelection")] + public Input? ResourceSelection { get; set; } + + /// + /// The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + /// + [Input("resourceType")] + public Input? ResourceType { get; set; } + + /// + /// The status of the lifecycle policy. + /// + [Input("status")] + public Input? Status { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicyState() + { + } + public static new LifecyclePolicyState Empty => new LifecyclePolicyState(); + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetail.cs b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetail.cs new file mode 100644 index 00000000000..b821775ca03 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetail.cs @@ -0,0 +1,44 @@ +// *** 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.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class LifecyclePolicyPolicyDetail + { + /// + /// Configuration details for the policy action. + /// + public readonly Outputs.LifecyclePolicyPolicyDetailAction? Action; + /// + /// Additional rules to specify resources that should be exempt from policy actions. + /// + public readonly Outputs.LifecyclePolicyPolicyDetailExclusionRules? ExclusionRules; + /// + /// Specifies the resources that the lifecycle policy applies to. + /// + /// The following arguments are optional: + /// + public readonly Outputs.LifecyclePolicyPolicyDetailFilter? Filter; + + [OutputConstructor] + private LifecyclePolicyPolicyDetail( + Outputs.LifecyclePolicyPolicyDetailAction? action, + + Outputs.LifecyclePolicyPolicyDetailExclusionRules? exclusionRules, + + Outputs.LifecyclePolicyPolicyDetailFilter? filter) + { + Action = action; + ExclusionRules = exclusionRules; + Filter = filter; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailAction.cs b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailAction.cs new file mode 100644 index 00000000000..950b2e52b80 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailAction.cs @@ -0,0 +1,37 @@ +// *** 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.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class LifecyclePolicyPolicyDetailAction + { + /// + /// Specifies the resources that the lifecycle policy applies to. Detailed below. + /// + public readonly Outputs.LifecyclePolicyPolicyDetailActionIncludeResources? IncludeResources; + /// + /// Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + /// + /// The following arguments are optional: + /// + public readonly string Type; + + [OutputConstructor] + private LifecyclePolicyPolicyDetailAction( + Outputs.LifecyclePolicyPolicyDetailActionIncludeResources? includeResources, + + string type) + { + IncludeResources = includeResources; + Type = type; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailActionIncludeResources.cs b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailActionIncludeResources.cs new file mode 100644 index 00000000000..72c00d6ff72 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailActionIncludeResources.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.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class LifecyclePolicyPolicyDetailActionIncludeResources + { + /// + /// Specifies whether the lifecycle action should apply to distributed AMIs. + /// + public readonly bool? Amis; + /// + /// Specifies whether the lifecycle action should apply to distributed containers. + /// + public readonly bool? Containers; + /// + /// Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + /// + public readonly bool? Snapshots; + + [OutputConstructor] + private LifecyclePolicyPolicyDetailActionIncludeResources( + bool? amis, + + bool? containers, + + bool? snapshots) + { + Amis = amis; + Containers = containers; + Snapshots = snapshots; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailExclusionRules.cs b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailExclusionRules.cs new file mode 100644 index 00000000000..7e1e1e19a1d --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailExclusionRules.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.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class LifecyclePolicyPolicyDetailExclusionRules + { + /// + /// Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + /// + public readonly Outputs.LifecyclePolicyPolicyDetailExclusionRulesAmis? Amis; + /// + /// Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + /// + public readonly ImmutableDictionary? TagMap; + + [OutputConstructor] + private LifecyclePolicyPolicyDetailExclusionRules( + Outputs.LifecyclePolicyPolicyDetailExclusionRulesAmis? amis, + + ImmutableDictionary? tagMap) + { + Amis = amis; + TagMap = tagMap; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailExclusionRulesAmis.cs b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailExclusionRulesAmis.cs new file mode 100644 index 00000000000..29cf49c6d69 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailExclusionRulesAmis.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class LifecyclePolicyPolicyDetailExclusionRulesAmis + { + /// + /// Configures whether public AMIs are excluded from the lifecycle action. + /// + public readonly bool? IsPublic; + /// + /// Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + /// + public readonly Outputs.LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched? LastLaunched; + /// + /// Configures AWS Regions that are excluded from the lifecycle action. + /// + public readonly ImmutableArray Regions; + /// + /// Specifies AWS accounts whose resources are excluded from the lifecycle action. + /// + public readonly ImmutableArray SharedAccounts; + /// + /// Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + /// + public readonly ImmutableDictionary? TagMap; + + [OutputConstructor] + private LifecyclePolicyPolicyDetailExclusionRulesAmis( + bool? isPublic, + + Outputs.LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched? lastLaunched, + + ImmutableArray regions, + + ImmutableArray sharedAccounts, + + ImmutableDictionary? tagMap) + { + IsPublic = isPublic; + LastLaunched = lastLaunched; + Regions = regions; + SharedAccounts = sharedAccounts; + TagMap = tagMap; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched.cs b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched.cs new file mode 100644 index 00000000000..2bb39d9f7c2 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched.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.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched + { + /// + /// Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + /// + public readonly string Unit; + /// + /// The integer number of units for the time period. For example 6 (months). + /// + public readonly int Value; + + [OutputConstructor] + private LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched( + string unit, + + int value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailFilter.cs b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailFilter.cs new file mode 100644 index 00000000000..371745bdb86 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyPolicyDetailFilter.cs @@ -0,0 +1,51 @@ +// *** 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.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class LifecyclePolicyPolicyDetailFilter + { + /// + /// For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + /// + public readonly int? RetainAtLeast; + /// + /// Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + /// + public readonly string Type; + /// + /// Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + /// + public readonly string? Unit; + /// + /// The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + /// + /// The following arguments are optional: + /// + public readonly int Value; + + [OutputConstructor] + private LifecyclePolicyPolicyDetailFilter( + int? retainAtLeast, + + string type, + + string? unit, + + int value) + { + RetainAtLeast = retainAtLeast; + Type = type; + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyResourceSelection.cs b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyResourceSelection.cs new file mode 100644 index 00000000000..9e151dc92dd --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyResourceSelection.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.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class LifecyclePolicyResourceSelection + { + /// + /// A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + /// + public readonly ImmutableArray Recipes; + /// + /// A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + /// + public readonly ImmutableDictionary? TagMap; + + [OutputConstructor] + private LifecyclePolicyResourceSelection( + ImmutableArray recipes, + + ImmutableDictionary? tagMap) + { + Recipes = recipes; + TagMap = tagMap; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyResourceSelectionRecipe.cs b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyResourceSelectionRecipe.cs new file mode 100644 index 00000000000..27889954821 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/LifecyclePolicyResourceSelectionRecipe.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.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class LifecyclePolicyResourceSelectionRecipe + { + /// + /// The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + /// + public readonly string Name; + /// + /// The version of the Image Builder recipe specified by the name field. + /// + public readonly string SemanticVersion; + + [OutputConstructor] + private LifecyclePolicyResourceSelectionRecipe( + string name, + + string semanticVersion) + { + Name = name; + SemanticVersion = semanticVersion; + } + } +} diff --git a/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs b/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs index e6631941af1..8dbb034f031 100644 --- a/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs +++ b/sdk/dotnet/Kinesis/FirehoseDeliveryStream.cs @@ -750,6 +750,118 @@ namespace Pulumi.Aws.Kinesis /// }); /// ``` /// + /// ### Iceberg Destination + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var current = Aws.GetCallerIdentity.Invoke(); + /// + /// var currentGetPartition = Aws.GetPartition.Invoke(); + /// + /// var currentGetRegion = Aws.GetRegion.Invoke(); + /// + /// var bucket = new Aws.S3.BucketV2("bucket", new() + /// { + /// Bucket = "test-bucket", + /// ForceDestroy = true, + /// }); + /// + /// var test = new Aws.Glue.CatalogDatabase("test", new() + /// { + /// Name = "test", + /// }); + /// + /// var testCatalogTable = new Aws.Glue.CatalogTable("test", new() + /// { + /// Name = "test", + /// DatabaseName = test.Name, + /// Parameters = + /// { + /// { "format", "parquet" }, + /// }, + /// TableType = "EXTERNAL_TABLE", + /// OpenTableFormatInput = new Aws.Glue.Inputs.CatalogTableOpenTableFormatInputArgs + /// { + /// IcebergInput = new Aws.Glue.Inputs.CatalogTableOpenTableFormatInputIcebergInputArgs + /// { + /// MetadataOperation = "CREATE", + /// Version = "2", + /// }, + /// }, + /// StorageDescriptor = new Aws.Glue.Inputs.CatalogTableStorageDescriptorArgs + /// { + /// Location = bucket.Id.Apply(id => $"s3://{id}"), + /// Columns = new[] + /// { + /// new Aws.Glue.Inputs.CatalogTableStorageDescriptorColumnArgs + /// { + /// Name = "my_column_1", + /// Type = "int", + /// }, + /// }, + /// }, + /// }); + /// + /// var testStream = new Aws.Kinesis.FirehoseDeliveryStream("test_stream", new() + /// { + /// Name = "kinesis-firehose-test-stream", + /// Destination = "iceberg", + /// IcebergConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationArgs + /// { + /// RoleArn = firehoseRole.Arn, + /// CatalogArn = Output.Tuple(currentGetPartition, currentGetRegion, current).Apply(values => + /// { + /// var currentGetPartition = values.Item1; + /// var currentGetRegion = values.Item2; + /// var current = values.Item3; + /// return $"arn:{currentGetPartition.Apply(getPartitionResult => getPartitionResult.Partition)}:glue:{currentGetRegion.Apply(getRegionResult => getRegionResult.Name)}:{current.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId)}:catalog"; + /// }), + /// BufferingSize = 10, + /// BufferingInterval = 400, + /// S3Configuration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs + /// { + /// RoleArn = firehoseRole.Arn, + /// BucketArn = bucket.Arn, + /// }, + /// DestinationTableConfigurations = new[] + /// { + /// new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs + /// { + /// DatabaseName = test.Name, + /// TableName = testCatalogTable.Name, + /// }, + /// }, + /// ProcessingConfiguration = new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs + /// { + /// Enabled = true, + /// Processors = new[] + /// { + /// new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs + /// { + /// Type = "Lambda", + /// Parameters = new[] + /// { + /// new Aws.Kinesis.Inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs + /// { + /// ParameterName = "LambdaArn", + /// ParameterValue = $"{lambdaProcessor.Arn}:$LATEST", + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// /// ### Splunk Destination /// /// ```csharp @@ -923,6 +1035,12 @@ public partial class FirehoseDeliveryStream : global::Pulumi.CustomResource [Output("httpEndpointConfiguration")] public Output HttpEndpointConfiguration { get; private set; } = null!; + /// + /// Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + /// + [Output("icebergConfiguration")] + public Output IcebergConfiguration { get; private set; } = null!; + /// /// The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. /// @@ -1073,6 +1191,12 @@ public sealed class FirehoseDeliveryStreamArgs : global::Pulumi.ResourceArgs [Input("httpEndpointConfiguration")] public Input? HttpEndpointConfiguration { get; set; } + /// + /// Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + /// + [Input("icebergConfiguration")] + public Input? IcebergConfiguration { get; set; } + /// /// The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. /// @@ -1185,6 +1309,12 @@ public sealed class FirehoseDeliveryStreamState : global::Pulumi.ResourceArgs [Input("httpEndpointConfiguration")] public Input? HttpEndpointConfiguration { get; set; } + /// + /// Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + /// + [Input("icebergConfiguration")] + public Input? IcebergConfiguration { get; set; } + /// /// The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. /// diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.cs index 3717996752a..f7c3d2b3c00 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorGetArgs.cs index 6004b57ab02..16bd2b23a52 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorGetArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.cs index 3417eb68394..51cdb732885 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterGetArgs.cs index 6780b3ebec5..697ec3f5e4b 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterGetArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.cs index 79f11adf247..43bcf480b07 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorGetArgs.cs index 1ae2f8bba95..fddd7ec9108 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorGetArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.cs index 4c84723f745..1b4ba2ae3a1 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterGetArgs.cs index d2fb93aaf43..3cff48b1d2d 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterGetArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs.cs index cb5dd8e4803..d74980694f6 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorGetArgs.cs index 3990d45a172..23a1975f58a 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorGetArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs.cs index d2202316922..0df7ce2b0d1 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterGetArgs.cs index 2e0b963e953..e165a7d170b 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterGetArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationArgs.cs new file mode 100644 index 00000000000..9032baa22f3 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationArgs.cs @@ -0,0 +1,83 @@ +// *** 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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + /// + [Input("bufferingInterval")] + public Input? BufferingInterval { get; set; } + + /// + /// Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + /// + [Input("bufferingSize")] + public Input? BufferingSize { get; set; } + + /// + /// Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + /// + [Input("catalogArn", required: true)] + public Input CatalogArn { get; set; } = null!; + + /// + /// The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + /// + [Input("cloudwatchLoggingOptions")] + public Input? CloudwatchLoggingOptions { get; set; } + + [Input("destinationTableConfigurations")] + private InputList? _destinationTableConfigurations; + + /// + /// Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + /// + public InputList DestinationTableConfigurations + { + get => _destinationTableConfigurations ?? (_destinationTableConfigurations = new InputList()); + set => _destinationTableConfigurations = value; + } + + /// + /// The data processing configuration. See `processing_configuration` block below for details. + /// + [Input("processingConfiguration")] + public Input? ProcessingConfiguration { get; set; } + + /// + /// The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + /// + [Input("retryDuration")] + public Input? RetryDuration { get; set; } + + /// + /// The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + [Input("s3BackupMode")] + public Input? S3BackupMode { get; set; } + + /// + /// The S3 Configuration. See `s3_configuration` block below for details. + /// + [Input("s3Configuration", required: true)] + public Input S3Configuration { get; set; } = null!; + + public FirehoseDeliveryStreamIcebergConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs.cs new file mode 100644 index 00000000000..64e206a72bd --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs.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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + [Input("logGroupName")] + public Input? LogGroupName { get; set; } + + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + [Input("logStreamName")] + public Input? LogStreamName { get; set; } + + public FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsGetArgs.cs new file mode 100644 index 00000000000..155ee605dec --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsGetArgs.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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + [Input("logGroupName")] + public Input? LogGroupName { get; set; } + + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + [Input("logStreamName")] + public Input? LogStreamName { get; set; } + + public FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsGetArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsGetArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs.cs new file mode 100644 index 00000000000..3140a7ee481 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs.cs @@ -0,0 +1,50 @@ +// *** 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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the Apache Iceberg database. + /// + [Input("databaseName", required: true)] + public Input DatabaseName { get; set; } = null!; + + /// + /// The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + /// + [Input("s3ErrorOutputPrefix")] + public Input? S3ErrorOutputPrefix { get; set; } + + /// + /// The name of the Apache Iceberg Table. + /// + [Input("tableName", required: true)] + public Input TableName { get; set; } = null!; + + [Input("uniqueKeys")] + private InputList? _uniqueKeys; + + /// + /// A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + /// + public InputList UniqueKeys + { + get => _uniqueKeys ?? (_uniqueKeys = new InputList()); + set => _uniqueKeys = value; + } + + public FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationGetArgs.cs new file mode 100644 index 00000000000..2cd276205e4 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationGetArgs.cs @@ -0,0 +1,50 @@ +// *** 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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the Apache Iceberg database. + /// + [Input("databaseName", required: true)] + public Input DatabaseName { get; set; } = null!; + + /// + /// The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + /// + [Input("s3ErrorOutputPrefix")] + public Input? S3ErrorOutputPrefix { get; set; } + + /// + /// The name of the Apache Iceberg Table. + /// + [Input("tableName", required: true)] + public Input TableName { get; set; } = null!; + + [Input("uniqueKeys")] + private InputList? _uniqueKeys; + + /// + /// A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + /// + public InputList UniqueKeys + { + get => _uniqueKeys ?? (_uniqueKeys = new InputList()); + set => _uniqueKeys = value; + } + + public FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationGetArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationGetArgs.cs new file mode 100644 index 00000000000..eb363fbc790 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationGetArgs.cs @@ -0,0 +1,83 @@ +// *** 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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + /// + [Input("bufferingInterval")] + public Input? BufferingInterval { get; set; } + + /// + /// Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + /// + [Input("bufferingSize")] + public Input? BufferingSize { get; set; } + + /// + /// Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + /// + [Input("catalogArn", required: true)] + public Input CatalogArn { get; set; } = null!; + + /// + /// The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + /// + [Input("cloudwatchLoggingOptions")] + public Input? CloudwatchLoggingOptions { get; set; } + + [Input("destinationTableConfigurations")] + private InputList? _destinationTableConfigurations; + + /// + /// Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + /// + public InputList DestinationTableConfigurations + { + get => _destinationTableConfigurations ?? (_destinationTableConfigurations = new InputList()); + set => _destinationTableConfigurations = value; + } + + /// + /// The data processing configuration. See `processing_configuration` block below for details. + /// + [Input("processingConfiguration")] + public Input? ProcessingConfiguration { get; set; } + + /// + /// The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + /// + [Input("retryDuration")] + public Input? RetryDuration { get; set; } + + /// + /// The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + [Input("s3BackupMode")] + public Input? S3BackupMode { get; set; } + + /// + /// The S3 Configuration. See `s3_configuration` block below for details. + /// + [Input("s3Configuration", required: true)] + public Input S3Configuration { get; set; } = null!; + + public FirehoseDeliveryStreamIcebergConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationGetArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs.cs new file mode 100644 index 00000000000..2bd492d52c5 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs.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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables data processing. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + [Input("processors")] + private InputList? _processors; + + /// + /// Specifies the data processors as multiple blocks. See `processors` block below for details. + /// + public InputList Processors + { + get => _processors ?? (_processors = new InputList()); + set => _processors = value; + } + + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationGetArgs.cs new file mode 100644 index 00000000000..aea2cd193c9 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationGetArgs.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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables data processing. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + [Input("processors")] + private InputList? _processors; + + /// + /// Specifies the data processors as multiple blocks. See `processors` block below for details. + /// + public InputList Processors + { + get => _processors ?? (_processors = new InputList()); + set => _processors = value; + } + + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationGetArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs.cs new file mode 100644 index 00000000000..e26b5679eec --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs.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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs : global::Pulumi.ResourceArgs + { + [Input("parameters")] + private InputList? _parameters; + + /// + /// Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + /// + public InputList Parameters + { + get => _parameters ?? (_parameters = new InputList()); + set => _parameters = value; + } + + /// + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorGetArgs.cs new file mode 100644 index 00000000000..10817112ea9 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorGetArgs.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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorGetArgs : global::Pulumi.ResourceArgs + { + [Input("parameters")] + private InputList? _parameters; + + /// + /// Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + /// + public InputList Parameters + { + get => _parameters ?? (_parameters = new InputList()); + set => _parameters = value; + } + + /// + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorGetArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorGetArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs.cs new file mode 100644 index 00000000000..d2e2486e1ba --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs.cs @@ -0,0 +1,34 @@ +// *** 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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs : global::Pulumi.ResourceArgs + { + /// + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + /// + [Input("parameterName", required: true)] + public Input ParameterName { get; set; } = null!; + + /// + /// Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + /// + /// > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + /// + [Input("parameterValue", required: true)] + public Input ParameterValue { get; set; } = null!; + + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterGetArgs.cs new file mode 100644 index 00000000000..94a33c8de57 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterGetArgs.cs @@ -0,0 +1,34 @@ +// *** 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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + /// + [Input("parameterName", required: true)] + public Input ParameterName { get; set; } = null!; + + /// + /// Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + /// + /// > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + /// + [Input("parameterValue", required: true)] + public Input ParameterValue { get; set; } = null!; + + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterGetArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterGetArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs.cs new file mode 100644 index 00000000000..1a11c22e035 --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs.cs @@ -0,0 +1,76 @@ +// *** 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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the S3 bucket + /// + [Input("bucketArn", required: true)] + public Input BucketArn { get; set; } = null!; + + /// + /// Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + /// + [Input("bufferingInterval")] + public Input? BufferingInterval { get; set; } + + /// + /// Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + /// We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + /// + [Input("bufferingSize")] + public Input? BufferingSize { get; set; } + + /// + /// The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + /// + [Input("cloudwatchLoggingOptions")] + public Input? CloudwatchLoggingOptions { get; set; } + + /// + /// The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + /// + [Input("compressionFormat")] + public Input? CompressionFormat { get; set; } + + /// + /// Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + /// + [Input("errorOutputPrefix")] + public Input? ErrorOutputPrefix { get; set; } + + /// + /// Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + /// be used. + /// + [Input("kmsKeyArn")] + public Input? KmsKeyArn { get; set; } + + /// + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + /// + [Input("prefix")] + public Input? Prefix { get; set; } + + /// + /// The ARN of the AWS credentials. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + public FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.cs new file mode 100644 index 00000000000..42f31a843ad --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + [Input("logGroupName")] + public Input? LogGroupName { get; set; } + + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + [Input("logStreamName")] + public Input? LogStreamName { get; set; } + + public FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs.cs new file mode 100644 index 00000000000..63bc0548eaa --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs.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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + [Input("logGroupName")] + public Input? LogGroupName { get; set; } + + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + [Input("logStreamName")] + public Input? LogStreamName { get; set; } + + public FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationGetArgs.cs new file mode 100644 index 00000000000..f7c832a3aac --- /dev/null +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationGetArgs.cs @@ -0,0 +1,76 @@ +// *** 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.Kinesis.Inputs +{ + + public sealed class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the S3 bucket + /// + [Input("bucketArn", required: true)] + public Input BucketArn { get; set; } = null!; + + /// + /// Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + /// + [Input("bufferingInterval")] + public Input? BufferingInterval { get; set; } + + /// + /// Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + /// We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + /// + [Input("bufferingSize")] + public Input? BufferingSize { get; set; } + + /// + /// The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + /// + [Input("cloudwatchLoggingOptions")] + public Input? CloudwatchLoggingOptions { get; set; } + + /// + /// The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + /// + [Input("compressionFormat")] + public Input? CompressionFormat { get; set; } + + /// + /// Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + /// + [Input("errorOutputPrefix")] + public Input? ErrorOutputPrefix { get; set; } + + /// + /// Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + /// be used. + /// + [Input("kmsKeyArn")] + public Input? KmsKeyArn { get; set; } + + /// + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + /// + [Input("prefix")] + public Input? Prefix { get; set; } + + /// + /// The ARN of the AWS credentials. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + public FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationGetArgs() + { + } + public static new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationGetArgs Empty => new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.cs index ceba2b5f110..a7df82a4536 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorGetArgs.cs index 537aaa03a6c..fdd595e36c8 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorGetArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.cs index 4753e4de48c..e39293209bd 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterGetArgs.cs index 8d94feb4e86..88d9d86a15e 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterGetArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.cs index f9e3ecad8ed..602ae8f9e07 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs.cs index 4da0d94c97f..2b716bb6c2a 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorGetArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.cs index be13334943c..43cccdc5574 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs.cs index 4610014a2b2..afea07655e7 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterGetArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs.cs index f3a1e6acc35..2afeda356f9 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorGetArgs.cs index 3ebaf080d2e..3a8bfeeb038 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorGetArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs.cs index 6c3f37b4a82..3b4fa44d6b9 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterGetArgs.cs index 4efd85926fd..a517624c198 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterGetArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorArgs.cs index a6dca8a5463..4b24baaf7ee 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorGetArgs.cs index 1b0abee7367..e0548acf130 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorGetArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs.cs index 0e53aed81fa..1e09e485e3e 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterGetArgs.cs index 204d68e1f0e..c5cd22437ca 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterGetArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs.cs index 68f5f4f2115..a33b9c87082 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorGetArgs.cs index 8d8a2ebc0f6..82d165806cc 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorGetArgs.cs @@ -25,7 +25,7 @@ public InputList - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// [Input("type", required: true)] public Input Type { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs.cs index f4fe455551f..685c615eda9 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterGetArgs.cs index f23a23264fb..8f32abca67d 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Kinesis.Inputs public sealed class FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterGetArgs : global::Pulumi.ResourceArgs { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// [Input("parameterName", required: true)] public Input ParameterName { get; set; } = null!; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor.cs index 6925aebe915..ead4aacafaf 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor.cs @@ -18,7 +18,7 @@ public sealed class FirehoseDeliveryStreamElasticsearchConfigurationProcessingCo /// public readonly ImmutableArray Parameters; /// - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// public readonly string Type; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter.cs index 1a03917676f..de46bd0752e 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Kinesis.Outputs public sealed class FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// public readonly string ParameterName; /// diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessor.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessor.cs index 88f654cd7e0..df4894e290e 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessor.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessor.cs @@ -18,7 +18,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfi /// public readonly ImmutableArray Parameters; /// - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// public readonly string Type; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter.cs index b4d5101d589..efdc4f2f43b 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Kinesis.Outputs public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// public readonly string ParameterName; /// diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessor.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessor.cs index 3ffb3df6a0e..db96ac5a842 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessor.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessor.cs @@ -18,7 +18,7 @@ public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationProcessingCon /// public readonly ImmutableArray Parameters; /// - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// public readonly string Type; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter.cs index d3a676b1219..2184dba46a8 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Kinesis.Outputs public sealed class FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// public readonly string ParameterName; /// diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfiguration.cs new file mode 100644 index 00000000000..f51e5785663 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfiguration.cs @@ -0,0 +1,88 @@ +// *** 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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamIcebergConfiguration + { + /// + /// Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + /// + public readonly int? BufferingInterval; + /// + /// Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + /// + public readonly int? BufferingSize; + /// + /// Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + /// + public readonly string CatalogArn; + /// + /// The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + /// + public readonly Outputs.FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions? CloudwatchLoggingOptions; + /// + /// Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + /// + public readonly ImmutableArray DestinationTableConfigurations; + /// + /// The data processing configuration. See `processing_configuration` block below for details. + /// + public readonly Outputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration? ProcessingConfiguration; + /// + /// The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + /// + public readonly int? RetryDuration; + /// + /// The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + /// + public readonly string RoleArn; + public readonly string? S3BackupMode; + /// + /// The S3 Configuration. See `s3_configuration` block below for details. + /// + public readonly Outputs.FirehoseDeliveryStreamIcebergConfigurationS3Configuration S3Configuration; + + [OutputConstructor] + private FirehoseDeliveryStreamIcebergConfiguration( + int? bufferingInterval, + + int? bufferingSize, + + string catalogArn, + + Outputs.FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions? cloudwatchLoggingOptions, + + ImmutableArray destinationTableConfigurations, + + Outputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration? processingConfiguration, + + int? retryDuration, + + string roleArn, + + string? s3BackupMode, + + Outputs.FirehoseDeliveryStreamIcebergConfigurationS3Configuration s3Configuration) + { + BufferingInterval = bufferingInterval; + BufferingSize = bufferingSize; + CatalogArn = catalogArn; + CloudwatchLoggingOptions = cloudwatchLoggingOptions; + DestinationTableConfigurations = destinationTableConfigurations; + ProcessingConfiguration = processingConfiguration; + RetryDuration = retryDuration; + RoleArn = roleArn; + S3BackupMode = s3BackupMode; + S3Configuration = s3Configuration; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions.cs new file mode 100644 index 00000000000..27582d1222a --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions.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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + public readonly bool? Enabled; + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + public readonly string? LogGroupName; + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + public readonly string? LogStreamName; + + [OutputConstructor] + private FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions( + bool? enabled, + + string? logGroupName, + + string? logStreamName) + { + Enabled = enabled; + LogGroupName = logGroupName; + LogStreamName = logStreamName; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration.cs new file mode 100644 index 00000000000..38a94d7841b --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration.cs @@ -0,0 +1,49 @@ +// *** 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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration + { + /// + /// The name of the Apache Iceberg database. + /// + public readonly string DatabaseName; + /// + /// The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + /// + public readonly string? S3ErrorOutputPrefix; + /// + /// The name of the Apache Iceberg Table. + /// + public readonly string TableName; + /// + /// A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + /// + public readonly ImmutableArray UniqueKeys; + + [OutputConstructor] + private FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration( + string databaseName, + + string? s3ErrorOutputPrefix, + + string tableName, + + ImmutableArray uniqueKeys) + { + DatabaseName = databaseName; + S3ErrorOutputPrefix = s3ErrorOutputPrefix; + TableName = tableName; + UniqueKeys = uniqueKeys; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration.cs new file mode 100644 index 00000000000..d8b05effdc0 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration.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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration + { + /// + /// Enables or disables data processing. + /// + public readonly bool? Enabled; + /// + /// Specifies the data processors as multiple blocks. See `processors` block below for details. + /// + public readonly ImmutableArray Processors; + + [OutputConstructor] + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration( + bool? enabled, + + ImmutableArray processors) + { + Enabled = enabled; + Processors = processors; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor.cs new file mode 100644 index 00000000000..f3a9a17b74d --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor.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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor + { + /// + /// Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + /// + public readonly ImmutableArray Parameters; + /// + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + /// + public readonly string Type; + + [OutputConstructor] + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor( + ImmutableArray parameters, + + string type) + { + Parameters = parameters; + Type = type; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter.cs new file mode 100644 index 00000000000..ad00ffcb678 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter.cs @@ -0,0 +1,37 @@ +// *** 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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter + { + /// + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + /// + public readonly string ParameterName; + /// + /// Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + /// + /// > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + /// + public readonly string ParameterValue; + + [OutputConstructor] + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter( + string parameterName, + + string parameterValue) + { + ParameterName = parameterName; + ParameterValue = parameterValue; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationS3Configuration.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationS3Configuration.cs new file mode 100644 index 00000000000..3ad9930d557 --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationS3Configuration.cs @@ -0,0 +1,86 @@ +// *** 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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamIcebergConfigurationS3Configuration + { + /// + /// The ARN of the S3 bucket + /// + public readonly string BucketArn; + /// + /// Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + /// + public readonly int? BufferingInterval; + /// + /// Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + /// We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + /// + public readonly int? BufferingSize; + /// + /// The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + /// + public readonly Outputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions? CloudwatchLoggingOptions; + /// + /// The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + /// + public readonly string? CompressionFormat; + /// + /// Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + /// + public readonly string? ErrorOutputPrefix; + /// + /// Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + /// be used. + /// + public readonly string? KmsKeyArn; + /// + /// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + /// + public readonly string? Prefix; + /// + /// The ARN of the AWS credentials. + /// + public readonly string RoleArn; + + [OutputConstructor] + private FirehoseDeliveryStreamIcebergConfigurationS3Configuration( + string bucketArn, + + int? bufferingInterval, + + int? bufferingSize, + + Outputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions? cloudwatchLoggingOptions, + + string? compressionFormat, + + string? errorOutputPrefix, + + string? kmsKeyArn, + + string? prefix, + + string roleArn) + { + BucketArn = bucketArn; + BufferingInterval = bufferingInterval; + BufferingSize = bufferingSize; + CloudwatchLoggingOptions = cloudwatchLoggingOptions; + CompressionFormat = compressionFormat; + ErrorOutputPrefix = errorOutputPrefix; + KmsKeyArn = kmsKeyArn; + Prefix = prefix; + RoleArn = roleArn; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions.cs new file mode 100644 index 00000000000..8f4953c52ef --- /dev/null +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions.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.Kinesis.Outputs +{ + + [OutputType] + public sealed class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions + { + /// + /// Enables or disables the logging. Defaults to `false`. + /// + public readonly bool? Enabled; + /// + /// The CloudWatch group name for logging. This value is required if `enabled` is true. + /// + public readonly string? LogGroupName; + /// + /// The CloudWatch log stream name for logging. This value is required if `enabled` is true. + /// + public readonly string? LogStreamName; + + [OutputConstructor] + private FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions( + bool? enabled, + + string? logGroupName, + + string? logStreamName) + { + Enabled = enabled; + LogGroupName = logGroupName; + LogStreamName = logStreamName; + } + } +} diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor.cs index 0a7c66d26a5..382061fba5e 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor.cs @@ -18,7 +18,7 @@ public sealed class FirehoseDeliveryStreamOpensearchConfigurationProcessingConfi /// public readonly ImmutableArray Parameters; /// - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// public readonly string Type; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter.cs index 1b2ef60eefb..33fbc375818 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Kinesis.Outputs public sealed class FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// public readonly string ParameterName; /// diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor.cs index adc4a04a897..c9162a2f04d 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor.cs @@ -18,7 +18,7 @@ public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationProce /// public readonly ImmutableArray Parameters; /// - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// public readonly string Type; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.cs index fd766763c2e..9d4039ab511 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Kinesis.Outputs public sealed class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// public readonly string ParameterName; /// diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessor.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessor.cs index 4e3f985bed8..553bc64b7be 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessor.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessor.cs @@ -18,7 +18,7 @@ public sealed class FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigu /// public readonly ImmutableArray Parameters; /// - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// public readonly string Type; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter.cs index f1166d37ec3..864f98196e3 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Kinesis.Outputs public sealed class FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// public readonly string ParameterName; /// diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessor.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessor.cs index 78448417004..562e338e4d7 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessor.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessor.cs @@ -18,7 +18,7 @@ public sealed class FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfig /// public readonly ImmutableArray Parameters; /// - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// public readonly string Type; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter.cs index 5b5ef04bf8a..55bf8e8694b 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Kinesis.Outputs public sealed class FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// public readonly string ParameterName; /// diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessor.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessor.cs index 5011bf24aea..0bfd8c17a8b 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessor.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessor.cs @@ -18,7 +18,7 @@ public sealed class FirehoseDeliveryStreamSplunkConfigurationProcessingConfigura /// public readonly ImmutableArray Parameters; /// - /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. /// public readonly string Type; diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter.cs index e808879a6be..a4148b59da2 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Kinesis.Outputs public sealed class FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter { /// - /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + /// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. /// public readonly string ParameterName; /// diff --git a/sdk/dotnet/LB/GetLoadBalancer.cs b/sdk/dotnet/LB/GetLoadBalancer.cs index b5b75a75318..7d775a0ad2b 100644 --- a/sdk/dotnet/LB/GetLoadBalancer.cs +++ b/sdk/dotnet/LB/GetLoadBalancer.cs @@ -169,6 +169,7 @@ public sealed class GetLoadBalancerResult public readonly bool EnableTlsVersionAndCipherSuiteHeaders; public readonly bool EnableWafFailOpen; public readonly bool EnableXffClientPort; + public readonly bool EnableZonalShift; public readonly string EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic; /// /// The provider-assigned unique ID for this managed resource. @@ -222,6 +223,8 @@ private GetLoadBalancerResult( bool enableXffClientPort, + bool enableZonalShift, + string enforceSecurityGroupInboundRulesOnPrivateLinkTraffic, string id, @@ -268,6 +271,7 @@ private GetLoadBalancerResult( EnableTlsVersionAndCipherSuiteHeaders = enableTlsVersionAndCipherSuiteHeaders; EnableWafFailOpen = enableWafFailOpen; EnableXffClientPort = enableXffClientPort; + EnableZonalShift = enableZonalShift; EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic = enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; Id = id; IdleTimeout = idleTimeout; diff --git a/sdk/dotnet/LB/Listener.cs b/sdk/dotnet/LB/Listener.cs index a5486c4335a..dda0701c9a6 100644 --- a/sdk/dotnet/LB/Listener.cs +++ b/sdk/dotnet/LB/Listener.cs @@ -413,6 +413,12 @@ public partial class Listener : global::Pulumi.CustomResource [Output("tagsAll")] public Output> TagsAll { get; private set; } = null!; + /// + /// TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + /// + [Output("tcpIdleTimeoutSeconds")] + public Output TcpIdleTimeoutSeconds { get; private set; } = null!; + /// /// Create a Listener resource with the given unique name, arguments, and options. @@ -531,6 +537,12 @@ public InputMap Tags set => _tags = value; } + /// + /// TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + /// + [Input("tcpIdleTimeoutSeconds")] + public Input? TcpIdleTimeoutSeconds { get; set; } + public ListenerArgs() { } @@ -626,6 +638,12 @@ public InputMap TagsAll set => _tagsAll = value; } + /// + /// TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + /// + [Input("tcpIdleTimeoutSeconds")] + public Input? TcpIdleTimeoutSeconds { get; set; } + public ListenerState() { } diff --git a/sdk/dotnet/LB/LoadBalancer.cs b/sdk/dotnet/LB/LoadBalancer.cs index f5acaca7eaf..478193a52de 100644 --- a/sdk/dotnet/LB/LoadBalancer.cs +++ b/sdk/dotnet/LB/LoadBalancer.cs @@ -255,6 +255,12 @@ public partial class LoadBalancer : global::Pulumi.CustomResource [Output("enableXffClientPort")] public Output EnableXffClientPort { get; private set; } = null!; + /// + /// Whether zonal shift is enabled. Defaults to `false`. + /// + [Output("enableZonalShift")] + public Output EnableZonalShift { get; private set; } = null!; + /// /// Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. /// @@ -476,6 +482,12 @@ public sealed class LoadBalancerArgs : global::Pulumi.ResourceArgs [Input("enableXffClientPort")] public Input? EnableXffClientPort { get; set; } + /// + /// Whether zonal shift is enabled. Defaults to `false`. + /// + [Input("enableZonalShift")] + public Input? EnableZonalShift { get; set; } + /// /// Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. /// @@ -682,6 +694,12 @@ public sealed class LoadBalancerState : global::Pulumi.ResourceArgs [Input("enableXffClientPort")] public Input? EnableXffClientPort { get; set; } + /// + /// Whether zonal shift is enabled. Defaults to `false`. + /// + [Input("enableZonalShift")] + public Input? EnableZonalShift { get; set; } + /// /// Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. /// diff --git a/sdk/dotnet/LakeFormation/DataLakeSettings.cs b/sdk/dotnet/LakeFormation/DataLakeSettings.cs index 09ed3ec923b..9a4e8c3ef9d 100644 --- a/sdk/dotnet/LakeFormation/DataLakeSettings.cs +++ b/sdk/dotnet/LakeFormation/DataLakeSettings.cs @@ -140,6 +140,27 @@ namespace Pulumi.Aws.LakeFormation /// /// }); /// ``` + /// + /// ### Change Cross Account Version + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.LakeFormation.DataLakeSettings("example", new() + /// { + /// Parameters = + /// { + /// { "CROSS_ACCOUNT_VERSION", "3" }, + /// }, + /// }); + /// + /// }); + /// ``` /// [AwsResourceType("aws:lakeformation/dataLakeSettings:DataLakeSettings")] public partial class DataLakeSettings : global::Pulumi.CustomResource @@ -158,8 +179,6 @@ public partial class DataLakeSettings : global::Pulumi.CustomResource /// /// Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - /// - /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. /// [Output("allowFullTableExternalDataAccess")] public Output AllowFullTableExternalDataAccess { get; private set; } = null!; @@ -194,6 +213,12 @@ public partial class DataLakeSettings : global::Pulumi.CustomResource [Output("externalDataFilteringAllowLists")] public Output> ExternalDataFilteringAllowLists { get; private set; } = null!; + /// + /// Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + /// + [Output("parameters")] + public Output> Parameters { get; private set; } = null!; + /// /// Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. /// @@ -202,6 +227,8 @@ public partial class DataLakeSettings : global::Pulumi.CustomResource /// /// List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + /// + /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. /// [Output("trustedResourceOwners")] public Output> TrustedResourceOwners { get; private set; } = null!; @@ -272,8 +299,6 @@ public InputList Admins /// /// Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - /// - /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. /// [Input("allowFullTableExternalDataAccess")] public Input? AllowFullTableExternalDataAccess { get; set; } @@ -332,6 +357,18 @@ public InputList ExternalDataFilteringAllowLists set => _externalDataFilteringAllowLists = value; } + [Input("parameters")] + private InputMap? _parameters; + + /// + /// Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + /// + public InputMap Parameters + { + get => _parameters ?? (_parameters = new InputMap()); + set => _parameters = value; + } + [Input("readOnlyAdmins")] private InputList? _readOnlyAdmins; @@ -349,6 +386,8 @@ public InputList ReadOnlyAdmins /// /// List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + /// + /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. /// public InputList TrustedResourceOwners { @@ -384,8 +423,6 @@ public InputList Admins /// /// Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - /// - /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. /// [Input("allowFullTableExternalDataAccess")] public Input? AllowFullTableExternalDataAccess { get; set; } @@ -444,6 +481,18 @@ public InputList ExternalDataFilteringAllowLists set => _externalDataFilteringAllowLists = value; } + [Input("parameters")] + private InputMap? _parameters; + + /// + /// Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + /// + public InputMap Parameters + { + get => _parameters ?? (_parameters = new InputMap()); + set => _parameters = value; + } + [Input("readOnlyAdmins")] private InputList? _readOnlyAdmins; @@ -461,6 +510,8 @@ public InputList ReadOnlyAdmins /// /// List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + /// + /// > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. /// public InputList TrustedResourceOwners { diff --git a/sdk/dotnet/LakeFormation/GetDataLakeSettings.cs b/sdk/dotnet/LakeFormation/GetDataLakeSettings.cs index 5f19e192602..81591472e73 100644 --- a/sdk/dotnet/LakeFormation/GetDataLakeSettings.cs +++ b/sdk/dotnet/LakeFormation/GetDataLakeSettings.cs @@ -127,6 +127,10 @@ public sealed class GetDataLakeSettingsResult /// public readonly string Id; /// + /// Key-value map of additional configuration. `CROSS_ACCOUNT_VERSION` will be set to values `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` will also be returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. + /// + public readonly ImmutableDictionary Parameters; + /// /// List of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. /// public readonly ImmutableArray ReadOnlyAdmins; @@ -155,6 +159,8 @@ private GetDataLakeSettingsResult( string id, + ImmutableDictionary parameters, + ImmutableArray readOnlyAdmins, ImmutableArray trustedResourceOwners) @@ -168,6 +174,7 @@ private GetDataLakeSettingsResult( CreateTableDefaultPermissions = createTableDefaultPermissions; ExternalDataFilteringAllowLists = externalDataFilteringAllowLists; Id = id; + Parameters = parameters; ReadOnlyAdmins = readOnlyAdmins; TrustedResourceOwners = trustedResourceOwners; } diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyArgs.cs new file mode 100644 index 00000000000..f96e63f3ccb --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyArgs.cs @@ -0,0 +1,46 @@ +// *** 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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicyArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies Availability Zone failure policy. See `policy.az` + /// + [Input("az")] + public Input? Az { get; set; } + + /// + /// Specifies Infrastructure failure policy. See `policy.hardware` + /// + [Input("hardware")] + public Input? Hardware { get; set; } + + /// + /// Specifies Region failure policy. `policy.region` + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// Specifies Application failure policy. See `policy.software` + /// + /// The following arguments are optional: + /// + [Input("software")] + public Input? Software { get; set; } + + public ResiliencyPolicyPolicyArgs() + { + } + public static new ResiliencyPolicyPolicyArgs Empty => new ResiliencyPolicyPolicyArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyAzArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyAzArgs.cs new file mode 100644 index 00000000000..bada2d7ffac --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyAzArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicyAzArgs : global::Pulumi.ResourceArgs + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + [Input("rpo", required: true)] + public Input Rpo { get; set; } = null!; + + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + [Input("rto", required: true)] + public Input Rto { get; set; } = null!; + + public ResiliencyPolicyPolicyAzArgs() + { + } + public static new ResiliencyPolicyPolicyAzArgs Empty => new ResiliencyPolicyPolicyAzArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyAzGetArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyAzGetArgs.cs new file mode 100644 index 00000000000..688a70acfb1 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyAzGetArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicyAzGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + [Input("rpo", required: true)] + public Input Rpo { get; set; } = null!; + + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + [Input("rto", required: true)] + public Input Rto { get; set; } = null!; + + public ResiliencyPolicyPolicyAzGetArgs() + { + } + public static new ResiliencyPolicyPolicyAzGetArgs Empty => new ResiliencyPolicyPolicyAzGetArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyGetArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyGetArgs.cs new file mode 100644 index 00000000000..ba64041be27 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyGetArgs.cs @@ -0,0 +1,46 @@ +// *** 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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicyGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Specifies Availability Zone failure policy. See `policy.az` + /// + [Input("az")] + public Input? Az { get; set; } + + /// + /// Specifies Infrastructure failure policy. See `policy.hardware` + /// + [Input("hardware")] + public Input? Hardware { get; set; } + + /// + /// Specifies Region failure policy. `policy.region` + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// Specifies Application failure policy. See `policy.software` + /// + /// The following arguments are optional: + /// + [Input("software")] + public Input? Software { get; set; } + + public ResiliencyPolicyPolicyGetArgs() + { + } + public static new ResiliencyPolicyPolicyGetArgs Empty => new ResiliencyPolicyPolicyGetArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyHardwareArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyHardwareArgs.cs new file mode 100644 index 00000000000..411b689016b --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyHardwareArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicyHardwareArgs : global::Pulumi.ResourceArgs + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + [Input("rpo", required: true)] + public Input Rpo { get; set; } = null!; + + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + [Input("rto", required: true)] + public Input Rto { get; set; } = null!; + + public ResiliencyPolicyPolicyHardwareArgs() + { + } + public static new ResiliencyPolicyPolicyHardwareArgs Empty => new ResiliencyPolicyPolicyHardwareArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyHardwareGetArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyHardwareGetArgs.cs new file mode 100644 index 00000000000..fd1728de40c --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyHardwareGetArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicyHardwareGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + [Input("rpo", required: true)] + public Input Rpo { get; set; } = null!; + + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + [Input("rto", required: true)] + public Input Rto { get; set; } = null!; + + public ResiliencyPolicyPolicyHardwareGetArgs() + { + } + public static new ResiliencyPolicyPolicyHardwareGetArgs Empty => new ResiliencyPolicyPolicyHardwareGetArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyRegionArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyRegionArgs.cs new file mode 100644 index 00000000000..6d9147f7b46 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyRegionArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicyRegionArgs : global::Pulumi.ResourceArgs + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + [Input("rpo")] + public Input? Rpo { get; set; } + + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + [Input("rto")] + public Input? Rto { get; set; } + + public ResiliencyPolicyPolicyRegionArgs() + { + } + public static new ResiliencyPolicyPolicyRegionArgs Empty => new ResiliencyPolicyPolicyRegionArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyRegionGetArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyRegionGetArgs.cs new file mode 100644 index 00000000000..1cf71e41569 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyRegionGetArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicyRegionGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + [Input("rpo")] + public Input? Rpo { get; set; } + + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + [Input("rto")] + public Input? Rto { get; set; } + + public ResiliencyPolicyPolicyRegionGetArgs() + { + } + public static new ResiliencyPolicyPolicyRegionGetArgs Empty => new ResiliencyPolicyPolicyRegionGetArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicySoftwareArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicySoftwareArgs.cs new file mode 100644 index 00000000000..72b2c8c73fc --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicySoftwareArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicySoftwareArgs : global::Pulumi.ResourceArgs + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + [Input("rpo", required: true)] + public Input Rpo { get; set; } = null!; + + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + [Input("rto", required: true)] + public Input Rto { get; set; } = null!; + + public ResiliencyPolicyPolicySoftwareArgs() + { + } + public static new ResiliencyPolicyPolicySoftwareArgs Empty => new ResiliencyPolicyPolicySoftwareArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicySoftwareGetArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicySoftwareGetArgs.cs new file mode 100644 index 00000000000..3a819751803 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicySoftwareGetArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicySoftwareGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + [Input("rpo", required: true)] + public Input Rpo { get; set; } = null!; + + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + [Input("rto", required: true)] + public Input Rto { get; set; } = null!; + + public ResiliencyPolicyPolicySoftwareGetArgs() + { + } + public static new ResiliencyPolicyPolicySoftwareGetArgs Empty => new ResiliencyPolicyPolicySoftwareGetArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyTimeoutsArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyTimeoutsArgs.cs new file mode 100644 index 00000000000..6b8a259e330 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyTimeoutsArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyTimeoutsArgs : 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 ResiliencyPolicyTimeoutsArgs() + { + } + public static new ResiliencyPolicyTimeoutsArgs Empty => new ResiliencyPolicyTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyTimeoutsGetArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyTimeoutsGetArgs.cs new file mode 100644 index 00000000000..c7b8a56cb6d --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyTimeoutsGetArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyTimeoutsGetArgs : 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 ResiliencyPolicyTimeoutsGetArgs() + { + } + public static new ResiliencyPolicyTimeoutsGetArgs Empty => new ResiliencyPolicyTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicy.cs b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicy.cs new file mode 100644 index 00000000000..740ed81b605 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicy.cs @@ -0,0 +1,51 @@ +// *** 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.ResilienceHub.Outputs +{ + + [OutputType] + public sealed class ResiliencyPolicyPolicy + { + /// + /// Specifies Availability Zone failure policy. See `policy.az` + /// + public readonly Outputs.ResiliencyPolicyPolicyAz? Az; + /// + /// Specifies Infrastructure failure policy. See `policy.hardware` + /// + public readonly Outputs.ResiliencyPolicyPolicyHardware? Hardware; + /// + /// Specifies Region failure policy. `policy.region` + /// + public readonly Outputs.ResiliencyPolicyPolicyRegion? Region; + /// + /// Specifies Application failure policy. See `policy.software` + /// + /// The following arguments are optional: + /// + public readonly Outputs.ResiliencyPolicyPolicySoftware? Software; + + [OutputConstructor] + private ResiliencyPolicyPolicy( + Outputs.ResiliencyPolicyPolicyAz? az, + + Outputs.ResiliencyPolicyPolicyHardware? hardware, + + Outputs.ResiliencyPolicyPolicyRegion? region, + + Outputs.ResiliencyPolicyPolicySoftware? software) + { + Az = az; + Hardware = hardware; + Region = region; + Software = software; + } + } +} diff --git a/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyAz.cs b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyAz.cs new file mode 100644 index 00000000000..ba71cb79a3e --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyAz.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.ResilienceHub.Outputs +{ + + [OutputType] + public sealed class ResiliencyPolicyPolicyAz + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + public readonly string Rpo; + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + public readonly string Rto; + + [OutputConstructor] + private ResiliencyPolicyPolicyAz( + string rpo, + + string rto) + { + Rpo = rpo; + Rto = rto; + } + } +} diff --git a/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyHardware.cs b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyHardware.cs new file mode 100644 index 00000000000..b1a214d791f --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyHardware.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.ResilienceHub.Outputs +{ + + [OutputType] + public sealed class ResiliencyPolicyPolicyHardware + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + public readonly string Rpo; + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + public readonly string Rto; + + [OutputConstructor] + private ResiliencyPolicyPolicyHardware( + string rpo, + + string rto) + { + Rpo = rpo; + Rto = rto; + } + } +} diff --git a/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyRegion.cs b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyRegion.cs new file mode 100644 index 00000000000..b13d6a499af --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyRegion.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.ResilienceHub.Outputs +{ + + [OutputType] + public sealed class ResiliencyPolicyPolicyRegion + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + public readonly string? Rpo; + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + public readonly string? Rto; + + [OutputConstructor] + private ResiliencyPolicyPolicyRegion( + string? rpo, + + string? rto) + { + Rpo = rpo; + Rto = rto; + } + } +} diff --git a/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicySoftware.cs b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicySoftware.cs new file mode 100644 index 00000000000..cac52e789d2 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicySoftware.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.ResilienceHub.Outputs +{ + + [OutputType] + public sealed class ResiliencyPolicyPolicySoftware + { + /// + /// Recovery Point Objective (RPO) as a Go duration. + /// + public readonly string Rpo; + /// + /// Recovery Time Objective (RTO) as a Go duration. + /// + public readonly string Rto; + + [OutputConstructor] + private ResiliencyPolicyPolicySoftware( + string rpo, + + string rto) + { + Rpo = rpo; + Rto = rto; + } + } +} diff --git a/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyTimeouts.cs b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyTimeouts.cs new file mode 100644 index 00000000000..226a5821698 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyTimeouts.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.ResilienceHub.Outputs +{ + + [OutputType] + public sealed class ResiliencyPolicyTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.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 ResiliencyPolicyTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/ResilienceHub/README.md b/sdk/dotnet/ResilienceHub/README.md new file mode 100644 index 00000000000..9d868f18f20 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/README.md @@ -0,0 +1 @@ +A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources. diff --git a/sdk/dotnet/ResilienceHub/ResiliencyPolicy.cs b/sdk/dotnet/ResilienceHub/ResiliencyPolicy.cs new file mode 100644 index 00000000000..8ee8224ce7a --- /dev/null +++ b/sdk/dotnet/ResilienceHub/ResiliencyPolicy.cs @@ -0,0 +1,275 @@ +// *** 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.ResilienceHub +{ + /// + /// Resource for managing an AWS Resilience Hub Resiliency Policy. + /// + /// ## Import + /// + /// Using `pulumi import`, import Resilience Hub Resiliency Policy using the `arn`. For example: + /// + /// ```sh + /// $ pulumi import aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy example arn:aws:resiliencehub:us-east-1:123456789012:resiliency-policy/8c1cfa29-d1dd-4421-aa68-c9f64cced4c2 + /// ``` + /// + [AwsResourceType("aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy")] + public partial class ResiliencyPolicy : global::Pulumi.CustomResource + { + /// + /// ARN of the Resiliency Policy. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Data Location Constraint of the Policy. + /// Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + /// + [Output("dataLocationConstraint")] + public Output DataLocationConstraint { get; private set; } = null!; + + /// + /// Description of Resiliency Policy. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Estimated Cost Tier of the Resiliency Policy. + /// + [Output("estimatedCostTier")] + public Output EstimatedCostTier { get; private set; } = null!; + + /// + /// Name of Resiliency Policy. + /// Must be between 2 and 60 characters long. + /// Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + /// + /// The following arguments are optional: + /// + [Output("policy")] + public Output Policy { get; private set; } = null!; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + /// + /// Resiliency Policy Tier. + /// Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + /// + [Output("tier")] + public Output Tier { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + + /// + /// Create a ResiliencyPolicy 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 ResiliencyPolicy(string name, ResiliencyPolicyArgs args, CustomResourceOptions? options = null) + : base("aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy", name, args ?? new ResiliencyPolicyArgs(), MakeResourceOptions(options, "")) + { + } + + private ResiliencyPolicy(string name, Input id, ResiliencyPolicyState? state = null, CustomResourceOptions? options = null) + : base("aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy", 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 ResiliencyPolicy 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 ResiliencyPolicy Get(string name, Input id, ResiliencyPolicyState? state = null, CustomResourceOptions? options = null) + { + return new ResiliencyPolicy(name, id, state, options); + } + } + + public sealed class ResiliencyPolicyArgs : global::Pulumi.ResourceArgs + { + /// + /// Data Location Constraint of the Policy. + /// Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + /// + [Input("dataLocationConstraint")] + public Input? DataLocationConstraint { get; set; } + + /// + /// Description of Resiliency Policy. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Name of Resiliency Policy. + /// Must be between 2 and 60 characters long. + /// Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + /// + /// The following arguments are optional: + /// + [Input("policy")] + public Input? Policy { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// Resiliency Policy Tier. + /// Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + /// + [Input("tier", required: true)] + public Input Tier { get; set; } = null!; + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public ResiliencyPolicyArgs() + { + } + public static new ResiliencyPolicyArgs Empty => new ResiliencyPolicyArgs(); + } + + public sealed class ResiliencyPolicyState : global::Pulumi.ResourceArgs + { + /// + /// ARN of the Resiliency Policy. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// Data Location Constraint of the Policy. + /// Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + /// + [Input("dataLocationConstraint")] + public Input? DataLocationConstraint { get; set; } + + /// + /// Description of Resiliency Policy. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Estimated Cost Tier of the Resiliency Policy. + /// + [Input("estimatedCostTier")] + public Input? EstimatedCostTier { get; set; } + + /// + /// Name of Resiliency Policy. + /// Must be between 2 and 60 characters long. + /// Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + /// + /// The following arguments are optional: + /// + [Input("policy")] + public Input? Policy { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + /// + /// Resiliency Policy Tier. + /// Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + /// + [Input("tier")] + public Input? Tier { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public ResiliencyPolicyState() + { + } + public static new ResiliencyPolicyState Empty => new ResiliencyPolicyState(); + } +} diff --git a/sdk/dotnet/Route53/Inputs/ProfilesAssociationTimeoutsArgs.cs b/sdk/dotnet/Route53/Inputs/ProfilesAssociationTimeoutsArgs.cs index 9cfb0cdcbe0..7ab7dc5baef 100644 --- a/sdk/dotnet/Route53/Inputs/ProfilesAssociationTimeoutsArgs.cs +++ b/sdk/dotnet/Route53/Inputs/ProfilesAssociationTimeoutsArgs.cs @@ -25,10 +25,10 @@ public sealed class ProfilesAssociationTimeoutsArgs : global::Pulumi.ResourceArg 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). Read operations occur during any refresh or planning operation when refresh is enabled. + /// A string that can be [parsed as a duration](https://pkg.go.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("read")] - public Input? Read { get; set; } + [Input("update")] + public Input? Update { get; set; } public ProfilesAssociationTimeoutsArgs() { diff --git a/sdk/dotnet/Route53/Inputs/ProfilesAssociationTimeoutsGetArgs.cs b/sdk/dotnet/Route53/Inputs/ProfilesAssociationTimeoutsGetArgs.cs index 8bf6853b5e2..3c48cdc45c1 100644 --- a/sdk/dotnet/Route53/Inputs/ProfilesAssociationTimeoutsGetArgs.cs +++ b/sdk/dotnet/Route53/Inputs/ProfilesAssociationTimeoutsGetArgs.cs @@ -25,10 +25,10 @@ public sealed class ProfilesAssociationTimeoutsGetArgs : global::Pulumi.Resource 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). Read operations occur during any refresh or planning operation when refresh is enabled. + /// A string that can be [parsed as a duration](https://pkg.go.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("read")] - public Input? Read { get; set; } + [Input("update")] + public Input? Update { get; set; } public ProfilesAssociationTimeoutsGetArgs() { diff --git a/sdk/dotnet/Route53/Outputs/ProfilesAssociationTimeouts.cs b/sdk/dotnet/Route53/Outputs/ProfilesAssociationTimeouts.cs index 91cffe8b5af..433f8a529d9 100644 --- a/sdk/dotnet/Route53/Outputs/ProfilesAssociationTimeouts.cs +++ b/sdk/dotnet/Route53/Outputs/ProfilesAssociationTimeouts.cs @@ -22,9 +22,9 @@ public sealed class ProfilesAssociationTimeouts /// 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). Read operations occur during any refresh or planning operation when refresh is enabled. + /// A string that can be [parsed as a duration](https://pkg.go.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? Read; + public readonly string? Update; [OutputConstructor] private ProfilesAssociationTimeouts( @@ -32,11 +32,11 @@ private ProfilesAssociationTimeouts( string? delete, - string? read) + string? update) { Create = create; Delete = delete; - Read = read; + Update = update; } } } diff --git a/sdk/dotnet/Route53/ProfilesAssociation.cs b/sdk/dotnet/Route53/ProfilesAssociation.cs index df39d422794..88a6add01ad 100644 --- a/sdk/dotnet/Route53/ProfilesAssociation.cs +++ b/sdk/dotnet/Route53/ProfilesAssociation.cs @@ -29,7 +29,7 @@ public partial class ProfilesAssociation : global::Pulumi.CustomResource public Output Arn { get; private set; } = null!; /// - /// Name of the Profile Association. + /// Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. /// [Output("name")] public Output Name { get; private set; } = null!; @@ -50,7 +50,7 @@ public partial class ProfilesAssociation : global::Pulumi.CustomResource public Output ResourceId { get; private set; } = null!; /// - /// Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + /// Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. /// [Output("status")] public Output Status { get; private set; } = null!; @@ -117,7 +117,7 @@ public static ProfilesAssociation Get(string name, Input id, ProfilesAss public sealed class ProfilesAssociationArgs : global::Pulumi.ResourceArgs { /// - /// Name of the Profile Association. + /// Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. /// [Input("name")] public Input? Name { get; set; } @@ -157,7 +157,7 @@ public sealed class ProfilesAssociationState : global::Pulumi.ResourceArgs public Input? Arn { get; set; } /// - /// Name of the Profile Association. + /// Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. /// [Input("name")] public Input? Name { get; set; } @@ -178,7 +178,7 @@ public sealed class ProfilesAssociationState : global::Pulumi.ResourceArgs public Input? ResourceId { get; set; } /// - /// Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + /// Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. /// [Input("status")] public Input? Status { get; set; } diff --git a/sdk/dotnet/Sagemaker/Domain.cs b/sdk/dotnet/Sagemaker/Domain.cs index f9306d745fe..b73318a5259 100644 --- a/sdk/dotnet/Sagemaker/Domain.cs +++ b/sdk/dotnet/Sagemaker/Domain.cs @@ -175,6 +175,12 @@ public partial class Domain : global::Pulumi.CustomResource [Output("subnetIds")] public Output> SubnetIds { get; private set; } = null!; + /// + /// Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + /// + [Output("tagPropagation")] + public Output TagPropagation { get; private set; } = null!; + /// /// A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. /// @@ -313,6 +319,12 @@ public InputList SubnetIds set => _subnetIds = value; } + /// + /// Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + /// + [Input("tagPropagation")] + public Input? TagPropagation { get; set; } + [Input("tags")] private InputMap? _tags; @@ -437,6 +449,12 @@ public InputList SubnetIds set => _subnetIds = value; } + /// + /// Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + /// + [Input("tagPropagation")] + public Input? TagPropagation { get; set; } + [Input("tags")] private InputMap? _tags; diff --git a/sdk/dotnet/Sagemaker/FeatureGroup.cs b/sdk/dotnet/Sagemaker/FeatureGroup.cs index 6b518cc2092..c7ef8ad40cc 100644 --- a/sdk/dotnet/Sagemaker/FeatureGroup.cs +++ b/sdk/dotnet/Sagemaker/FeatureGroup.cs @@ -124,6 +124,9 @@ public partial class FeatureGroup : global::Pulumi.CustomResource [Output("tagsAll")] public Output> TagsAll { get; private set; } = null!; + [Output("throughputConfig")] + public Output ThroughputConfig { get; private set; } = null!; + /// /// Create a FeatureGroup resource with the given unique name, arguments, and options. @@ -236,6 +239,9 @@ public InputMap Tags set => _tags = value; } + [Input("throughputConfig")] + public Input? ThroughputConfig { get; set; } + public FeatureGroupArgs() { } @@ -329,6 +335,9 @@ public InputMap TagsAll set => _tagsAll = value; } + [Input("throughputConfig")] + public Input? ThroughputConfig { get; set; } + public FeatureGroupState() { } diff --git a/sdk/dotnet/Sagemaker/Hub.cs b/sdk/dotnet/Sagemaker/Hub.cs new file mode 100644 index 00000000000..578da882f7f --- /dev/null +++ b/sdk/dotnet/Sagemaker/Hub.cs @@ -0,0 +1,269 @@ +// *** 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.Sagemaker +{ + /// + /// Provides a SageMaker Hub resource. + /// + /// ## 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.Sagemaker.Hub("example", new() + /// { + /// HubName = "example", + /// HubDescription = "example", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import SageMaker Hubs using the `name`. For example: + /// + /// ```sh + /// $ pulumi import aws:sagemaker/hub:Hub test_hub my-code-repo + /// ``` + /// + [AwsResourceType("aws:sagemaker/hub:Hub")] + public partial class Hub : global::Pulumi.CustomResource + { + /// + /// The Amazon Resource Name (ARN) assigned by AWS to this Hub. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// A description of the hub. + /// + [Output("hubDescription")] + public Output HubDescription { get; private set; } = null!; + + /// + /// The display name of the hub. + /// + [Output("hubDisplayName")] + public Output HubDisplayName { get; private set; } = null!; + + /// + /// The name of the hub. + /// + [Output("hubName")] + public Output HubName { get; private set; } = null!; + + /// + /// The searchable keywords for the hub. + /// + [Output("hubSearchKeywords")] + public Output> HubSearchKeywords { get; private set; } = null!; + + /// + /// The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + /// + [Output("s3StorageConfig")] + public Output S3StorageConfig { get; private set; } = null!; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + + /// + /// Create a Hub 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 Hub(string name, HubArgs args, CustomResourceOptions? options = null) + : base("aws:sagemaker/hub:Hub", name, args ?? new HubArgs(), MakeResourceOptions(options, "")) + { + } + + private Hub(string name, Input id, HubState? state = null, CustomResourceOptions? options = null) + : base("aws:sagemaker/hub:Hub", 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 Hub 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 Hub Get(string name, Input id, HubState? state = null, CustomResourceOptions? options = null) + { + return new Hub(name, id, state, options); + } + } + + public sealed class HubArgs : global::Pulumi.ResourceArgs + { + /// + /// A description of the hub. + /// + [Input("hubDescription", required: true)] + public Input HubDescription { get; set; } = null!; + + /// + /// The display name of the hub. + /// + [Input("hubDisplayName")] + public Input? HubDisplayName { get; set; } + + /// + /// The name of the hub. + /// + [Input("hubName", required: true)] + public Input HubName { get; set; } = null!; + + [Input("hubSearchKeywords")] + private InputList? _hubSearchKeywords; + + /// + /// The searchable keywords for the hub. + /// + public InputList HubSearchKeywords + { + get => _hubSearchKeywords ?? (_hubSearchKeywords = new InputList()); + set => _hubSearchKeywords = value; + } + + /// + /// The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + /// + [Input("s3StorageConfig")] + public Input? S3StorageConfig { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public HubArgs() + { + } + public static new HubArgs Empty => new HubArgs(); + } + + public sealed class HubState : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) assigned by AWS to this Hub. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// A description of the hub. + /// + [Input("hubDescription")] + public Input? HubDescription { get; set; } + + /// + /// The display name of the hub. + /// + [Input("hubDisplayName")] + public Input? HubDisplayName { get; set; } + + /// + /// The name of the hub. + /// + [Input("hubName")] + public Input? HubName { get; set; } + + [Input("hubSearchKeywords")] + private InputList? _hubSearchKeywords; + + /// + /// The searchable keywords for the hub. + /// + public InputList HubSearchKeywords + { + get => _hubSearchKeywords ?? (_hubSearchKeywords = new InputList()); + set => _hubSearchKeywords = value; + } + + /// + /// The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + /// + [Input("s3StorageConfig")] + public Input? S3StorageConfig { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + public HubState() + { + } + public static new HubState Empty => new HubState(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.cs new file mode 100644 index 00000000000..01a1d2f561b --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs() + { + } + public static new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs Empty => new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.cs new file mode 100644 index 00000000000..a64c773ecd1 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs() + { + } + public static new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs Empty => new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs new file mode 100644 index 00000000000..4e2e624c426 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + [Input("lifecycleManagement")] + public Input? LifecycleManagement { get; set; } + + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("maxIdleTimeoutInMinutes")] + public Input? MaxIdleTimeoutInMinutes { get; set; } + + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("minIdleTimeoutInMinutes")] + public Input? MinIdleTimeoutInMinutes { get; set; } + + public DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs() + { + } + public static new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs Empty => new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs new file mode 100644 index 00000000000..7f5b150d568 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + [Input("lifecycleManagement")] + public Input? LifecycleManagement { get; set; } + + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("maxIdleTimeoutInMinutes")] + public Input? MaxIdleTimeoutInMinutes { get; set; } + + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("minIdleTimeoutInMinutes")] + public Input? MinIdleTimeoutInMinutes { get; set; } + + public DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs() + { + } + public static new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs Empty => new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs.cs index 1c751e4f5d4..898ed6b6536 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + [Input("builtInLifecycleConfigArn")] + public Input? BuiltInLifecycleConfigArn { get; set; } + [Input("codeRepositories")] private InputList? _codeRepositories; @@ -42,6 +54,12 @@ public InputList? DefaultResourceSpec { get; set; } + /// + /// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + /// + [Input("emrSettings")] + public Input? EmrSettings { get; set; } + [Input("lifecycleConfigArns")] private InputList? _lifecycleConfigArns; diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs.cs new file mode 100644 index 00000000000..f18c303327c --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs : global::Pulumi.ResourceArgs + { + [Input("assumableRoleArns")] + private InputList? _assumableRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + /// + public InputList AssumableRoleArns + { + get => _assumableRoleArns ?? (_assumableRoleArns = new InputList()); + set => _assumableRoleArns = value; + } + + [Input("executionRoleArns")] + private InputList? _executionRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + /// + public InputList ExecutionRoleArns + { + get => _executionRoleArns ?? (_executionRoleArns = new InputList()); + set => _executionRoleArns = value; + } + + public DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs() + { + } + public static new DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs Empty => new DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsGetArgs.cs new file mode 100644 index 00000000000..d271a38b21f --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsGetArgs : global::Pulumi.ResourceArgs + { + [Input("assumableRoleArns")] + private InputList? _assumableRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + /// + public InputList AssumableRoleArns + { + get => _assumableRoleArns ?? (_assumableRoleArns = new InputList()); + set => _assumableRoleArns = value; + } + + [Input("executionRoleArns")] + private InputList? _executionRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + /// + public InputList ExecutionRoleArns + { + get => _executionRoleArns ?? (_executionRoleArns = new InputList()); + set => _executionRoleArns = value; + } + + public DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsGetArgs() + { + } + public static new DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsGetArgs Empty => new DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsGetArgs.cs index 02ad4419ef1..c12e87ef717 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsGetArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsGetArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + [Input("builtInLifecycleConfigArn")] + public Input? BuiltInLifecycleConfigArn { get; set; } + [Input("codeRepositories")] private InputList? _codeRepositories; @@ -42,6 +54,12 @@ public InputList? DefaultResourceSpec { get; set; } + /// + /// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + /// + [Input("emrSettings")] + public Input? EmrSettings { get; set; } + [Input("lifecycleConfigArns")] private InputList? _lifecycleConfigArns; diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsArgs.cs index b7efc847000..238e74e1f4e 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class DomainDefaultUserSettingsArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + /// + [Input("autoMountHomeEfs")] + public Input? AutoMountHomeEfs { get; set; } + /// /// The Canvas app settings. See `canvas_app_settings` Block below. /// diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsArgs.cs index e0c390c46c8..7fdc78784c0 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsArgs.cs @@ -18,6 +18,12 @@ public sealed class DomainDefaultUserSettingsCanvasAppSettingsArgs : global::Pul [Input("directDeploySettings")] public Input? DirectDeploySettings { get; set; } + /// + /// The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + /// + [Input("emrServerlessSettings")] + public Input? EmrServerlessSettings { get; set; } + [Input("generativeAiSettings")] public Input? GenerativeAiSettings { get; set; } diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.cs new file mode 100644 index 00000000000..f2eef61f46d --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + /// + [Input("executionRoleArn")] + public Input? ExecutionRoleArn { get; set; } + + /// + /// Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + /// + [Input("status")] + public Input? Status { get; set; } + + public DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs() + { + } + public static new DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs Empty => new DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs.cs new file mode 100644 index 00000000000..79569f44c9f --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs.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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + /// + [Input("executionRoleArn")] + public Input? ExecutionRoleArn { get; set; } + + /// + /// Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + /// + [Input("status")] + public Input? Status { get; set; } + + public DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs() + { + } + public static new DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs Empty => new DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsGetArgs.cs index dcfc4828c30..659120d77bc 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCanvasAppSettingsGetArgs.cs @@ -18,6 +18,12 @@ public sealed class DomainDefaultUserSettingsCanvasAppSettingsGetArgs : global:: [Input("directDeploySettings")] public Input? DirectDeploySettings { get; set; } + /// + /// The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + /// + [Input("emrServerlessSettings")] + public Input? EmrServerlessSettings { get; set; } + [Input("generativeAiSettings")] public Input? GenerativeAiSettings { get; set; } diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.cs new file mode 100644 index 00000000000..e35600d7397 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs() + { + } + public static new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs Empty => new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs.cs new file mode 100644 index 00000000000..0c7048a0a6f --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs.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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs() + { + } + public static new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs Empty => new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.cs new file mode 100644 index 00000000000..15424844c5c --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + [Input("lifecycleManagement")] + public Input? LifecycleManagement { get; set; } + + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("maxIdleTimeoutInMinutes")] + public Input? MaxIdleTimeoutInMinutes { get; set; } + + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("minIdleTimeoutInMinutes")] + public Input? MinIdleTimeoutInMinutes { get; set; } + + public DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs() + { + } + public static new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs Empty => new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs new file mode 100644 index 00000000000..f2480f14801 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + [Input("lifecycleManagement")] + public Input? LifecycleManagement { get; set; } + + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("maxIdleTimeoutInMinutes")] + public Input? MaxIdleTimeoutInMinutes { get; set; } + + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("minIdleTimeoutInMinutes")] + public Input? MinIdleTimeoutInMinutes { get; set; } + + public DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs() + { + } + public static new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs Empty => new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsArgs.cs index 413ec4c63fa..0afffba17d5 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class DomainDefaultUserSettingsCodeEditorAppSettingsArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + [Input("builtInLifecycleConfigArn")] + public Input? BuiltInLifecycleConfigArn { get; set; } + [Input("customImages")] private InputList? _customImages; diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsGetArgs.cs index 24f74410ab8..e39b72e4aa7 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsCodeEditorAppSettingsGetArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class DomainDefaultUserSettingsCodeEditorAppSettingsGetArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + [Input("builtInLifecycleConfigArn")] + public Input? BuiltInLifecycleConfigArn { get; set; } + [Input("customImages")] private InputList? _customImages; diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsGetArgs.cs index 6464d86a954..05f9a81b760 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class DomainDefaultUserSettingsGetArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + /// + [Input("autoMountHomeEfs")] + public Input? AutoMountHomeEfs { get; set; } + /// /// The Canvas app settings. See `canvas_app_settings` Block below. /// diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.cs new file mode 100644 index 00000000000..3c2f776fd03 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs() + { + } + public static new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs Empty => new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.cs new file mode 100644 index 00000000000..1bff9c1374d --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs() + { + } + public static new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs Empty => new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs new file mode 100644 index 00000000000..35cb4a77389 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + [Input("lifecycleManagement")] + public Input? LifecycleManagement { get; set; } + + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("maxIdleTimeoutInMinutes")] + public Input? MaxIdleTimeoutInMinutes { get; set; } + + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("minIdleTimeoutInMinutes")] + public Input? MinIdleTimeoutInMinutes { get; set; } + + public DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs() + { + } + public static new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs Empty => new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs new file mode 100644 index 00000000000..26815be0d61 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + [Input("lifecycleManagement")] + public Input? LifecycleManagement { get; set; } + + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("maxIdleTimeoutInMinutes")] + public Input? MaxIdleTimeoutInMinutes { get; set; } + + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("minIdleTimeoutInMinutes")] + public Input? MinIdleTimeoutInMinutes { get; set; } + + public DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs() + { + } + public static new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs Empty => new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsArgs.cs index bba4a92970f..dfa6c6ccc5a 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + [Input("builtInLifecycleConfigArn")] + public Input? BuiltInLifecycleConfigArn { get; set; } + [Input("codeRepositories")] private InputList? _codeRepositories; @@ -42,6 +54,12 @@ public InputList? DefaultResourceSpec { get; set; } + /// + /// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + /// + [Input("emrSettings")] + public Input? EmrSettings { get; set; } + [Input("lifecycleConfigArns")] private InputList? _lifecycleConfigArns; diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs.cs new file mode 100644 index 00000000000..9a590c28bed --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs : global::Pulumi.ResourceArgs + { + [Input("assumableRoleArns")] + private InputList? _assumableRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + /// + public InputList AssumableRoleArns + { + get => _assumableRoleArns ?? (_assumableRoleArns = new InputList()); + set => _assumableRoleArns = value; + } + + [Input("executionRoleArns")] + private InputList? _executionRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + /// + public InputList ExecutionRoleArns + { + get => _executionRoleArns ?? (_executionRoleArns = new InputList()); + set => _executionRoleArns = value; + } + + public DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs() + { + } + public static new DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs Empty => new DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs.cs new file mode 100644 index 00000000000..7ecdd879873 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs : global::Pulumi.ResourceArgs + { + [Input("assumableRoleArns")] + private InputList? _assumableRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + /// + public InputList AssumableRoleArns + { + get => _assumableRoleArns ?? (_assumableRoleArns = new InputList()); + set => _assumableRoleArns = value; + } + + [Input("executionRoleArns")] + private InputList? _executionRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + /// + public InputList ExecutionRoleArns + { + get => _executionRoleArns ?? (_executionRoleArns = new InputList()); + set => _executionRoleArns = value; + } + + public DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs() + { + } + public static new DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs Empty => new DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsGetArgs.cs index 0981ab0bc9d..1e8545dc104 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterLabAppSettingsGetArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsGetArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + [Input("builtInLifecycleConfigArn")] + public Input? BuiltInLifecycleConfigArn { get; set; } + [Input("codeRepositories")] private InputList? _codeRepositories; @@ -42,6 +54,12 @@ public InputList? DefaultResourceSpec { get; set; } + /// + /// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + /// + [Input("emrSettings")] + public Input? EmrSettings { get; set; } + [Input("lifecycleConfigArns")] private InputList? _lifecycleConfigArns; diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsStudioWebPortalSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsStudioWebPortalSettingsArgs.cs index 19b7b1b1d24..fb2a248769b 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsStudioWebPortalSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsStudioWebPortalSettingsArgs.cs @@ -24,6 +24,18 @@ public InputList HiddenAppTypes set => _hiddenAppTypes = value; } + [Input("hiddenInstanceTypes")] + private InputList? _hiddenInstanceTypes; + + /// + /// The instance types you are hiding from the Studio user interface. + /// + public InputList HiddenInstanceTypes + { + get => _hiddenInstanceTypes ?? (_hiddenInstanceTypes = new InputList()); + set => _hiddenInstanceTypes = value; + } + [Input("hiddenMlTools")] private InputList? _hiddenMlTools; diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsStudioWebPortalSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsStudioWebPortalSettingsGetArgs.cs index 002fa70d947..2c2457395fc 100644 --- a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsStudioWebPortalSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsStudioWebPortalSettingsGetArgs.cs @@ -24,6 +24,18 @@ public InputList HiddenAppTypes set => _hiddenAppTypes = value; } + [Input("hiddenInstanceTypes")] + private InputList? _hiddenInstanceTypes; + + /// + /// The instance types you are hiding from the Studio user interface. + /// + public InputList HiddenInstanceTypes + { + get => _hiddenInstanceTypes ?? (_hiddenInstanceTypes = new InputList()); + set => _hiddenInstanceTypes = value; + } + [Input("hiddenMlTools")] private InputList? _hiddenMlTools; diff --git a/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionArgs.cs b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionArgs.cs index ffc4d14059a..73235199680 100644 --- a/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class FeatureGroupFeatureDefinitionArgs : global::Pulumi.ResourceArgs { + [Input("collectionConfig")] + public Input? CollectionConfig { get; set; } + + [Input("collectionType")] + public Input? CollectionType { get; set; } + /// /// The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. /// diff --git a/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigArgs.cs b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigArgs.cs new file mode 100644 index 00000000000..311e511ba9c --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigArgs.cs @@ -0,0 +1,23 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class FeatureGroupFeatureDefinitionCollectionConfigArgs : global::Pulumi.ResourceArgs + { + [Input("vectorConfig")] + public Input? VectorConfig { get; set; } + + public FeatureGroupFeatureDefinitionCollectionConfigArgs() + { + } + public static new FeatureGroupFeatureDefinitionCollectionConfigArgs Empty => new FeatureGroupFeatureDefinitionCollectionConfigArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigGetArgs.cs new file mode 100644 index 00000000000..1beec43b7fd --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigGetArgs.cs @@ -0,0 +1,23 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class FeatureGroupFeatureDefinitionCollectionConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("vectorConfig")] + public Input? VectorConfig { get; set; } + + public FeatureGroupFeatureDefinitionCollectionConfigGetArgs() + { + } + public static new FeatureGroupFeatureDefinitionCollectionConfigGetArgs Empty => new FeatureGroupFeatureDefinitionCollectionConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs.cs b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs.cs new file mode 100644 index 00000000000..bc8f2e15d54 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs.cs @@ -0,0 +1,23 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs : global::Pulumi.ResourceArgs + { + [Input("dimension")] + public Input? Dimension { get; set; } + + public FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs() + { + } + public static new FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs Empty => new FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfigGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfigGetArgs.cs new file mode 100644 index 00000000000..24e913f67f0 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfigGetArgs.cs @@ -0,0 +1,23 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class FeatureGroupFeatureDefinitionCollectionConfigVectorConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("dimension")] + public Input? Dimension { get; set; } + + public FeatureGroupFeatureDefinitionCollectionConfigVectorConfigGetArgs() + { + } + public static new FeatureGroupFeatureDefinitionCollectionConfigVectorConfigGetArgs Empty => new FeatureGroupFeatureDefinitionCollectionConfigVectorConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionGetArgs.cs index 01686519be4..d92518e0903 100644 --- a/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupFeatureDefinitionGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class FeatureGroupFeatureDefinitionGetArgs : global::Pulumi.ResourceArgs { + [Input("collectionConfig")] + public Input? CollectionConfig { get; set; } + + [Input("collectionType")] + public Input? CollectionType { get; set; } + /// /// The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. /// diff --git a/sdk/dotnet/Sagemaker/Inputs/FeatureGroupThroughputConfigArgs.cs b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupThroughputConfigArgs.cs new file mode 100644 index 00000000000..a74af0cd9c9 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupThroughputConfigArgs.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.Sagemaker.Inputs +{ + + public sealed class FeatureGroupThroughputConfigArgs : global::Pulumi.ResourceArgs + { + [Input("provisionedReadCapacityUnits")] + public Input? ProvisionedReadCapacityUnits { get; set; } + + [Input("provisionedWriteCapacityUnits")] + public Input? ProvisionedWriteCapacityUnits { get; set; } + + [Input("throughputMode")] + public Input? ThroughputMode { get; set; } + + public FeatureGroupThroughputConfigArgs() + { + } + public static new FeatureGroupThroughputConfigArgs Empty => new FeatureGroupThroughputConfigArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/FeatureGroupThroughputConfigGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupThroughputConfigGetArgs.cs new file mode 100644 index 00000000000..c196ba89858 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/FeatureGroupThroughputConfigGetArgs.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.Sagemaker.Inputs +{ + + public sealed class FeatureGroupThroughputConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("provisionedReadCapacityUnits")] + public Input? ProvisionedReadCapacityUnits { get; set; } + + [Input("provisionedWriteCapacityUnits")] + public Input? ProvisionedWriteCapacityUnits { get; set; } + + [Input("throughputMode")] + public Input? ThroughputMode { get; set; } + + public FeatureGroupThroughputConfigGetArgs() + { + } + public static new FeatureGroupThroughputConfigGetArgs Empty => new FeatureGroupThroughputConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/HubS3StorageConfigArgs.cs b/sdk/dotnet/Sagemaker/Inputs/HubS3StorageConfigArgs.cs new file mode 100644 index 00000000000..658de318a61 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/HubS3StorageConfigArgs.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.Sagemaker.Inputs +{ + + public sealed class HubS3StorageConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon S3 bucket prefix for hosting hub content.interface. + /// + [Input("s3OutputPath")] + public Input? S3OutputPath { get; set; } + + public HubS3StorageConfigArgs() + { + } + public static new HubS3StorageConfigArgs Empty => new HubS3StorageConfigArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/HubS3StorageConfigGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/HubS3StorageConfigGetArgs.cs new file mode 100644 index 00000000000..05a0c3a300c --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/HubS3StorageConfigGetArgs.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.Sagemaker.Inputs +{ + + public sealed class HubS3StorageConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon S3 bucket prefix for hosting hub content.interface. + /// + [Input("s3OutputPath")] + public Input? S3OutputPath { get; set; } + + public HubS3StorageConfigGetArgs() + { + } + public static new HubS3StorageConfigGetArgs Empty => new HubS3StorageConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.cs new file mode 100644 index 00000000000..19ee58018b4 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.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.Sagemaker.Inputs +{ + + public sealed class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs() + { + } + public static new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs Empty => new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs.cs new file mode 100644 index 00000000000..e6d09cf7b41 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs.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.Sagemaker.Inputs +{ + + public sealed class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs() + { + } + public static new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs Empty => new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.cs new file mode 100644 index 00000000000..a8cef4df1ad --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.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.Sagemaker.Inputs +{ + + public sealed class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + public SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs() + { + } + public static new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs Empty => new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs new file mode 100644 index 00000000000..80a20252e89 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs.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.Sagemaker.Inputs +{ + + public sealed class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + public SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs() + { + } + public static new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs Empty => new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.cs index 62aeb8ebda9..b23065e563f 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class SpaceSpaceSettingsCodeEditorAppSettingsArgs : global::Pulumi.ResourceArgs { + /// + /// Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + /// /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsGetArgs.cs index 72de552fc78..dcb2c2736b1 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsCodeEditorAppSettingsGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class SpaceSpaceSettingsCodeEditorAppSettingsGetArgs : global::Pulumi.ResourceArgs { + /// + /// Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + /// /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.cs new file mode 100644 index 00000000000..f1b20b78d3a --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.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.Sagemaker.Inputs +{ + + public sealed class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs() + { + } + public static new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs Empty => new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.cs new file mode 100644 index 00000000000..3a6d550df58 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.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.Sagemaker.Inputs +{ + + public sealed class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs() + { + } + public static new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs Empty => new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs new file mode 100644 index 00000000000..235d28286e6 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.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.Sagemaker.Inputs +{ + + public sealed class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + public SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs() + { + } + public static new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs Empty => new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs new file mode 100644 index 00000000000..370603f6d28 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.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.Sagemaker.Inputs +{ + + public sealed class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + public SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs() + { + } + public static new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs Empty => new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.cs index c6b0d6330c3..0c79646ba15 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class SpaceSpaceSettingsJupyterLabAppSettingsArgs : global::Pulumi.ResourceArgs { + /// + /// Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + [Input("codeRepositories")] private InputList? _codeRepositories; diff --git a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsGetArgs.cs index 600a124728a..50096e94c3b 100644 --- a/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/SpaceSpaceSettingsJupyterLabAppSettingsGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class SpaceSpaceSettingsJupyterLabAppSettingsGetArgs : global::Pulumi.ResourceArgs { + /// + /// Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + [Input("codeRepositories")] private InputList? _codeRepositories; diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsArgs.cs index d4068f2b344..830727d645f 100644 --- a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class UserProfileUserSettingsArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + /// + [Input("autoMountHomeEfs")] + public Input? AutoMountHomeEfs { get; set; } + /// /// The Canvas app settings. See Canvas App Settings below. /// diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsArgs.cs index a4b50887513..014ee2095d7 100644 --- a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsArgs.cs @@ -18,6 +18,12 @@ public sealed class UserProfileUserSettingsCanvasAppSettingsArgs : global::Pulum [Input("directDeploySettings")] public Input? DirectDeploySettings { get; set; } + /// + /// The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + /// + [Input("emrServerlessSettings")] + public Input? EmrServerlessSettings { get; set; } + [Input("generativeAiSettings")] public Input? GenerativeAiSettings { get; set; } diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.cs new file mode 100644 index 00000000000..70fdfbd94d7 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + /// + [Input("executionRoleArn")] + public Input? ExecutionRoleArn { get; set; } + + /// + /// Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + /// + [Input("status")] + public Input? Status { get; set; } + + public UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs() + { + } + public static new UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs Empty => new UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs.cs new file mode 100644 index 00000000000..b25d03207ef --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs.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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + /// + [Input("executionRoleArn")] + public Input? ExecutionRoleArn { get; set; } + + /// + /// Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + /// + [Input("status")] + public Input? Status { get; set; } + + public UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs() + { + } + public static new UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs Empty => new UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsGetArgs.cs index cd21669bc97..f38de88c2ba 100644 --- a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCanvasAppSettingsGetArgs.cs @@ -18,6 +18,12 @@ public sealed class UserProfileUserSettingsCanvasAppSettingsGetArgs : global::Pu [Input("directDeploySettings")] public Input? DirectDeploySettings { get; set; } + /// + /// The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + /// + [Input("emrServerlessSettings")] + public Input? EmrServerlessSettings { get; set; } + [Input("generativeAiSettings")] public Input? GenerativeAiSettings { get; set; } diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.cs new file mode 100644 index 00000000000..f926f7dd9c8 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs() + { + } + public static new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs Empty => new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs.cs new file mode 100644 index 00000000000..9ac74a17b07 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs.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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs() + { + } + public static new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs Empty => new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.cs new file mode 100644 index 00000000000..b5ef37d6f6d --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + [Input("lifecycleManagement")] + public Input? LifecycleManagement { get; set; } + + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("maxIdleTimeoutInMinutes")] + public Input? MaxIdleTimeoutInMinutes { get; set; } + + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("minIdleTimeoutInMinutes")] + public Input? MinIdleTimeoutInMinutes { get; set; } + + public UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs() + { + } + public static new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs Empty => new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs new file mode 100644 index 00000000000..6f30812b134 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + [Input("lifecycleManagement")] + public Input? LifecycleManagement { get; set; } + + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("maxIdleTimeoutInMinutes")] + public Input? MaxIdleTimeoutInMinutes { get; set; } + + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("minIdleTimeoutInMinutes")] + public Input? MinIdleTimeoutInMinutes { get; set; } + + public UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs() + { + } + public static new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs Empty => new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsArgs.cs index 22c3357c124..8877ec69245 100644 --- a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class UserProfileUserSettingsCodeEditorAppSettingsArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + [Input("builtInLifecycleConfigArn")] + public Input? BuiltInLifecycleConfigArn { get; set; } + [Input("customImages")] private InputList? _customImages; diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsGetArgs.cs index fff64172145..fb040326477 100644 --- a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsCodeEditorAppSettingsGetArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class UserProfileUserSettingsCodeEditorAppSettingsGetArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + [Input("builtInLifecycleConfigArn")] + public Input? BuiltInLifecycleConfigArn { get; set; } + [Input("customImages")] private InputList? _customImages; diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsGetArgs.cs index 7196bd1f7f1..02a71db0518 100644 --- a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsGetArgs.cs @@ -12,6 +12,12 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class UserProfileUserSettingsGetArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + /// + [Input("autoMountHomeEfs")] + public Input? AutoMountHomeEfs { get; set; } + /// /// The Canvas app settings. See Canvas App Settings below. /// diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.cs new file mode 100644 index 00000000000..cbed7bad425 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs() + { + } + public static new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs Empty => new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.cs new file mode 100644 index 00000000000..94edfcea2c1 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs.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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + [Input("idleSettings")] + public Input? IdleSettings { get; set; } + + public UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs() + { + } + public static new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs Empty => new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs new file mode 100644 index 00000000000..2c5cf110d81 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + [Input("lifecycleManagement")] + public Input? LifecycleManagement { get; set; } + + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("maxIdleTimeoutInMinutes")] + public Input? MaxIdleTimeoutInMinutes { get; set; } + + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("minIdleTimeoutInMinutes")] + public Input? MinIdleTimeoutInMinutes { get; set; } + + public UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs() + { + } + public static new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs Empty => new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs new file mode 100644 index 00000000000..1b7fe064aaf --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + [Input("idleTimeoutInMinutes")] + public Input? IdleTimeoutInMinutes { get; set; } + + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + [Input("lifecycleManagement")] + public Input? LifecycleManagement { get; set; } + + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("maxIdleTimeoutInMinutes")] + public Input? MaxIdleTimeoutInMinutes { get; set; } + + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + [Input("minIdleTimeoutInMinutes")] + public Input? MinIdleTimeoutInMinutes { get; set; } + + public UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs() + { + } + public static new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs Empty => new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsArgs.cs index 547072581fd..a384f080f01 100644 --- a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class UserProfileUserSettingsJupyterLabAppSettingsArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + [Input("builtInLifecycleConfigArn")] + public Input? BuiltInLifecycleConfigArn { get; set; } + [Input("codeRepositories")] private InputList? _codeRepositories; @@ -38,6 +50,12 @@ public InputList? DefaultResourceSpec { get; set; } + /// + /// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + /// + [Input("emrSettings")] + public Input? EmrSettings { get; set; } + [Input("lifecycleConfigArns")] private InputList? _lifecycleConfigArns; diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs.cs new file mode 100644 index 00000000000..6d94ebb4006 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs : global::Pulumi.ResourceArgs + { + [Input("assumableRoleArns")] + private InputList? _assumableRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + /// + public InputList AssumableRoleArns + { + get => _assumableRoleArns ?? (_assumableRoleArns = new InputList()); + set => _assumableRoleArns = value; + } + + [Input("executionRoleArns")] + private InputList? _executionRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + /// + public InputList ExecutionRoleArns + { + get => _executionRoleArns ?? (_executionRoleArns = new InputList()); + set => _executionRoleArns = value; + } + + public UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs() + { + } + public static new UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs Empty => new UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs.cs new file mode 100644 index 00000000000..fb071b1c674 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Sagemaker.Inputs +{ + + public sealed class UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs : global::Pulumi.ResourceArgs + { + [Input("assumableRoleArns")] + private InputList? _assumableRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + /// + public InputList AssumableRoleArns + { + get => _assumableRoleArns ?? (_assumableRoleArns = new InputList()); + set => _assumableRoleArns = value; + } + + [Input("executionRoleArns")] + private InputList? _executionRoleArns; + + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + /// + public InputList ExecutionRoleArns + { + get => _executionRoleArns ?? (_executionRoleArns = new InputList()); + set => _executionRoleArns = value; + } + + public UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs() + { + } + public static new UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs Empty => new UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsGetArgs(); + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsGetArgs.cs index 7d9c2889903..1e1295a5716 100644 --- a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsJupyterLabAppSettingsGetArgs.cs @@ -12,6 +12,18 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class UserProfileUserSettingsJupyterLabAppSettingsGetArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + [Input("appLifecycleManagement")] + public Input? AppLifecycleManagement { get; set; } + + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + [Input("builtInLifecycleConfigArn")] + public Input? BuiltInLifecycleConfigArn { get; set; } + [Input("codeRepositories")] private InputList? _codeRepositories; @@ -38,6 +50,12 @@ public InputList? DefaultResourceSpec { get; set; } + /// + /// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + /// + [Input("emrSettings")] + public Input? EmrSettings { get; set; } + [Input("lifecycleConfigArns")] private InputList? _lifecycleConfigArns; diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsStudioWebPortalSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsStudioWebPortalSettingsArgs.cs index be8c1277022..781811a398b 100644 --- a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsStudioWebPortalSettingsArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsStudioWebPortalSettingsArgs.cs @@ -24,6 +24,18 @@ public InputList HiddenAppTypes set => _hiddenAppTypes = value; } + [Input("hiddenInstanceTypes")] + private InputList? _hiddenInstanceTypes; + + /// + /// The instance types you are hiding from the Studio user interface. + /// + public InputList HiddenInstanceTypes + { + get => _hiddenInstanceTypes ?? (_hiddenInstanceTypes = new InputList()); + set => _hiddenInstanceTypes = value; + } + [Input("hiddenMlTools")] private InputList? _hiddenMlTools; diff --git a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsStudioWebPortalSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsStudioWebPortalSettingsGetArgs.cs index e09480d3524..d53d5db2a11 100644 --- a/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsStudioWebPortalSettingsGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/UserProfileUserSettingsStudioWebPortalSettingsGetArgs.cs @@ -24,6 +24,18 @@ public InputList HiddenAppTypes set => _hiddenAppTypes = value; } + [Input("hiddenInstanceTypes")] + private InputList? _hiddenInstanceTypes; + + /// + /// The instance types you are hiding from the Studio user interface. + /// + public InputList HiddenInstanceTypes + { + get => _hiddenInstanceTypes ?? (_hiddenInstanceTypes = new InputList()); + set => _hiddenInstanceTypes = value; + } + [Input("hiddenMlTools")] private InputList? _hiddenMlTools; diff --git a/sdk/dotnet/Sagemaker/MlflowTrackingServer.cs b/sdk/dotnet/Sagemaker/MlflowTrackingServer.cs new file mode 100644 index 00000000000..a591de884eb --- /dev/null +++ b/sdk/dotnet/Sagemaker/MlflowTrackingServer.cs @@ -0,0 +1,306 @@ +// *** 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.Sagemaker +{ + /// + /// Provides a SageMaker MLFlow Tracking Server resource. + /// + /// ## Example Usage + /// + /// ### Cognito Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Sagemaker.MlflowTrackingServer("example", new() + /// { + /// TrackingServerName = "example", + /// RoleArn = exampleAwsIamRole.Arn, + /// ArtifactStoreUri = $"s3://{exampleAwsS3Bucket.Bucket}/path", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import SageMaker MLFlow Tracking Servers using the `workteam_name`. For example: + /// + /// ```sh + /// $ pulumi import aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer example example + /// ``` + /// + [AwsResourceType("aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer")] + public partial class MlflowTrackingServer : global::Pulumi.CustomResource + { + /// + /// The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + /// + [Output("artifactStoreUri")] + public Output ArtifactStoreUri { get; private set; } = null!; + + /// + /// A list of Member Definitions that contains objects that identify the workers that make up the work team. + /// + [Output("automaticModelRegistration")] + public Output AutomaticModelRegistration { get; private set; } = null!; + + /// + /// The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + /// + [Output("mlflowVersion")] + public Output MlflowVersion { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + /// + [Output("roleArn")] + public Output RoleArn { get; private set; } = null!; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + /// + /// A unique string identifying the tracking server name. This string is part of the tracking server ARN. + /// + [Output("trackingServerName")] + public Output TrackingServerName { get; private set; } = null!; + + /// + /// The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + /// + [Output("trackingServerSize")] + public Output TrackingServerSize { get; private set; } = null!; + + /// + /// The URL to connect to the MLflow user interface for the described tracking server. + /// + [Output("trackingServerUrl")] + public Output TrackingServerUrl { get; private set; } = null!; + + /// + /// The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + /// + [Output("weeklyMaintenanceWindowStart")] + public Output WeeklyMaintenanceWindowStart { get; private set; } = null!; + + + /// + /// Create a MlflowTrackingServer 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 MlflowTrackingServer(string name, MlflowTrackingServerArgs args, CustomResourceOptions? options = null) + : base("aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer", name, args ?? new MlflowTrackingServerArgs(), MakeResourceOptions(options, "")) + { + } + + private MlflowTrackingServer(string name, Input id, MlflowTrackingServerState? state = null, CustomResourceOptions? options = null) + : base("aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer", 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 MlflowTrackingServer 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 MlflowTrackingServer Get(string name, Input id, MlflowTrackingServerState? state = null, CustomResourceOptions? options = null) + { + return new MlflowTrackingServer(name, id, state, options); + } + } + + public sealed class MlflowTrackingServerArgs : global::Pulumi.ResourceArgs + { + /// + /// The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + /// + [Input("artifactStoreUri", required: true)] + public Input ArtifactStoreUri { get; set; } = null!; + + /// + /// A list of Member Definitions that contains objects that identify the workers that make up the work team. + /// + [Input("automaticModelRegistration")] + public Input? AutomaticModelRegistration { get; set; } + + /// + /// The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + /// + [Input("mlflowVersion")] + public Input? MlflowVersion { get; set; } + + /// + /// The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// A unique string identifying the tracking server name. This string is part of the tracking server ARN. + /// + [Input("trackingServerName", required: true)] + public Input TrackingServerName { get; set; } = null!; + + /// + /// The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + /// + [Input("trackingServerSize")] + public Input? TrackingServerSize { get; set; } + + /// + /// The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + /// + [Input("weeklyMaintenanceWindowStart")] + public Input? WeeklyMaintenanceWindowStart { get; set; } + + public MlflowTrackingServerArgs() + { + } + public static new MlflowTrackingServerArgs Empty => new MlflowTrackingServerArgs(); + } + + public sealed class MlflowTrackingServerState : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + /// + [Input("artifactStoreUri")] + public Input? ArtifactStoreUri { get; set; } + + /// + /// A list of Member Definitions that contains objects that identify the workers that make up the work team. + /// + [Input("automaticModelRegistration")] + public Input? AutomaticModelRegistration { get; set; } + + /// + /// The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + /// + [Input("mlflowVersion")] + public Input? MlflowVersion { get; set; } + + /// + /// The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + /// + /// A unique string identifying the tracking server name. This string is part of the tracking server ARN. + /// + [Input("trackingServerName")] + public Input? TrackingServerName { get; set; } + + /// + /// The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + /// + [Input("trackingServerSize")] + public Input? TrackingServerSize { get; set; } + + /// + /// The URL to connect to the MLflow user interface for the described tracking server. + /// + [Input("trackingServerUrl")] + public Input? TrackingServerUrl { get; set; } + + /// + /// The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + /// + [Input("weeklyMaintenanceWindowStart")] + public Input? WeeklyMaintenanceWindowStart { get; set; } + + public MlflowTrackingServerState() + { + } + public static new MlflowTrackingServerState Empty => new MlflowTrackingServerState(); + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettings.cs index a581f757e50..b7ff31f5b05 100644 --- a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettings.cs @@ -13,6 +13,14 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettings { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + public readonly Outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement? AppLifecycleManagement; + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + public readonly string? BuiltInLifecycleConfigArn; /// /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. /// @@ -26,23 +34,36 @@ public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettings /// public readonly Outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec? DefaultResourceSpec; /// + /// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + /// + public readonly Outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings? EmrSettings; + /// /// The Amazon Resource Name (ARN) of the Lifecycle Configurations. /// public readonly ImmutableArray LifecycleConfigArns; [OutputConstructor] private DomainDefaultSpaceSettingsJupyterLabAppSettings( + Outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement? appLifecycleManagement, + + string? builtInLifecycleConfigArn, + ImmutableArray codeRepositories, ImmutableArray customImages, Outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec? defaultResourceSpec, + Outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings? emrSettings, + ImmutableArray lifecycleConfigArns) { + AppLifecycleManagement = appLifecycleManagement; + BuiltInLifecycleConfigArn = builtInLifecycleConfigArn; CodeRepositories = codeRepositories; CustomImages = customImages; DefaultResourceSpec = defaultResourceSpec; + EmrSettings = emrSettings; LifecycleConfigArns = lifecycleConfigArns; } } diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.cs new file mode 100644 index 00000000000..b1d62bfd906 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + public readonly Outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings? IdleSettings; + + [OutputConstructor] + private DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement(Outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings? idleSettings) + { + IdleSettings = idleSettings; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs new file mode 100644 index 00000000000..70f7f9e8afb --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs @@ -0,0 +1,49 @@ +// *** 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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + public readonly int? IdleTimeoutInMinutes; + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + public readonly string? LifecycleManagement; + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + public readonly int? MaxIdleTimeoutInMinutes; + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + public readonly int? MinIdleTimeoutInMinutes; + + [OutputConstructor] + private DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings( + int? idleTimeoutInMinutes, + + string? lifecycleManagement, + + int? maxIdleTimeoutInMinutes, + + int? minIdleTimeoutInMinutes) + { + IdleTimeoutInMinutes = idleTimeoutInMinutes; + LifecycleManagement = lifecycleManagement; + MaxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + MinIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings.cs new file mode 100644 index 00000000000..11ce2895081 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings + { + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + /// + public readonly ImmutableArray AssumableRoleArns; + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + /// + public readonly ImmutableArray ExecutionRoleArns; + + [OutputConstructor] + private DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings( + ImmutableArray assumableRoleArns, + + ImmutableArray executionRoleArns) + { + AssumableRoleArns = assumableRoleArns; + ExecutionRoleArns = executionRoleArns; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettings.cs index 80d6ca87162..8bfb8f766c7 100644 --- a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettings.cs @@ -13,6 +13,10 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class DomainDefaultUserSettings { + /// + /// Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + /// + public readonly string? AutoMountHomeEfs; /// /// The Canvas app settings. See `canvas_app_settings` Block below. /// @@ -84,6 +88,8 @@ public sealed class DomainDefaultUserSettings [OutputConstructor] private DomainDefaultUserSettings( + string? autoMountHomeEfs, + Outputs.DomainDefaultUserSettingsCanvasAppSettings? canvasAppSettings, Outputs.DomainDefaultUserSettingsCodeEditorAppSettings? codeEditorAppSettings, @@ -118,6 +124,7 @@ private DomainDefaultUserSettings( Outputs.DomainDefaultUserSettingsTensorBoardAppSettings? tensorBoardAppSettings) { + AutoMountHomeEfs = autoMountHomeEfs; CanvasAppSettings = canvasAppSettings; CodeEditorAppSettings = codeEditorAppSettings; CustomFileSystemConfigs = customFileSystemConfigs; diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCanvasAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCanvasAppSettings.cs index 278119f6da2..28d4a2c005a 100644 --- a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCanvasAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCanvasAppSettings.cs @@ -17,6 +17,10 @@ public sealed class DomainDefaultUserSettingsCanvasAppSettings /// The model deployment settings for the SageMaker Canvas application. See `direct_deploy_settings` Block below. /// public readonly Outputs.DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings? DirectDeploySettings; + /// + /// The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + /// + public readonly Outputs.DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings? EmrServerlessSettings; public readonly Outputs.DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings? GenerativeAiSettings; /// /// The settings for connecting to an external data source with OAuth. See `identity_provider_oauth_settings` Block below. @@ -43,6 +47,8 @@ public sealed class DomainDefaultUserSettingsCanvasAppSettings private DomainDefaultUserSettingsCanvasAppSettings( Outputs.DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings? directDeploySettings, + Outputs.DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings? emrServerlessSettings, + Outputs.DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings? generativeAiSettings, ImmutableArray identityProviderOauthSettings, @@ -56,6 +62,7 @@ private DomainDefaultUserSettingsCanvasAppSettings( Outputs.DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettings? workspaceSettings) { DirectDeploySettings = directDeploySettings; + EmrServerlessSettings = emrServerlessSettings; GenerativeAiSettings = generativeAiSettings; IdentityProviderOauthSettings = identityProviderOauthSettings; KendraSettings = kendraSettings; diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings.cs new file mode 100644 index 00000000000..5c72e9d55db --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings + { + /// + /// The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + /// + public readonly string? ExecutionRoleArn; + /// + /// Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + /// + public readonly string? Status; + + [OutputConstructor] + private DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings( + string? executionRoleArn, + + string? status) + { + ExecutionRoleArn = executionRoleArn; + Status = status; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCodeEditorAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCodeEditorAppSettings.cs index be5eb981b88..f043239065b 100644 --- a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCodeEditorAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCodeEditorAppSettings.cs @@ -13,6 +13,14 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class DomainDefaultUserSettingsCodeEditorAppSettings { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + public readonly Outputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement? AppLifecycleManagement; + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + public readonly string? BuiltInLifecycleConfigArn; /// /// A list of custom SageMaker images that are configured to run as a CodeEditor app. see `custom_image` Block below. /// @@ -28,12 +36,18 @@ public sealed class DomainDefaultUserSettingsCodeEditorAppSettings [OutputConstructor] private DomainDefaultUserSettingsCodeEditorAppSettings( + Outputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement? appLifecycleManagement, + + string? builtInLifecycleConfigArn, + ImmutableArray customImages, Outputs.DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpec? defaultResourceSpec, ImmutableArray lifecycleConfigArns) { + AppLifecycleManagement = appLifecycleManagement; + BuiltInLifecycleConfigArn = builtInLifecycleConfigArn; CustomImages = customImages; DefaultResourceSpec = defaultResourceSpec; LifecycleConfigArns = lifecycleConfigArns; diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement.cs new file mode 100644 index 00000000000..bb14ebd7f12 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + public readonly Outputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings? IdleSettings; + + [OutputConstructor] + private DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement(Outputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings? idleSettings) + { + IdleSettings = idleSettings; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.cs new file mode 100644 index 00000000000..4c8e8ab2d10 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.cs @@ -0,0 +1,49 @@ +// *** 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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + public readonly int? IdleTimeoutInMinutes; + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + public readonly string? LifecycleManagement; + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + public readonly int? MaxIdleTimeoutInMinutes; + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + public readonly int? MinIdleTimeoutInMinutes; + + [OutputConstructor] + private DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings( + int? idleTimeoutInMinutes, + + string? lifecycleManagement, + + int? maxIdleTimeoutInMinutes, + + int? minIdleTimeoutInMinutes) + { + IdleTimeoutInMinutes = idleTimeoutInMinutes; + LifecycleManagement = lifecycleManagement; + MaxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + MinIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettings.cs index 7721ff26520..ce6335e69b4 100644 --- a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettings.cs @@ -13,6 +13,14 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class DomainDefaultUserSettingsJupyterLabAppSettings { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + public readonly Outputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement? AppLifecycleManagement; + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + public readonly string? BuiltInLifecycleConfigArn; /// /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. /// @@ -26,23 +34,36 @@ public sealed class DomainDefaultUserSettingsJupyterLabAppSettings /// public readonly Outputs.DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec? DefaultResourceSpec; /// + /// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + /// + public readonly Outputs.DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings? EmrSettings; + /// /// The Amazon Resource Name (ARN) of the Lifecycle Configurations. /// public readonly ImmutableArray LifecycleConfigArns; [OutputConstructor] private DomainDefaultUserSettingsJupyterLabAppSettings( + Outputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement? appLifecycleManagement, + + string? builtInLifecycleConfigArn, + ImmutableArray codeRepositories, ImmutableArray customImages, Outputs.DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec? defaultResourceSpec, + Outputs.DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings? emrSettings, + ImmutableArray lifecycleConfigArns) { + AppLifecycleManagement = appLifecycleManagement; + BuiltInLifecycleConfigArn = builtInLifecycleConfigArn; CodeRepositories = codeRepositories; CustomImages = customImages; DefaultResourceSpec = defaultResourceSpec; + EmrSettings = emrSettings; LifecycleConfigArns = lifecycleConfigArns; } } diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement.cs new file mode 100644 index 00000000000..7f5296a79d6 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + public readonly Outputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings? IdleSettings; + + [OutputConstructor] + private DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement(Outputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings? idleSettings) + { + IdleSettings = idleSettings; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs new file mode 100644 index 00000000000..aa909da49b4 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs @@ -0,0 +1,49 @@ +// *** 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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + public readonly int? IdleTimeoutInMinutes; + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + public readonly string? LifecycleManagement; + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + public readonly int? MaxIdleTimeoutInMinutes; + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + public readonly int? MinIdleTimeoutInMinutes; + + [OutputConstructor] + private DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings( + int? idleTimeoutInMinutes, + + string? lifecycleManagement, + + int? maxIdleTimeoutInMinutes, + + int? minIdleTimeoutInMinutes) + { + IdleTimeoutInMinutes = idleTimeoutInMinutes; + LifecycleManagement = lifecycleManagement; + MaxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + MinIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings.cs new file mode 100644 index 00000000000..c9236d13884 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings + { + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + /// + public readonly ImmutableArray AssumableRoleArns; + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + /// + public readonly ImmutableArray ExecutionRoleArns; + + [OutputConstructor] + private DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings( + ImmutableArray assumableRoleArns, + + ImmutableArray executionRoleArns) + { + AssumableRoleArns = assumableRoleArns; + ExecutionRoleArns = executionRoleArns; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsStudioWebPortalSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsStudioWebPortalSettings.cs index 8530cfd9c68..b8f55fe0ffb 100644 --- a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsStudioWebPortalSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsStudioWebPortalSettings.cs @@ -18,6 +18,10 @@ public sealed class DomainDefaultUserSettingsStudioWebPortalSettings /// public readonly ImmutableArray HiddenAppTypes; /// + /// The instance types you are hiding from the Studio user interface. + /// + public readonly ImmutableArray HiddenInstanceTypes; + /// /// The machine learning tools that are hidden from the Studio left navigation pane. /// public readonly ImmutableArray HiddenMlTools; @@ -26,9 +30,12 @@ public sealed class DomainDefaultUserSettingsStudioWebPortalSettings private DomainDefaultUserSettingsStudioWebPortalSettings( ImmutableArray hiddenAppTypes, + ImmutableArray hiddenInstanceTypes, + ImmutableArray hiddenMlTools) { HiddenAppTypes = hiddenAppTypes; + HiddenInstanceTypes = hiddenInstanceTypes; HiddenMlTools = hiddenMlTools; } } diff --git a/sdk/dotnet/Sagemaker/Outputs/FeatureGroupFeatureDefinition.cs b/sdk/dotnet/Sagemaker/Outputs/FeatureGroupFeatureDefinition.cs index a7694ccf2b9..0cbd6adc79b 100644 --- a/sdk/dotnet/Sagemaker/Outputs/FeatureGroupFeatureDefinition.cs +++ b/sdk/dotnet/Sagemaker/Outputs/FeatureGroupFeatureDefinition.cs @@ -13,6 +13,8 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class FeatureGroupFeatureDefinition { + public readonly Outputs.FeatureGroupFeatureDefinitionCollectionConfig? CollectionConfig; + public readonly string? CollectionType; /// /// The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. /// @@ -24,10 +26,16 @@ public sealed class FeatureGroupFeatureDefinition [OutputConstructor] private FeatureGroupFeatureDefinition( + Outputs.FeatureGroupFeatureDefinitionCollectionConfig? collectionConfig, + + string? collectionType, + string? featureName, string? featureType) { + CollectionConfig = collectionConfig; + CollectionType = collectionType; FeatureName = featureName; FeatureType = featureType; } diff --git a/sdk/dotnet/Sagemaker/Outputs/FeatureGroupFeatureDefinitionCollectionConfig.cs b/sdk/dotnet/Sagemaker/Outputs/FeatureGroupFeatureDefinitionCollectionConfig.cs new file mode 100644 index 00000000000..98ef97cd751 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/FeatureGroupFeatureDefinitionCollectionConfig.cs @@ -0,0 +1,24 @@ +// *** 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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class FeatureGroupFeatureDefinitionCollectionConfig + { + public readonly Outputs.FeatureGroupFeatureDefinitionCollectionConfigVectorConfig? VectorConfig; + + [OutputConstructor] + private FeatureGroupFeatureDefinitionCollectionConfig(Outputs.FeatureGroupFeatureDefinitionCollectionConfigVectorConfig? vectorConfig) + { + VectorConfig = vectorConfig; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfig.cs b/sdk/dotnet/Sagemaker/Outputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfig.cs new file mode 100644 index 00000000000..1c77e67bae2 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfig.cs @@ -0,0 +1,24 @@ +// *** 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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class FeatureGroupFeatureDefinitionCollectionConfigVectorConfig + { + public readonly int? Dimension; + + [OutputConstructor] + private FeatureGroupFeatureDefinitionCollectionConfigVectorConfig(int? dimension) + { + Dimension = dimension; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/FeatureGroupThroughputConfig.cs b/sdk/dotnet/Sagemaker/Outputs/FeatureGroupThroughputConfig.cs new file mode 100644 index 00000000000..f7fb4782599 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/FeatureGroupThroughputConfig.cs @@ -0,0 +1,33 @@ +// *** 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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class FeatureGroupThroughputConfig + { + public readonly int? ProvisionedReadCapacityUnits; + public readonly int? ProvisionedWriteCapacityUnits; + public readonly string? ThroughputMode; + + [OutputConstructor] + private FeatureGroupThroughputConfig( + int? provisionedReadCapacityUnits, + + int? provisionedWriteCapacityUnits, + + string? throughputMode) + { + ProvisionedReadCapacityUnits = provisionedReadCapacityUnits; + ProvisionedWriteCapacityUnits = provisionedWriteCapacityUnits; + ThroughputMode = throughputMode; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/HubS3StorageConfig.cs b/sdk/dotnet/Sagemaker/Outputs/HubS3StorageConfig.cs new file mode 100644 index 00000000000..1377726b922 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/HubS3StorageConfig.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class HubS3StorageConfig + { + /// + /// The Amazon S3 bucket prefix for hosting hub content.interface. + /// + public readonly string? S3OutputPath; + + [OutputConstructor] + private HubS3StorageConfig(string? s3OutputPath) + { + S3OutputPath = s3OutputPath; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettings.cs index 066fb598d75..f3e98beac97 100644 --- a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettings.cs @@ -13,14 +13,22 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class SpaceSpaceSettingsCodeEditorAppSettings { + /// + /// Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + /// + public readonly Outputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement? AppLifecycleManagement; /// /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. /// public readonly Outputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec DefaultResourceSpec; [OutputConstructor] - private SpaceSpaceSettingsCodeEditorAppSettings(Outputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec defaultResourceSpec) + private SpaceSpaceSettingsCodeEditorAppSettings( + Outputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement? appLifecycleManagement, + + Outputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec defaultResourceSpec) { + AppLifecycleManagement = appLifecycleManagement; DefaultResourceSpec = defaultResourceSpec; } } diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement.cs new file mode 100644 index 00000000000..2071e7d7afe --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement + { + /// + /// Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + /// + public readonly Outputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings? IdleSettings; + + [OutputConstructor] + private SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement(Outputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings? idleSettings) + { + IdleSettings = idleSettings; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.cs new file mode 100644 index 00000000000..14e882f73b2 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + public readonly int? IdleTimeoutInMinutes; + + [OutputConstructor] + private SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings(int? idleTimeoutInMinutes) + { + IdleTimeoutInMinutes = idleTimeoutInMinutes; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettings.cs index 4f6b3f3f76e..429c83b73dc 100644 --- a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettings.cs @@ -13,6 +13,10 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class SpaceSpaceSettingsJupyterLabAppSettings { + /// + /// Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + /// + public readonly Outputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement? AppLifecycleManagement; /// /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. /// @@ -24,10 +28,13 @@ public sealed class SpaceSpaceSettingsJupyterLabAppSettings [OutputConstructor] private SpaceSpaceSettingsJupyterLabAppSettings( + Outputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement? appLifecycleManagement, + ImmutableArray codeRepositories, Outputs.SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec) { + AppLifecycleManagement = appLifecycleManagement; CodeRepositories = codeRepositories; DefaultResourceSpec = defaultResourceSpec; } diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.cs new file mode 100644 index 00000000000..f10b429295a --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement + { + /// + /// Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + /// + public readonly Outputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings? IdleSettings; + + [OutputConstructor] + private SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement(Outputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings? idleSettings) + { + IdleSettings = idleSettings; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs new file mode 100644 index 00000000000..fe372ab310a --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + public readonly int? IdleTimeoutInMinutes; + + [OutputConstructor] + private SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings(int? idleTimeoutInMinutes) + { + IdleTimeoutInMinutes = idleTimeoutInMinutes; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettings.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettings.cs index 6c45e50e3ba..1d0845bab39 100644 --- a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettings.cs @@ -13,6 +13,10 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class UserProfileUserSettings { + /// + /// Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + /// + public readonly string? AutoMountHomeEfs; /// /// The Canvas app settings. See Canvas App Settings below. /// @@ -84,6 +88,8 @@ public sealed class UserProfileUserSettings [OutputConstructor] private UserProfileUserSettings( + string? autoMountHomeEfs, + Outputs.UserProfileUserSettingsCanvasAppSettings? canvasAppSettings, Outputs.UserProfileUserSettingsCodeEditorAppSettings? codeEditorAppSettings, @@ -118,6 +124,7 @@ private UserProfileUserSettings( Outputs.UserProfileUserSettingsTensorBoardAppSettings? tensorBoardAppSettings) { + AutoMountHomeEfs = autoMountHomeEfs; CanvasAppSettings = canvasAppSettings; CodeEditorAppSettings = codeEditorAppSettings; CustomFileSystemConfigs = customFileSystemConfigs; diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCanvasAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCanvasAppSettings.cs index ede5a6e533e..8565c21ab1c 100644 --- a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCanvasAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCanvasAppSettings.cs @@ -17,6 +17,10 @@ public sealed class UserProfileUserSettingsCanvasAppSettings /// The model deployment settings for the SageMaker Canvas application. See Direct Deploy Settings below. /// public readonly Outputs.UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings? DirectDeploySettings; + /// + /// The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + /// + public readonly Outputs.UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings? EmrServerlessSettings; public readonly Outputs.UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings? GenerativeAiSettings; /// /// The settings for connecting to an external data source with OAuth. See Identity Provider OAuth Settings below. @@ -43,6 +47,8 @@ public sealed class UserProfileUserSettingsCanvasAppSettings private UserProfileUserSettingsCanvasAppSettings( Outputs.UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings? directDeploySettings, + Outputs.UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings? emrServerlessSettings, + Outputs.UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings? generativeAiSettings, ImmutableArray identityProviderOauthSettings, @@ -56,6 +62,7 @@ private UserProfileUserSettingsCanvasAppSettings( Outputs.UserProfileUserSettingsCanvasAppSettingsWorkspaceSettings? workspaceSettings) { DirectDeploySettings = directDeploySettings; + EmrServerlessSettings = emrServerlessSettings; GenerativeAiSettings = generativeAiSettings; IdentityProviderOauthSettings = identityProviderOauthSettings; KendraSettings = kendraSettings; diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings.cs new file mode 100644 index 00000000000..7b24cb60a42 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings + { + /// + /// The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + /// + public readonly string? ExecutionRoleArn; + /// + /// Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + /// + public readonly string? Status; + + [OutputConstructor] + private UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings( + string? executionRoleArn, + + string? status) + { + ExecutionRoleArn = executionRoleArn; + Status = status; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCodeEditorAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCodeEditorAppSettings.cs index db7c2fabd39..626f6a787d2 100644 --- a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCodeEditorAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCodeEditorAppSettings.cs @@ -13,6 +13,14 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class UserProfileUserSettingsCodeEditorAppSettings { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + public readonly Outputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement? AppLifecycleManagement; + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + public readonly string? BuiltInLifecycleConfigArn; /// /// A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. /// @@ -28,12 +36,18 @@ public sealed class UserProfileUserSettingsCodeEditorAppSettings [OutputConstructor] private UserProfileUserSettingsCodeEditorAppSettings( + Outputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement? appLifecycleManagement, + + string? builtInLifecycleConfigArn, + ImmutableArray customImages, Outputs.UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpec? defaultResourceSpec, ImmutableArray lifecycleConfigArns) { + AppLifecycleManagement = appLifecycleManagement; + BuiltInLifecycleConfigArn = builtInLifecycleConfigArn; CustomImages = customImages; DefaultResourceSpec = defaultResourceSpec; LifecycleConfigArns = lifecycleConfigArns; diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement.cs new file mode 100644 index 00000000000..263f9bdf303 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + public readonly Outputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings? IdleSettings; + + [OutputConstructor] + private UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement(Outputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings? idleSettings) + { + IdleSettings = idleSettings; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.cs new file mode 100644 index 00000000000..1e0a21f44c4 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.cs @@ -0,0 +1,49 @@ +// *** 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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + public readonly int? IdleTimeoutInMinutes; + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + public readonly string? LifecycleManagement; + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + public readonly int? MaxIdleTimeoutInMinutes; + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + public readonly int? MinIdleTimeoutInMinutes; + + [OutputConstructor] + private UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings( + int? idleTimeoutInMinutes, + + string? lifecycleManagement, + + int? maxIdleTimeoutInMinutes, + + int? minIdleTimeoutInMinutes) + { + IdleTimeoutInMinutes = idleTimeoutInMinutes; + LifecycleManagement = lifecycleManagement; + MaxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + MinIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettings.cs index d4829891ec7..e4287355c00 100644 --- a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettings.cs @@ -13,6 +13,14 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class UserProfileUserSettingsJupyterLabAppSettings { + /// + /// Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + /// + public readonly Outputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement? AppLifecycleManagement; + /// + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + /// + public readonly string? BuiltInLifecycleConfigArn; /// /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. /// @@ -23,23 +31,36 @@ public sealed class UserProfileUserSettingsJupyterLabAppSettings /// public readonly Outputs.UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec? DefaultResourceSpec; /// + /// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + /// + public readonly Outputs.UserProfileUserSettingsJupyterLabAppSettingsEmrSettings? EmrSettings; + /// /// The Amazon Resource Name (ARN) of the Lifecycle Configurations. /// public readonly ImmutableArray LifecycleConfigArns; [OutputConstructor] private UserProfileUserSettingsJupyterLabAppSettings( + Outputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement? appLifecycleManagement, + + string? builtInLifecycleConfigArn, + ImmutableArray codeRepositories, ImmutableArray customImages, Outputs.UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec? defaultResourceSpec, + Outputs.UserProfileUserSettingsJupyterLabAppSettingsEmrSettings? emrSettings, + ImmutableArray lifecycleConfigArns) { + AppLifecycleManagement = appLifecycleManagement; + BuiltInLifecycleConfigArn = builtInLifecycleConfigArn; CodeRepositories = codeRepositories; CustomImages = customImages; DefaultResourceSpec = defaultResourceSpec; + EmrSettings = emrSettings; LifecycleConfigArns = lifecycleConfigArns; } } diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement.cs new file mode 100644 index 00000000000..5f31ce7110c --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement + { + /// + /// Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + /// + public readonly Outputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings? IdleSettings; + + [OutputConstructor] + private UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement(Outputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings? idleSettings) + { + IdleSettings = idleSettings; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs new file mode 100644 index 00000000000..26efdb116c2 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.cs @@ -0,0 +1,49 @@ +// *** 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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings + { + /// + /// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + /// + public readonly int? IdleTimeoutInMinutes; + /// + /// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + /// + public readonly string? LifecycleManagement; + /// + /// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + public readonly int? MaxIdleTimeoutInMinutes; + /// + /// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + /// + public readonly int? MinIdleTimeoutInMinutes; + + [OutputConstructor] + private UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings( + int? idleTimeoutInMinutes, + + string? lifecycleManagement, + + int? maxIdleTimeoutInMinutes, + + int? minIdleTimeoutInMinutes) + { + IdleTimeoutInMinutes = idleTimeoutInMinutes; + LifecycleManagement = lifecycleManagement; + MaxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + MinIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettings.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettings.cs new file mode 100644 index 00000000000..1a8195b0dbb --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettings.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class UserProfileUserSettingsJupyterLabAppSettingsEmrSettings + { + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + /// + public readonly ImmutableArray AssumableRoleArns; + /// + /// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + /// + public readonly ImmutableArray ExecutionRoleArns; + + [OutputConstructor] + private UserProfileUserSettingsJupyterLabAppSettingsEmrSettings( + ImmutableArray assumableRoleArns, + + ImmutableArray executionRoleArns) + { + AssumableRoleArns = assumableRoleArns; + ExecutionRoleArns = executionRoleArns; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsStudioWebPortalSettings.cs b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsStudioWebPortalSettings.cs index 320c7be8501..0a5e871f7f9 100644 --- a/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsStudioWebPortalSettings.cs +++ b/sdk/dotnet/Sagemaker/Outputs/UserProfileUserSettingsStudioWebPortalSettings.cs @@ -18,6 +18,10 @@ public sealed class UserProfileUserSettingsStudioWebPortalSettings /// public readonly ImmutableArray HiddenAppTypes; /// + /// The instance types you are hiding from the Studio user interface. + /// + public readonly ImmutableArray HiddenInstanceTypes; + /// /// The machine learning tools that are hidden from the Studio left navigation pane. /// public readonly ImmutableArray HiddenMlTools; @@ -26,9 +30,12 @@ public sealed class UserProfileUserSettingsStudioWebPortalSettings private UserProfileUserSettingsStudioWebPortalSettings( ImmutableArray hiddenAppTypes, + ImmutableArray hiddenInstanceTypes, + ImmutableArray hiddenMlTools) { HiddenAppTypes = hiddenAppTypes; + HiddenInstanceTypes = hiddenInstanceTypes; HiddenMlTools = hiddenMlTools; } } diff --git a/sdk/dotnet/SecurityHub/StandardsSubscription.cs b/sdk/dotnet/SecurityHub/StandardsSubscription.cs index 0a6d5d83738..45b5f648ddb 100644 --- a/sdk/dotnet/SecurityHub/StandardsSubscription.cs +++ b/sdk/dotnet/SecurityHub/StandardsSubscription.cs @@ -79,6 +79,7 @@ public partial class StandardsSubscription : global::Pulumi.CustomResource /// | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | /// | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | /// | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + /// | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | /// | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | /// | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | /// @@ -142,6 +143,7 @@ public sealed class StandardsSubscriptionArgs : global::Pulumi.ResourceArgs /// | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | /// | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | /// | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + /// | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | /// | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | /// | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | /// @@ -167,6 +169,7 @@ public sealed class StandardsSubscriptionState : global::Pulumi.ResourceArgs /// | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | /// | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | /// | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + /// | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | /// | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | /// | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | /// diff --git a/sdk/dotnet/Ssm/GetPatchBaselines.cs b/sdk/dotnet/Ssm/GetPatchBaselines.cs new file mode 100644 index 00000000000..e13c38cf1fc --- /dev/null +++ b/sdk/dotnet/Ssm/GetPatchBaselines.cs @@ -0,0 +1,217 @@ +// *** 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.Ssm +{ + public static class GetPatchBaselines + { + /// + /// Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.Ssm.GetPatchBaselines.Invoke(); + /// + /// }); + /// ``` + /// + /// ### With Filters + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.Ssm.GetPatchBaselines.Invoke(new() + /// { + /// Filters = new[] + /// { + /// new Aws.Ssm.Inputs.GetPatchBaselinesFilterInputArgs + /// { + /// Key = "OWNER", + /// Values = new[] + /// { + /// "AWS", + /// }, + /// }, + /// new Aws.Ssm.Inputs.GetPatchBaselinesFilterInputArgs + /// { + /// Key = "OPERATING_SYSTEM", + /// Values = new[] + /// { + /// "WINDOWS", + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetPatchBaselinesArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws:ssm/getPatchBaselines:getPatchBaselines", args ?? new GetPatchBaselinesArgs(), options.WithDefaults()); + + /// + /// Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.Ssm.GetPatchBaselines.Invoke(); + /// + /// }); + /// ``` + /// + /// ### With Filters + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.Ssm.GetPatchBaselines.Invoke(new() + /// { + /// Filters = new[] + /// { + /// new Aws.Ssm.Inputs.GetPatchBaselinesFilterInputArgs + /// { + /// Key = "OWNER", + /// Values = new[] + /// { + /// "AWS", + /// }, + /// }, + /// new Aws.Ssm.Inputs.GetPatchBaselinesFilterInputArgs + /// { + /// Key = "OPERATING_SYSTEM", + /// Values = new[] + /// { + /// "WINDOWS", + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetPatchBaselinesInvokeArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws:ssm/getPatchBaselines:getPatchBaselines", args ?? new GetPatchBaselinesInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetPatchBaselinesArgs : global::Pulumi.InvokeArgs + { + /// + /// Only return baseline identities where `default_baseline` is `true`. + /// + [Input("defaultBaselines")] + public bool? DefaultBaselines { get; set; } + + [Input("filters")] + private List? _filters; + + /// + /// Key-value pairs used to filter the results. See `filter` below. + /// + public List Filters + { + get => _filters ?? (_filters = new List()); + set => _filters = value; + } + + public GetPatchBaselinesArgs() + { + } + public static new GetPatchBaselinesArgs Empty => new GetPatchBaselinesArgs(); + } + + public sealed class GetPatchBaselinesInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Only return baseline identities where `default_baseline` is `true`. + /// + [Input("defaultBaselines")] + public Input? DefaultBaselines { get; set; } + + [Input("filters")] + private InputList? _filters; + + /// + /// Key-value pairs used to filter the results. See `filter` below. + /// + public InputList Filters + { + get => _filters ?? (_filters = new InputList()); + set => _filters = value; + } + + public GetPatchBaselinesInvokeArgs() + { + } + public static new GetPatchBaselinesInvokeArgs Empty => new GetPatchBaselinesInvokeArgs(); + } + + + [OutputType] + public sealed class GetPatchBaselinesResult + { + /// + /// List of baseline identities. See `baseline_identities` below. + /// + public readonly ImmutableArray BaselineIdentities; + public readonly bool? DefaultBaselines; + public readonly ImmutableArray Filters; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + + [OutputConstructor] + private GetPatchBaselinesResult( + ImmutableArray baselineIdentities, + + bool? defaultBaselines, + + ImmutableArray filters, + + string id) + { + BaselineIdentities = baselineIdentities; + DefaultBaselines = defaultBaselines; + Filters = filters; + Id = id; + } + } +} diff --git a/sdk/dotnet/Ssm/Inputs/GetPatchBaselinesFilter.cs b/sdk/dotnet/Ssm/Inputs/GetPatchBaselinesFilter.cs new file mode 100644 index 00000000000..88346c48d28 --- /dev/null +++ b/sdk/dotnet/Ssm/Inputs/GetPatchBaselinesFilter.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.Ssm.Inputs +{ + + public sealed class GetPatchBaselinesFilterArgs : global::Pulumi.InvokeArgs + { + /// + /// Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + /// + [Input("key", required: true)] + public string Key { get; set; } = null!; + + [Input("values", required: true)] + private List? _values; + + /// + /// Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + /// + public List Values + { + get => _values ?? (_values = new List()); + set => _values = value; + } + + public GetPatchBaselinesFilterArgs() + { + } + public static new GetPatchBaselinesFilterArgs Empty => new GetPatchBaselinesFilterArgs(); + } +} diff --git a/sdk/dotnet/Ssm/Inputs/GetPatchBaselinesFilterArgs.cs b/sdk/dotnet/Ssm/Inputs/GetPatchBaselinesFilterArgs.cs new file mode 100644 index 00000000000..c37a81a851d --- /dev/null +++ b/sdk/dotnet/Ssm/Inputs/GetPatchBaselinesFilterArgs.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.Ssm.Inputs +{ + + public sealed class GetPatchBaselinesFilterInputArgs : global::Pulumi.ResourceArgs + { + /// + /// Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + [Input("values", required: true)] + private InputList? _values; + + /// + /// Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + /// + public InputList Values + { + get => _values ?? (_values = new InputList()); + set => _values = value; + } + + public GetPatchBaselinesFilterInputArgs() + { + } + public static new GetPatchBaselinesFilterInputArgs Empty => new GetPatchBaselinesFilterInputArgs(); + } +} diff --git a/sdk/dotnet/Ssm/Outputs/GetPatchBaselinesBaselineIdentityResult.cs b/sdk/dotnet/Ssm/Outputs/GetPatchBaselinesBaselineIdentityResult.cs new file mode 100644 index 00000000000..87682ad86d6 --- /dev/null +++ b/sdk/dotnet/Ssm/Outputs/GetPatchBaselinesBaselineIdentityResult.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Ssm.Outputs +{ + + [OutputType] + public sealed class GetPatchBaselinesBaselineIdentityResult + { + /// + /// Description of the patch baseline. + /// + public readonly string BaselineDescription; + /// + /// ID of the patch baseline. + /// + public readonly string BaselineId; + /// + /// Name of the patch baseline. + /// + public readonly string BaselineName; + /// + /// Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. + /// + public readonly bool DefaultBaseline; + /// + /// Operating system the patch baseline applies to. + /// + public readonly string OperatingSystem; + + [OutputConstructor] + private GetPatchBaselinesBaselineIdentityResult( + string baselineDescription, + + string baselineId, + + string baselineName, + + bool defaultBaseline, + + string operatingSystem) + { + BaselineDescription = baselineDescription; + BaselineId = baselineId; + BaselineName = baselineName; + DefaultBaseline = defaultBaseline; + OperatingSystem = operatingSystem; + } + } +} diff --git a/sdk/dotnet/Ssm/Outputs/GetPatchBaselinesFilterResult.cs b/sdk/dotnet/Ssm/Outputs/GetPatchBaselinesFilterResult.cs new file mode 100644 index 00000000000..dac08ac1be3 --- /dev/null +++ b/sdk/dotnet/Ssm/Outputs/GetPatchBaselinesFilterResult.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.Ssm.Outputs +{ + + [OutputType] + public sealed class GetPatchBaselinesFilterResult + { + /// + /// Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + /// + public readonly string Key; + /// + /// Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + /// + public readonly ImmutableArray Values; + + [OutputConstructor] + private GetPatchBaselinesFilterResult( + string key, + + ImmutableArray values) + { + Key = key; + Values = values; + } + } +} diff --git a/sdk/dotnet/VerifiedAccess/Group.cs b/sdk/dotnet/VerifiedAccess/Group.cs index 91b69e83474..d3c965e221d 100644 --- a/sdk/dotnet/VerifiedAccess/Group.cs +++ b/sdk/dotnet/VerifiedAccess/Group.cs @@ -31,6 +31,33 @@ namespace Pulumi.Aws.VerifiedAccess /// /// }); /// ``` + /// + /// ### Usage with KMS Key + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var testKey = new Aws.Kms.Key("test_key", new() + /// { + /// Description = "KMS key for Verified Access Group test", + /// }); + /// + /// var test = new Aws.VerifiedAccess.Group("test", new() + /// { + /// VerifiedaccessInstanceId = testAwsVerifiedaccessInstanceTrustProviderAttachment.VerifiedaccessInstanceId, + /// SseConfiguration = new Aws.VerifiedAccess.Inputs.GroupSseConfigurationArgs + /// { + /// KmsKeyArn = testKey.Arn, + /// }, + /// }); + /// + /// }); + /// ``` /// [AwsResourceType("aws:verifiedaccess/group:Group")] public partial class Group : global::Pulumi.CustomResource diff --git a/sdk/go/aws/alb/getLoadBalancer.go b/sdk/go/aws/alb/getLoadBalancer.go index 31cbb48f183..59ac8ea1777 100644 --- a/sdk/go/aws/alb/getLoadBalancer.go +++ b/sdk/go/aws/alb/getLoadBalancer.go @@ -95,6 +95,7 @@ type LookupLoadBalancerResult struct { EnableTlsVersionAndCipherSuiteHeaders bool `pulumi:"enableTlsVersionAndCipherSuiteHeaders"` EnableWafFailOpen bool `pulumi:"enableWafFailOpen"` EnableXffClientPort bool `pulumi:"enableXffClientPort"` + EnableZonalShift bool `pulumi:"enableZonalShift"` EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic string `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` @@ -227,6 +228,10 @@ func (o LookupLoadBalancerResultOutput) EnableXffClientPort() pulumi.BoolOutput return o.ApplyT(func(v LookupLoadBalancerResult) bool { return v.EnableXffClientPort }).(pulumi.BoolOutput) } +func (o LookupLoadBalancerResultOutput) EnableZonalShift() pulumi.BoolOutput { + return o.ApplyT(func(v LookupLoadBalancerResult) bool { return v.EnableZonalShift }).(pulumi.BoolOutput) +} + func (o LookupLoadBalancerResultOutput) EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic() pulumi.StringOutput { return o.ApplyT(func(v LookupLoadBalancerResult) string { return v.EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/alb/listener.go b/sdk/go/aws/alb/listener.go index dd4ecd1e172..8574b4b69eb 100644 --- a/sdk/go/aws/alb/listener.go +++ b/sdk/go/aws/alb/listener.go @@ -438,6 +438,8 @@ type Listener struct { // // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + TcpIdleTimeoutSeconds pulumi.IntPtrOutput `pulumi:"tcpIdleTimeoutSeconds"` } // NewListener registers a new resource with the given unique name, arguments, and options. @@ -508,6 +510,8 @@ type listenerState struct { // // Deprecated: Please use `tags` instead. TagsAll map[string]string `pulumi:"tagsAll"` + // TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + TcpIdleTimeoutSeconds *int `pulumi:"tcpIdleTimeoutSeconds"` } type ListenerState struct { @@ -537,6 +541,8 @@ type ListenerState struct { // // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapInput + // TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + TcpIdleTimeoutSeconds pulumi.IntPtrInput } func (ListenerState) ElementType() reflect.Type { @@ -564,6 +570,8 @@ type listenerArgs struct { SslPolicy *string `pulumi:"sslPolicy"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags map[string]string `pulumi:"tags"` + // TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + TcpIdleTimeoutSeconds *int `pulumi:"tcpIdleTimeoutSeconds"` } // The set of arguments for constructing a Listener resource. @@ -588,6 +596,8 @@ type ListenerArgs struct { SslPolicy pulumi.StringPtrInput // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput + // TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + TcpIdleTimeoutSeconds pulumi.IntPtrInput } func (ListenerArgs) ElementType() reflect.Type { @@ -736,6 +746,11 @@ func (o ListenerOutput) TagsAll() pulumi.StringMapOutput { return o.ApplyT(func(v *Listener) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) } +// TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. +func (o ListenerOutput) TcpIdleTimeoutSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Listener) pulumi.IntPtrOutput { return v.TcpIdleTimeoutSeconds }).(pulumi.IntPtrOutput) +} + type ListenerArrayOutput struct{ *pulumi.OutputState } func (ListenerArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/alb/loadBalancer.go b/sdk/go/aws/alb/loadBalancer.go index 91a16d1ca5b..cc0287cab85 100644 --- a/sdk/go/aws/alb/loadBalancer.go +++ b/sdk/go/aws/alb/loadBalancer.go @@ -133,6 +133,8 @@ type LoadBalancer struct { EnableWafFailOpen pulumi.BoolPtrOutput `pulumi:"enableWafFailOpen"` // Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. EnableXffClientPort pulumi.BoolPtrOutput `pulumi:"enableXffClientPort"` + // Whether zonal shift is enabled. Defaults to `false`. + EnableZonalShift pulumi.BoolPtrOutput `pulumi:"enableZonalShift"` // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic pulumi.StringOutput `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` // Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. @@ -236,6 +238,8 @@ type loadBalancerState struct { EnableWafFailOpen *bool `pulumi:"enableWafFailOpen"` // Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. EnableXffClientPort *bool `pulumi:"enableXffClientPort"` + // Whether zonal shift is enabled. Defaults to `false`. + EnableZonalShift *bool `pulumi:"enableZonalShift"` // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic *string `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` // Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. @@ -304,6 +308,8 @@ type LoadBalancerState struct { EnableWafFailOpen pulumi.BoolPtrInput // Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. EnableXffClientPort pulumi.BoolPtrInput + // Whether zonal shift is enabled. Defaults to `false`. + EnableZonalShift pulumi.BoolPtrInput // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic pulumi.StringPtrInput // Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. @@ -370,6 +376,8 @@ type loadBalancerArgs struct { EnableWafFailOpen *bool `pulumi:"enableWafFailOpen"` // Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. EnableXffClientPort *bool `pulumi:"enableXffClientPort"` + // Whether zonal shift is enabled. Defaults to `false`. + EnableZonalShift *bool `pulumi:"enableZonalShift"` // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic *string `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` // Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. @@ -426,6 +434,8 @@ type LoadBalancerArgs struct { EnableWafFailOpen pulumi.BoolPtrInput // Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. EnableXffClientPort pulumi.BoolPtrInput + // Whether zonal shift is enabled. Defaults to `false`. + EnableZonalShift pulumi.BoolPtrInput // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic pulumi.StringPtrInput // Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. @@ -621,6 +631,11 @@ func (o LoadBalancerOutput) EnableXffClientPort() pulumi.BoolPtrOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.BoolPtrOutput { return v.EnableXffClientPort }).(pulumi.BoolPtrOutput) } +// Whether zonal shift is enabled. Defaults to `false`. +func (o LoadBalancerOutput) EnableZonalShift() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LoadBalancer) pulumi.BoolPtrOutput { return v.EnableZonalShift }).(pulumi.BoolPtrOutput) +} + // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. func (o LoadBalancerOutput) EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic() pulumi.StringOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringOutput { diff --git a/sdk/go/aws/codedeploy/deploymentConfig.go b/sdk/go/aws/codedeploy/deploymentConfig.go index ac47fa97ae1..b7ba6c3a648 100644 --- a/sdk/go/aws/codedeploy/deploymentConfig.go +++ b/sdk/go/aws/codedeploy/deploymentConfig.go @@ -159,6 +159,8 @@ type DeploymentConfig struct { MinimumHealthyHosts DeploymentConfigMinimumHealthyHostsPtrOutput `pulumi:"minimumHealthyHosts"` // A trafficRoutingConfig block. Traffic Routing Config is documented below. TrafficRoutingConfig DeploymentConfigTrafficRoutingConfigPtrOutput `pulumi:"trafficRoutingConfig"` + // A zonalConfig block. Zonal Config is documented below. + ZonalConfig DeploymentConfigZonalConfigPtrOutput `pulumi:"zonalConfig"` } // NewDeploymentConfig registers a new resource with the given unique name, arguments, and options. @@ -203,6 +205,8 @@ type deploymentConfigState struct { MinimumHealthyHosts *DeploymentConfigMinimumHealthyHosts `pulumi:"minimumHealthyHosts"` // A trafficRoutingConfig block. Traffic Routing Config is documented below. TrafficRoutingConfig *DeploymentConfigTrafficRoutingConfig `pulumi:"trafficRoutingConfig"` + // A zonalConfig block. Zonal Config is documented below. + ZonalConfig *DeploymentConfigZonalConfig `pulumi:"zonalConfig"` } type DeploymentConfigState struct { @@ -218,6 +222,8 @@ type DeploymentConfigState struct { MinimumHealthyHosts DeploymentConfigMinimumHealthyHostsPtrInput // A trafficRoutingConfig block. Traffic Routing Config is documented below. TrafficRoutingConfig DeploymentConfigTrafficRoutingConfigPtrInput + // A zonalConfig block. Zonal Config is documented below. + ZonalConfig DeploymentConfigZonalConfigPtrInput } func (DeploymentConfigState) ElementType() reflect.Type { @@ -233,6 +239,8 @@ type deploymentConfigArgs struct { MinimumHealthyHosts *DeploymentConfigMinimumHealthyHosts `pulumi:"minimumHealthyHosts"` // A trafficRoutingConfig block. Traffic Routing Config is documented below. TrafficRoutingConfig *DeploymentConfigTrafficRoutingConfig `pulumi:"trafficRoutingConfig"` + // A zonalConfig block. Zonal Config is documented below. + ZonalConfig *DeploymentConfigZonalConfig `pulumi:"zonalConfig"` } // The set of arguments for constructing a DeploymentConfig resource. @@ -245,6 +253,8 @@ type DeploymentConfigArgs struct { MinimumHealthyHosts DeploymentConfigMinimumHealthyHostsPtrInput // A trafficRoutingConfig block. Traffic Routing Config is documented below. TrafficRoutingConfig DeploymentConfigTrafficRoutingConfigPtrInput + // A zonalConfig block. Zonal Config is documented below. + ZonalConfig DeploymentConfigZonalConfigPtrInput } func (DeploymentConfigArgs) ElementType() reflect.Type { @@ -364,6 +374,11 @@ func (o DeploymentConfigOutput) TrafficRoutingConfig() DeploymentConfigTrafficRo return o.ApplyT(func(v *DeploymentConfig) DeploymentConfigTrafficRoutingConfigPtrOutput { return v.TrafficRoutingConfig }).(DeploymentConfigTrafficRoutingConfigPtrOutput) } +// A zonalConfig block. Zonal Config is documented below. +func (o DeploymentConfigOutput) ZonalConfig() DeploymentConfigZonalConfigPtrOutput { + return o.ApplyT(func(v *DeploymentConfig) DeploymentConfigZonalConfigPtrOutput { return v.ZonalConfig }).(DeploymentConfigZonalConfigPtrOutput) +} + type DeploymentConfigArrayOutput struct{ *pulumi.OutputState } func (DeploymentConfigArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/codedeploy/pulumiTypes.go b/sdk/go/aws/codedeploy/pulumiTypes.go index 29801ab649d..e79f282b3ca 100644 --- a/sdk/go/aws/codedeploy/pulumiTypes.go +++ b/sdk/go/aws/codedeploy/pulumiTypes.go @@ -672,6 +672,339 @@ func (o DeploymentConfigTrafficRoutingConfigTimeBasedLinearPtrOutput) Percentage }).(pulumi.IntPtrOutput) } +type DeploymentConfigZonalConfig struct { + // The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `firstZoneMonitorDurationInSeconds`, then CodeDeploy uses the `monitorDurationInSeconds` value for the first Availability Zone. + FirstZoneMonitorDurationInSeconds *int `pulumi:"firstZoneMonitorDurationInSeconds"` + // The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimumHealthyHostsPerZone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + MinimumHealthyHostsPerZone *DeploymentConfigZonalConfigMinimumHealthyHostsPerZone `pulumi:"minimumHealthyHostsPerZone"` + // The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitorDurationInSeconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + MonitorDurationInSeconds *int `pulumi:"monitorDurationInSeconds"` +} + +// DeploymentConfigZonalConfigInput is an input type that accepts DeploymentConfigZonalConfigArgs and DeploymentConfigZonalConfigOutput values. +// You can construct a concrete instance of `DeploymentConfigZonalConfigInput` via: +// +// DeploymentConfigZonalConfigArgs{...} +type DeploymentConfigZonalConfigInput interface { + pulumi.Input + + ToDeploymentConfigZonalConfigOutput() DeploymentConfigZonalConfigOutput + ToDeploymentConfigZonalConfigOutputWithContext(context.Context) DeploymentConfigZonalConfigOutput +} + +type DeploymentConfigZonalConfigArgs struct { + // The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `firstZoneMonitorDurationInSeconds`, then CodeDeploy uses the `monitorDurationInSeconds` value for the first Availability Zone. + FirstZoneMonitorDurationInSeconds pulumi.IntPtrInput `pulumi:"firstZoneMonitorDurationInSeconds"` + // The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimumHealthyHostsPerZone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + MinimumHealthyHostsPerZone DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrInput `pulumi:"minimumHealthyHostsPerZone"` + // The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitorDurationInSeconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + MonitorDurationInSeconds pulumi.IntPtrInput `pulumi:"monitorDurationInSeconds"` +} + +func (DeploymentConfigZonalConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentConfigZonalConfig)(nil)).Elem() +} + +func (i DeploymentConfigZonalConfigArgs) ToDeploymentConfigZonalConfigOutput() DeploymentConfigZonalConfigOutput { + return i.ToDeploymentConfigZonalConfigOutputWithContext(context.Background()) +} + +func (i DeploymentConfigZonalConfigArgs) ToDeploymentConfigZonalConfigOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentConfigZonalConfigOutput) +} + +func (i DeploymentConfigZonalConfigArgs) ToDeploymentConfigZonalConfigPtrOutput() DeploymentConfigZonalConfigPtrOutput { + return i.ToDeploymentConfigZonalConfigPtrOutputWithContext(context.Background()) +} + +func (i DeploymentConfigZonalConfigArgs) ToDeploymentConfigZonalConfigPtrOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentConfigZonalConfigOutput).ToDeploymentConfigZonalConfigPtrOutputWithContext(ctx) +} + +// DeploymentConfigZonalConfigPtrInput is an input type that accepts DeploymentConfigZonalConfigArgs, DeploymentConfigZonalConfigPtr and DeploymentConfigZonalConfigPtrOutput values. +// You can construct a concrete instance of `DeploymentConfigZonalConfigPtrInput` via: +// +// DeploymentConfigZonalConfigArgs{...} +// +// or: +// +// nil +type DeploymentConfigZonalConfigPtrInput interface { + pulumi.Input + + ToDeploymentConfigZonalConfigPtrOutput() DeploymentConfigZonalConfigPtrOutput + ToDeploymentConfigZonalConfigPtrOutputWithContext(context.Context) DeploymentConfigZonalConfigPtrOutput +} + +type deploymentConfigZonalConfigPtrType DeploymentConfigZonalConfigArgs + +func DeploymentConfigZonalConfigPtr(v *DeploymentConfigZonalConfigArgs) DeploymentConfigZonalConfigPtrInput { + return (*deploymentConfigZonalConfigPtrType)(v) +} + +func (*deploymentConfigZonalConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentConfigZonalConfig)(nil)).Elem() +} + +func (i *deploymentConfigZonalConfigPtrType) ToDeploymentConfigZonalConfigPtrOutput() DeploymentConfigZonalConfigPtrOutput { + return i.ToDeploymentConfigZonalConfigPtrOutputWithContext(context.Background()) +} + +func (i *deploymentConfigZonalConfigPtrType) ToDeploymentConfigZonalConfigPtrOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentConfigZonalConfigPtrOutput) +} + +type DeploymentConfigZonalConfigOutput struct{ *pulumi.OutputState } + +func (DeploymentConfigZonalConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentConfigZonalConfig)(nil)).Elem() +} + +func (o DeploymentConfigZonalConfigOutput) ToDeploymentConfigZonalConfigOutput() DeploymentConfigZonalConfigOutput { + return o +} + +func (o DeploymentConfigZonalConfigOutput) ToDeploymentConfigZonalConfigOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigOutput { + return o +} + +func (o DeploymentConfigZonalConfigOutput) ToDeploymentConfigZonalConfigPtrOutput() DeploymentConfigZonalConfigPtrOutput { + return o.ToDeploymentConfigZonalConfigPtrOutputWithContext(context.Background()) +} + +func (o DeploymentConfigZonalConfigOutput) ToDeploymentConfigZonalConfigPtrOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeploymentConfigZonalConfig) *DeploymentConfigZonalConfig { + return &v + }).(DeploymentConfigZonalConfigPtrOutput) +} + +// The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `firstZoneMonitorDurationInSeconds`, then CodeDeploy uses the `monitorDurationInSeconds` value for the first Availability Zone. +func (o DeploymentConfigZonalConfigOutput) FirstZoneMonitorDurationInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeploymentConfigZonalConfig) *int { return v.FirstZoneMonitorDurationInSeconds }).(pulumi.IntPtrOutput) +} + +// The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimumHealthyHostsPerZone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. +func (o DeploymentConfigZonalConfigOutput) MinimumHealthyHostsPerZone() DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput { + return o.ApplyT(func(v DeploymentConfigZonalConfig) *DeploymentConfigZonalConfigMinimumHealthyHostsPerZone { + return v.MinimumHealthyHostsPerZone + }).(DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput) +} + +// The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitorDurationInSeconds`, CodeDeploy starts deploying to the next Availability Zone immediately. +func (o DeploymentConfigZonalConfigOutput) MonitorDurationInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeploymentConfigZonalConfig) *int { return v.MonitorDurationInSeconds }).(pulumi.IntPtrOutput) +} + +type DeploymentConfigZonalConfigPtrOutput struct{ *pulumi.OutputState } + +func (DeploymentConfigZonalConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentConfigZonalConfig)(nil)).Elem() +} + +func (o DeploymentConfigZonalConfigPtrOutput) ToDeploymentConfigZonalConfigPtrOutput() DeploymentConfigZonalConfigPtrOutput { + return o +} + +func (o DeploymentConfigZonalConfigPtrOutput) ToDeploymentConfigZonalConfigPtrOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigPtrOutput { + return o +} + +func (o DeploymentConfigZonalConfigPtrOutput) Elem() DeploymentConfigZonalConfigOutput { + return o.ApplyT(func(v *DeploymentConfigZonalConfig) DeploymentConfigZonalConfig { + if v != nil { + return *v + } + var ret DeploymentConfigZonalConfig + return ret + }).(DeploymentConfigZonalConfigOutput) +} + +// The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `firstZoneMonitorDurationInSeconds`, then CodeDeploy uses the `monitorDurationInSeconds` value for the first Availability Zone. +func (o DeploymentConfigZonalConfigPtrOutput) FirstZoneMonitorDurationInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DeploymentConfigZonalConfig) *int { + if v == nil { + return nil + } + return v.FirstZoneMonitorDurationInSeconds + }).(pulumi.IntPtrOutput) +} + +// The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimumHealthyHostsPerZone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. +func (o DeploymentConfigZonalConfigPtrOutput) MinimumHealthyHostsPerZone() DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput { + return o.ApplyT(func(v *DeploymentConfigZonalConfig) *DeploymentConfigZonalConfigMinimumHealthyHostsPerZone { + if v == nil { + return nil + } + return v.MinimumHealthyHostsPerZone + }).(DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput) +} + +// The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitorDurationInSeconds`, CodeDeploy starts deploying to the next Availability Zone immediately. +func (o DeploymentConfigZonalConfigPtrOutput) MonitorDurationInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DeploymentConfigZonalConfig) *int { + if v == nil { + return nil + } + return v.MonitorDurationInSeconds + }).(pulumi.IntPtrOutput) +} + +type DeploymentConfigZonalConfigMinimumHealthyHostsPerZone struct { + // The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + Type *string `pulumi:"type"` + // The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + Value *int `pulumi:"value"` +} + +// DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneInput is an input type that accepts DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs and DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput values. +// You can construct a concrete instance of `DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneInput` via: +// +// DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs{...} +type DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneInput interface { + pulumi.Input + + ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput() DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput + ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutputWithContext(context.Context) DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput +} + +type DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs struct { + // The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + Type pulumi.StringPtrInput `pulumi:"type"` + // The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + Value pulumi.IntPtrInput `pulumi:"value"` +} + +func (DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentConfigZonalConfigMinimumHealthyHostsPerZone)(nil)).Elem() +} + +func (i DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput() DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput { + return i.ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutputWithContext(context.Background()) +} + +func (i DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput) +} + +func (i DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput() DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput { + return i.ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutputWithContext(context.Background()) +} + +func (i DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput).ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutputWithContext(ctx) +} + +// DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrInput is an input type that accepts DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs, DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtr and DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput values. +// You can construct a concrete instance of `DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrInput` via: +// +// DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs{...} +// +// or: +// +// nil +type DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrInput interface { + pulumi.Input + + ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput() DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput + ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutputWithContext(context.Context) DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput +} + +type deploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrType DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs + +func DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtr(v *DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs) DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrInput { + return (*deploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrType)(v) +} + +func (*deploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentConfigZonalConfigMinimumHealthyHostsPerZone)(nil)).Elem() +} + +func (i *deploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrType) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput() DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput { + return i.ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutputWithContext(context.Background()) +} + +func (i *deploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrType) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput) +} + +type DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput struct{ *pulumi.OutputState } + +func (DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentConfigZonalConfigMinimumHealthyHostsPerZone)(nil)).Elem() +} + +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput() DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput { + return o +} + +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput { + return o +} + +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput() DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput { + return o.ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutputWithContext(context.Background()) +} + +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeploymentConfigZonalConfigMinimumHealthyHostsPerZone) *DeploymentConfigZonalConfigMinimumHealthyHostsPerZone { + return &v + }).(DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput) +} + +// The type can either be `FLEET_PERCENT` or `HOST_COUNT`. +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentConfigZonalConfigMinimumHealthyHostsPerZone) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +// The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeploymentConfigZonalConfigMinimumHealthyHostsPerZone) *int { return v.Value }).(pulumi.IntPtrOutput) +} + +type DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput struct{ *pulumi.OutputState } + +func (DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentConfigZonalConfigMinimumHealthyHostsPerZone)(nil)).Elem() +} + +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput() DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput { + return o +} + +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput) ToDeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutputWithContext(ctx context.Context) DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput { + return o +} + +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput) Elem() DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput { + return o.ApplyT(func(v *DeploymentConfigZonalConfigMinimumHealthyHostsPerZone) DeploymentConfigZonalConfigMinimumHealthyHostsPerZone { + if v != nil { + return *v + } + var ret DeploymentConfigZonalConfigMinimumHealthyHostsPerZone + return ret + }).(DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput) +} + +// The type can either be `FLEET_PERCENT` or `HOST_COUNT`. +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentConfigZonalConfigMinimumHealthyHostsPerZone) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +// The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. +func (o DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DeploymentConfigZonalConfigMinimumHealthyHostsPerZone) *int { + if v == nil { + return nil + } + return v.Value + }).(pulumi.IntPtrOutput) +} + type DeploymentGroupAlarmConfiguration struct { // A list of alarms configured for the deployment group. _A maximum of 10 alarms can be added to a deployment group_. Alarms []string `pulumi:"alarms"` @@ -3506,6 +3839,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DeploymentConfigTrafficRoutingConfigTimeBasedCanaryPtrInput)(nil)).Elem(), DeploymentConfigTrafficRoutingConfigTimeBasedCanaryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DeploymentConfigTrafficRoutingConfigTimeBasedLinearInput)(nil)).Elem(), DeploymentConfigTrafficRoutingConfigTimeBasedLinearArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DeploymentConfigTrafficRoutingConfigTimeBasedLinearPtrInput)(nil)).Elem(), DeploymentConfigTrafficRoutingConfigTimeBasedLinearArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeploymentConfigZonalConfigInput)(nil)).Elem(), DeploymentConfigZonalConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeploymentConfigZonalConfigPtrInput)(nil)).Elem(), DeploymentConfigZonalConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneInput)(nil)).Elem(), DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrInput)(nil)).Elem(), DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DeploymentGroupAlarmConfigurationInput)(nil)).Elem(), DeploymentGroupAlarmConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DeploymentGroupAlarmConfigurationPtrInput)(nil)).Elem(), DeploymentGroupAlarmConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DeploymentGroupAutoRollbackConfigurationInput)(nil)).Elem(), DeploymentGroupAutoRollbackConfigurationArgs{}) @@ -3554,6 +3891,10 @@ func init() { pulumi.RegisterOutputType(DeploymentConfigTrafficRoutingConfigTimeBasedCanaryPtrOutput{}) pulumi.RegisterOutputType(DeploymentConfigTrafficRoutingConfigTimeBasedLinearOutput{}) pulumi.RegisterOutputType(DeploymentConfigTrafficRoutingConfigTimeBasedLinearPtrOutput{}) + pulumi.RegisterOutputType(DeploymentConfigZonalConfigOutput{}) + pulumi.RegisterOutputType(DeploymentConfigZonalConfigPtrOutput{}) + pulumi.RegisterOutputType(DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneOutput{}) + pulumi.RegisterOutputType(DeploymentConfigZonalConfigMinimumHealthyHostsPerZonePtrOutput{}) pulumi.RegisterOutputType(DeploymentGroupAlarmConfigurationOutput{}) pulumi.RegisterOutputType(DeploymentGroupAlarmConfigurationPtrOutput{}) pulumi.RegisterOutputType(DeploymentGroupAutoRollbackConfigurationOutput{}) diff --git a/sdk/go/aws/costexplorer/pulumiTypes.go b/sdk/go/aws/costexplorer/pulumiTypes.go index 4e05f94d9c9..d3d81d3238f 100644 --- a/sdk/go/aws/costexplorer/pulumiTypes.go +++ b/sdk/go/aws/costexplorer/pulumiTypes.go @@ -126,9 +126,9 @@ type AnomalySubscriptionThresholdExpression struct { CostCategory *AnomalySubscriptionThresholdExpressionCostCategory `pulumi:"costCategory"` // Configuration block for the specific Dimension to use for. Dimension *AnomalySubscriptionThresholdExpressionDimension `pulumi:"dimension"` - // Return results that match both Dimension object. + // Return results that do not match the Dimension object. Not *AnomalySubscriptionThresholdExpressionNot `pulumi:"not"` - // Return results that match both Dimension object. + // Return results that match either Dimension object. Ors []AnomalySubscriptionThresholdExpressionOr `pulumi:"ors"` // Configuration block for the specific Tag to use for. See Tags below. Tags *AnomalySubscriptionThresholdExpressionTags `pulumi:"tags"` @@ -152,9 +152,9 @@ type AnomalySubscriptionThresholdExpressionArgs struct { CostCategory AnomalySubscriptionThresholdExpressionCostCategoryPtrInput `pulumi:"costCategory"` // Configuration block for the specific Dimension to use for. Dimension AnomalySubscriptionThresholdExpressionDimensionPtrInput `pulumi:"dimension"` - // Return results that match both Dimension object. + // Return results that do not match the Dimension object. Not AnomalySubscriptionThresholdExpressionNotPtrInput `pulumi:"not"` - // Return results that match both Dimension object. + // Return results that match either Dimension object. Ors AnomalySubscriptionThresholdExpressionOrArrayInput `pulumi:"ors"` // Configuration block for the specific Tag to use for. See Tags below. Tags AnomalySubscriptionThresholdExpressionTagsPtrInput `pulumi:"tags"` @@ -258,14 +258,14 @@ func (o AnomalySubscriptionThresholdExpressionOutput) Dimension() AnomalySubscri }).(AnomalySubscriptionThresholdExpressionDimensionPtrOutput) } -// Return results that match both Dimension object. +// Return results that do not match the Dimension object. func (o AnomalySubscriptionThresholdExpressionOutput) Not() AnomalySubscriptionThresholdExpressionNotPtrOutput { return o.ApplyT(func(v AnomalySubscriptionThresholdExpression) *AnomalySubscriptionThresholdExpressionNot { return v.Not }).(AnomalySubscriptionThresholdExpressionNotPtrOutput) } -// Return results that match both Dimension object. +// Return results that match either Dimension object. func (o AnomalySubscriptionThresholdExpressionOutput) Ors() AnomalySubscriptionThresholdExpressionOrArrayOutput { return o.ApplyT(func(v AnomalySubscriptionThresholdExpression) []AnomalySubscriptionThresholdExpressionOr { return v.Ors @@ -333,7 +333,7 @@ func (o AnomalySubscriptionThresholdExpressionPtrOutput) Dimension() AnomalySubs }).(AnomalySubscriptionThresholdExpressionDimensionPtrOutput) } -// Return results that match both Dimension object. +// Return results that do not match the Dimension object. func (o AnomalySubscriptionThresholdExpressionPtrOutput) Not() AnomalySubscriptionThresholdExpressionNotPtrOutput { return o.ApplyT(func(v *AnomalySubscriptionThresholdExpression) *AnomalySubscriptionThresholdExpressionNot { if v == nil { @@ -343,7 +343,7 @@ func (o AnomalySubscriptionThresholdExpressionPtrOutput) Not() AnomalySubscripti }).(AnomalySubscriptionThresholdExpressionNotPtrOutput) } -// Return results that match both Dimension object. +// Return results that match either Dimension object. func (o AnomalySubscriptionThresholdExpressionPtrOutput) Ors() AnomalySubscriptionThresholdExpressionOrArrayOutput { return o.ApplyT(func(v *AnomalySubscriptionThresholdExpression) []AnomalySubscriptionThresholdExpressionOr { if v == nil { diff --git a/sdk/go/aws/dynamodb/kinesisStreamingDestination.go b/sdk/go/aws/dynamodb/kinesisStreamingDestination.go index deb534902e4..93e035c548f 100644 --- a/sdk/go/aws/dynamodb/kinesisStreamingDestination.go +++ b/sdk/go/aws/dynamodb/kinesisStreamingDestination.go @@ -50,8 +50,9 @@ import ( // return err // } // _, err = dynamodb.NewKinesisStreamingDestination(ctx, "example", &dynamodb.KinesisStreamingDestinationArgs{ -// StreamArn: exampleStream.Arn, -// TableName: example.Name, +// StreamArn: exampleStream.Arn, +// TableName: example.Name, +// ApproximateCreationDateTimePrecision: pulumi.String("MICROSECOND"), // }) // if err != nil { // return err @@ -72,10 +73,11 @@ import ( type KinesisStreamingDestination struct { pulumi.CustomResourceState + // Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + ApproximateCreationDateTimePrecision pulumi.StringOutput `pulumi:"approximateCreationDateTimePrecision"` // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. StreamArn pulumi.StringOutput `pulumi:"streamArn"` - // The name of the DynamoDB table. There - // can only be one Kinesis streaming destination for a given DynamoDB table. + // The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. TableName pulumi.StringOutput `pulumi:"tableName"` } @@ -115,18 +117,20 @@ func GetKinesisStreamingDestination(ctx *pulumi.Context, // Input properties used for looking up and filtering KinesisStreamingDestination resources. type kinesisStreamingDestinationState struct { + // Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + ApproximateCreationDateTimePrecision *string `pulumi:"approximateCreationDateTimePrecision"` // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. StreamArn *string `pulumi:"streamArn"` - // The name of the DynamoDB table. There - // can only be one Kinesis streaming destination for a given DynamoDB table. + // The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. TableName *string `pulumi:"tableName"` } type KinesisStreamingDestinationState struct { + // Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + ApproximateCreationDateTimePrecision pulumi.StringPtrInput // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. StreamArn pulumi.StringPtrInput - // The name of the DynamoDB table. There - // can only be one Kinesis streaming destination for a given DynamoDB table. + // The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. TableName pulumi.StringPtrInput } @@ -135,19 +139,21 @@ func (KinesisStreamingDestinationState) ElementType() reflect.Type { } type kinesisStreamingDestinationArgs struct { + // Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + ApproximateCreationDateTimePrecision *string `pulumi:"approximateCreationDateTimePrecision"` // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. StreamArn string `pulumi:"streamArn"` - // The name of the DynamoDB table. There - // can only be one Kinesis streaming destination for a given DynamoDB table. + // The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. TableName string `pulumi:"tableName"` } // The set of arguments for constructing a KinesisStreamingDestination resource. type KinesisStreamingDestinationArgs struct { + // Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + ApproximateCreationDateTimePrecision pulumi.StringPtrInput // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. StreamArn pulumi.StringInput - // The name of the DynamoDB table. There - // can only be one Kinesis streaming destination for a given DynamoDB table. + // The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. TableName pulumi.StringInput } @@ -238,13 +244,19 @@ func (o KinesisStreamingDestinationOutput) ToKinesisStreamingDestinationOutputWi return o } +// Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. +func (o KinesisStreamingDestinationOutput) ApproximateCreationDateTimePrecision() pulumi.StringOutput { + return o.ApplyT(func(v *KinesisStreamingDestination) pulumi.StringOutput { + return v.ApproximateCreationDateTimePrecision + }).(pulumi.StringOutput) +} + // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. func (o KinesisStreamingDestinationOutput) StreamArn() pulumi.StringOutput { return o.ApplyT(func(v *KinesisStreamingDestination) pulumi.StringOutput { return v.StreamArn }).(pulumi.StringOutput) } -// The name of the DynamoDB table. There -// can only be one Kinesis streaming destination for a given DynamoDB table. +// The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. func (o KinesisStreamingDestinationOutput) TableName() pulumi.StringOutput { return o.ApplyT(func(v *KinesisStreamingDestination) pulumi.StringOutput { return v.TableName }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/ec2/getSubnet.go b/sdk/go/aws/ec2/getSubnet.go index 6a660d2135b..b436d3652e4 100644 --- a/sdk/go/aws/ec2/getSubnet.go +++ b/sdk/go/aws/ec2/getSubnet.go @@ -40,7 +40,7 @@ import ( // if err != nil { // return err // } -// _, err = ec2.NewSecurityGroup(ctx, "subnet", &ec2.SecurityGroupArgs{ +// _, err = ec2.NewSecurityGroup(ctx, "subnet_security_group", &ec2.SecurityGroupArgs{ // VpcId: pulumi.String(selected.VpcId), // Ingress: ec2.SecurityGroupIngressArray{ // &ec2.SecurityGroupIngressArgs{ diff --git a/sdk/go/aws/elasticache/cluster.go b/sdk/go/aws/elasticache/cluster.go index 35bc5108084..0f7d2642c25 100644 --- a/sdk/go/aws/elasticache/cluster.go +++ b/sdk/go/aws/elasticache/cluster.go @@ -271,7 +271,7 @@ type Cluster struct { ClusterId pulumi.StringOutput `pulumi:"clusterId"` // (Memcached only) Configuration endpoint to allow host discovery. ConfigurationEndpoint pulumi.StringOutput `pulumi:"configurationEndpoint"` - // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. Engine pulumi.StringOutput `pulumi:"engine"` // Version number of the cache engine to be used. // If not set, defaults to the latest version. @@ -391,7 +391,7 @@ type clusterState struct { ClusterId *string `pulumi:"clusterId"` // (Memcached only) Configuration endpoint to allow host discovery. ConfigurationEndpoint *string `pulumi:"configurationEndpoint"` - // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. Engine *string `pulumi:"engine"` // Version number of the cache engine to be used. // If not set, defaults to the latest version. @@ -482,7 +482,7 @@ type ClusterState struct { ClusterId pulumi.StringPtrInput // (Memcached only) Configuration endpoint to allow host discovery. ConfigurationEndpoint pulumi.StringPtrInput - // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. Engine pulumi.StringPtrInput // Version number of the cache engine to be used. // If not set, defaults to the latest version. @@ -569,7 +569,7 @@ type clusterArgs struct { AzMode *string `pulumi:"azMode"` // Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. ClusterId *string `pulumi:"clusterId"` - // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. Engine *string `pulumi:"engine"` // Version number of the cache engine to be used. // If not set, defaults to the latest version. @@ -647,7 +647,7 @@ type ClusterArgs struct { AzMode pulumi.StringPtrInput // Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. ClusterId pulumi.StringPtrInput - // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. Engine pulumi.StringPtrInput // Version number of the cache engine to be used. // If not set, defaults to the latest version. @@ -845,7 +845,7 @@ func (o ClusterOutput) ConfigurationEndpoint() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ConfigurationEndpoint }).(pulumi.StringOutput) } -// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. +// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. func (o ClusterOutput) Engine() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/elasticache/getReservedCacheNodeOffering.go b/sdk/go/aws/elasticache/getReservedCacheNodeOffering.go index f6cac6d7929..f5ac7dcaafe 100644 --- a/sdk/go/aws/elasticache/getReservedCacheNodeOffering.go +++ b/sdk/go/aws/elasticache/getReservedCacheNodeOffering.go @@ -66,7 +66,7 @@ type GetReservedCacheNodeOfferingArgs struct { // For previous generation modes (i.e. T1, M1, M2, or C1) valid values are `Heavy Utilization`, `Medium Utilization`, and `Light Utilization`. OfferingType string `pulumi:"offeringType"` // Engine type for the reserved cache node. - // Valid values are `redis` and `memcached`. + // Valid values are `redis`, `valkey` and `memcached`. ProductDescription string `pulumi:"productDescription"` } @@ -118,7 +118,7 @@ type GetReservedCacheNodeOfferingOutputArgs struct { // For previous generation modes (i.e. T1, M1, M2, or C1) valid values are `Heavy Utilization`, `Medium Utilization`, and `Light Utilization`. OfferingType pulumi.StringInput `pulumi:"offeringType"` // Engine type for the reserved cache node. - // Valid values are `redis` and `memcached`. + // Valid values are `redis`, `valkey` and `memcached`. ProductDescription pulumi.StringInput `pulumi:"productDescription"` } diff --git a/sdk/go/aws/elasticache/getServerlessCache.go b/sdk/go/aws/elasticache/getServerlessCache.go index 29931a36623..ec042aecc57 100644 --- a/sdk/go/aws/elasticache/getServerlessCache.go +++ b/sdk/go/aws/elasticache/getServerlessCache.go @@ -62,7 +62,7 @@ type LookupServerlessCacheResult struct { CacheUsageLimits GetServerlessCacheCacheUsageLimits `pulumi:"cacheUsageLimits"` // Timestamp of when the serverless cache was created. CreateTime string `pulumi:"createTime"` - // The daily time that snapshots will be created from the new serverless cache. Only available for engine type `"redis"`. + // The daily time that snapshots will be created from the new serverless cache. Only available for engine types `"redis"` and `"valkey"`. DailySnapshotTime string `pulumi:"dailySnapshotTime"` // Description of the serverless cache. Description string `pulumi:"description"` @@ -152,7 +152,7 @@ func (o LookupServerlessCacheResultOutput) CreateTime() pulumi.StringOutput { return o.ApplyT(func(v LookupServerlessCacheResult) string { return v.CreateTime }).(pulumi.StringOutput) } -// The daily time that snapshots will be created from the new serverless cache. Only available for engine type `"redis"`. +// The daily time that snapshots will be created from the new serverless cache. Only available for engine types `"redis"` and `"valkey"`. func (o LookupServerlessCacheResultOutput) DailySnapshotTime() pulumi.StringOutput { return o.ApplyT(func(v LookupServerlessCacheResult) string { return v.DailySnapshotTime }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/elasticache/globalReplicationGroup.go b/sdk/go/aws/elasticache/globalReplicationGroup.go index 5d57b072965..cb293ff97fd 100644 --- a/sdk/go/aws/elasticache/globalReplicationGroup.go +++ b/sdk/go/aws/elasticache/globalReplicationGroup.go @@ -65,7 +65,7 @@ import ( // // ``` // -// ### Managing Redis Engine Versions +// ### Managing Redis OOS/Valkey Engine Versions // // The initial Redis version is determined by the version set on the primary replication group. // However, once it is part of a Global Replication Group, diff --git a/sdk/go/aws/elasticache/replicationGroup.go b/sdk/go/aws/elasticache/replicationGroup.go index a553c3e1c7c..f7c177829e6 100644 --- a/sdk/go/aws/elasticache/replicationGroup.go +++ b/sdk/go/aws/elasticache/replicationGroup.go @@ -35,7 +35,7 @@ import ( // // ## Example Usage // -// ### Redis Cluster Mode Disabled +// ### Redis OSS/Valkey Cluster Mode Disabled // // To create a single shard primary with single read replica: // @@ -127,7 +127,7 @@ import ( // // ``` // -// ### Redis Cluster Mode Enabled +// ### Redis OSS/Valkey Cluster Mode Enabled // // To create two shards with a primary and a single read replica each: // @@ -326,7 +326,7 @@ type ReplicationGroup struct { // Strategy to use when updating the `authToken`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. AuthTokenUpdateStrategy pulumi.StringPtrOutput `pulumi:"authTokenUpdateStrategy"` // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type `"redis"` and if the engine version is 6 or higher. + // Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. // Defaults to `true`. AutoMinorVersionUpgrade pulumi.BoolOutput `pulumi:"autoMinorVersionUpgrade"` // Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. @@ -341,7 +341,7 @@ type ReplicationGroup struct { DataTieringEnabled pulumi.BoolOutput `pulumi:"dataTieringEnabled"` // User-created description for the replication group. Must not be empty. Description pulumi.StringOutput `pulumi:"description"` - // Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + // Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. Engine pulumi.StringPtrOutput `pulumi:"engine"` // Version number of the cache engine to be used for the cache clusters in this replication group. // If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -360,7 +360,7 @@ type ReplicationGroup struct { IpDiscovery pulumi.StringOutput `pulumi:"ipDiscovery"` // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` - // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + // Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. LogDeliveryConfigurations ReplicationGroupLogDeliveryConfigurationArrayOutput `pulumi:"logDeliveryConfigurations"` // Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` MaintenanceWindow pulumi.StringOutput `pulumi:"maintenanceWindow"` @@ -493,7 +493,7 @@ type replicationGroupState struct { // Strategy to use when updating the `authToken`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. AuthTokenUpdateStrategy *string `pulumi:"authTokenUpdateStrategy"` // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type `"redis"` and if the engine version is 6 or higher. + // Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. // Defaults to `true`. AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"` // Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. @@ -508,7 +508,7 @@ type replicationGroupState struct { DataTieringEnabled *bool `pulumi:"dataTieringEnabled"` // User-created description for the replication group. Must not be empty. Description *string `pulumi:"description"` - // Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + // Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. Engine *string `pulumi:"engine"` // Version number of the cache engine to be used for the cache clusters in this replication group. // If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -527,7 +527,7 @@ type replicationGroupState struct { IpDiscovery *string `pulumi:"ipDiscovery"` // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. KmsKeyId *string `pulumi:"kmsKeyId"` - // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + // Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. LogDeliveryConfigurations []ReplicationGroupLogDeliveryConfiguration `pulumi:"logDeliveryConfigurations"` // Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` MaintenanceWindow *string `pulumi:"maintenanceWindow"` @@ -621,7 +621,7 @@ type ReplicationGroupState struct { // Strategy to use when updating the `authToken`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. AuthTokenUpdateStrategy pulumi.StringPtrInput // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type `"redis"` and if the engine version is 6 or higher. + // Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. // Defaults to `true`. AutoMinorVersionUpgrade pulumi.BoolPtrInput // Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. @@ -636,7 +636,7 @@ type ReplicationGroupState struct { DataTieringEnabled pulumi.BoolPtrInput // User-created description for the replication group. Must not be empty. Description pulumi.StringPtrInput - // Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + // Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. Engine pulumi.StringPtrInput // Version number of the cache engine to be used for the cache clusters in this replication group. // If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -655,7 +655,7 @@ type ReplicationGroupState struct { IpDiscovery pulumi.StringPtrInput // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. KmsKeyId pulumi.StringPtrInput - // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + // Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. LogDeliveryConfigurations ReplicationGroupLogDeliveryConfigurationArrayInput // Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` MaintenanceWindow pulumi.StringPtrInput @@ -751,7 +751,7 @@ type replicationGroupArgs struct { // Strategy to use when updating the `authToken`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. AuthTokenUpdateStrategy *string `pulumi:"authTokenUpdateStrategy"` // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type `"redis"` and if the engine version is 6 or higher. + // Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. // Defaults to `true`. AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"` // Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. @@ -762,7 +762,7 @@ type replicationGroupArgs struct { DataTieringEnabled *bool `pulumi:"dataTieringEnabled"` // User-created description for the replication group. Must not be empty. Description string `pulumi:"description"` - // Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + // Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. Engine *string `pulumi:"engine"` // Version number of the cache engine to be used for the cache clusters in this replication group. // If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -779,7 +779,7 @@ type replicationGroupArgs struct { IpDiscovery *string `pulumi:"ipDiscovery"` // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. KmsKeyId *string `pulumi:"kmsKeyId"` - // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + // Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. LogDeliveryConfigurations []ReplicationGroupLogDeliveryConfiguration `pulumi:"logDeliveryConfigurations"` // Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` MaintenanceWindow *string `pulumi:"maintenanceWindow"` @@ -862,7 +862,7 @@ type ReplicationGroupArgs struct { // Strategy to use when updating the `authToken`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. AuthTokenUpdateStrategy pulumi.StringPtrInput // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type `"redis"` and if the engine version is 6 or higher. + // Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. // Defaults to `true`. AutoMinorVersionUpgrade pulumi.BoolPtrInput // Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `numCacheClusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. @@ -873,7 +873,7 @@ type ReplicationGroupArgs struct { DataTieringEnabled pulumi.BoolPtrInput // User-created description for the replication group. Must not be empty. Description pulumi.StringInput - // Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + // Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. Engine pulumi.StringPtrInput // Version number of the cache engine to be used for the cache clusters in this replication group. // If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. @@ -890,7 +890,7 @@ type ReplicationGroupArgs struct { IpDiscovery pulumi.StringPtrInput // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. KmsKeyId pulumi.StringPtrInput - // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + // Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. LogDeliveryConfigurations ReplicationGroupLogDeliveryConfigurationArrayInput // Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` MaintenanceWindow pulumi.StringPtrInput @@ -1075,7 +1075,7 @@ func (o ReplicationGroupOutput) AuthTokenUpdateStrategy() pulumi.StringPtrOutput } // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. -// Only supported for engine type `"redis"` and if the engine version is 6 or higher. +// Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. // Defaults to `true`. func (o ReplicationGroupOutput) AutoMinorVersionUpgrade() pulumi.BoolOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.BoolOutput { return v.AutoMinorVersionUpgrade }).(pulumi.BoolOutput) @@ -1111,7 +1111,7 @@ func (o ReplicationGroupOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) } -// Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. +// Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. func (o ReplicationGroupOutput) Engine() pulumi.StringPtrOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.StringPtrOutput { return v.Engine }).(pulumi.StringPtrOutput) } @@ -1151,7 +1151,7 @@ func (o ReplicationGroupOutput) KmsKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v *ReplicationGroup) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) } -// Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. +// Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. func (o ReplicationGroupOutput) LogDeliveryConfigurations() ReplicationGroupLogDeliveryConfigurationArrayOutput { return o.ApplyT(func(v *ReplicationGroup) ReplicationGroupLogDeliveryConfigurationArrayOutput { return v.LogDeliveryConfigurations diff --git a/sdk/go/aws/elasticache/serverlessCache.go b/sdk/go/aws/elasticache/serverlessCache.go index 7cc1c52c8c5..199e66d2324 100644 --- a/sdk/go/aws/elasticache/serverlessCache.go +++ b/sdk/go/aws/elasticache/serverlessCache.go @@ -12,7 +12,7 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Provides an ElastiCache Serverless Cache resource which manages memcached or redis. +// Provides an ElastiCache Serverless Cache resource which manages memcached, redis or valkey. // // ## Example Usage // @@ -70,7 +70,7 @@ import ( // } // ``` // -// ### Redis Serverless +// ### Redis OSS Serverless // // ```go // package main @@ -126,6 +126,62 @@ import ( // } // ``` // +// ### Valkey Serverless +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// var splat0 []interface{} +// for _, val0 := range testAwsSubnet { +// splat0 = append(splat0, val0.Id) +// } +// _, err := elasticache.NewServerlessCache(ctx, "example", &elasticache.ServerlessCacheArgs{ +// Engine: pulumi.String("valkey"), +// Name: pulumi.String("example"), +// CacheUsageLimits: &elasticache.ServerlessCacheCacheUsageLimitsArgs{ +// DataStorage: &elasticache.ServerlessCacheCacheUsageLimitsDataStorageArgs{ +// Maximum: pulumi.Int(10), +// Unit: pulumi.String("GB"), +// }, +// EcpuPerSeconds: elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArray{ +// &elasticache.ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs{ +// Maximum: pulumi.Int(5000), +// }, +// }, +// }, +// DailySnapshotTime: pulumi.String("09:00"), +// Description: pulumi.String("Test Server"), +// KmsKeyId: pulumi.Any(test.Arn), +// MajorEngineVersion: pulumi.String("7"), +// SnapshotRetentionLimit: pulumi.Int(1), +// SecurityGroupIds: pulumi.StringArray{ +// testAwsSecurityGroup.Id, +// }, +// SubnetIds: toPulumiArray(splat0), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiArray(arr []) pulumi.Array { +// var pulumiArr pulumi.Array +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.(v)) +// } +// return pulumiArr +// } +// ``` +// // ## Import // // Using `pulumi import`, import ElastiCache Serverless Cache using the `name`. For example: @@ -142,13 +198,13 @@ type ServerlessCache struct { CacheUsageLimits ServerlessCacheCacheUsageLimitsPtrOutput `pulumi:"cacheUsageLimits"` // Timestamp of when the serverless cache was created. CreateTime pulumi.StringOutput `pulumi:"createTime"` - // The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + // The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. DailySnapshotTime pulumi.StringOutput `pulumi:"dailySnapshotTime"` // User-provided description for the serverless cache. The default is NULL. Description pulumi.StringOutput `pulumi:"description"` // Represents the information required for client programs to connect to a cache node. See `endpoint` Block for details. Endpoints ServerlessCacheEndpointArrayOutput `pulumi:"endpoints"` - // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + // Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. Engine pulumi.StringOutput `pulumi:"engine"` // The name and version number of the engine the serverless cache is compatible with. FullEngineVersion pulumi.StringOutput `pulumi:"fullEngineVersion"` @@ -221,13 +277,13 @@ type serverlessCacheState struct { CacheUsageLimits *ServerlessCacheCacheUsageLimits `pulumi:"cacheUsageLimits"` // Timestamp of when the serverless cache was created. CreateTime *string `pulumi:"createTime"` - // The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + // The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. DailySnapshotTime *string `pulumi:"dailySnapshotTime"` // User-provided description for the serverless cache. The default is NULL. Description *string `pulumi:"description"` // Represents the information required for client programs to connect to a cache node. See `endpoint` Block for details. Endpoints []ServerlessCacheEndpoint `pulumi:"endpoints"` - // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + // Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. Engine *string `pulumi:"engine"` // The name and version number of the engine the serverless cache is compatible with. FullEngineVersion *string `pulumi:"fullEngineVersion"` @@ -268,13 +324,13 @@ type ServerlessCacheState struct { CacheUsageLimits ServerlessCacheCacheUsageLimitsPtrInput // Timestamp of when the serverless cache was created. CreateTime pulumi.StringPtrInput - // The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + // The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. DailySnapshotTime pulumi.StringPtrInput // User-provided description for the serverless cache. The default is NULL. Description pulumi.StringPtrInput // Represents the information required for client programs to connect to a cache node. See `endpoint` Block for details. Endpoints ServerlessCacheEndpointArrayInput - // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + // Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. Engine pulumi.StringPtrInput // The name and version number of the engine the serverless cache is compatible with. FullEngineVersion pulumi.StringPtrInput @@ -315,11 +371,11 @@ func (ServerlessCacheState) ElementType() reflect.Type { type serverlessCacheArgs struct { // Sets the cache usage limits for storage and ElastiCache Processing Units for the cache. See `cacheUsageLimits` Block for details. CacheUsageLimits *ServerlessCacheCacheUsageLimits `pulumi:"cacheUsageLimits"` - // The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + // The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. DailySnapshotTime *string `pulumi:"dailySnapshotTime"` // User-provided description for the serverless cache. The default is NULL. Description *string `pulumi:"description"` - // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + // Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. Engine string `pulumi:"engine"` // ARN of the customer managed key for encrypting the data at rest. If no KMS key is provided, a default service key is used. KmsKeyId *string `pulumi:"kmsKeyId"` @@ -349,11 +405,11 @@ type serverlessCacheArgs struct { type ServerlessCacheArgs struct { // Sets the cache usage limits for storage and ElastiCache Processing Units for the cache. See `cacheUsageLimits` Block for details. CacheUsageLimits ServerlessCacheCacheUsageLimitsPtrInput - // The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + // The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. DailySnapshotTime pulumi.StringPtrInput // User-provided description for the serverless cache. The default is NULL. Description pulumi.StringPtrInput - // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + // Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. Engine pulumi.StringInput // ARN of the customer managed key for encrypting the data at rest. If no KMS key is provided, a default service key is used. KmsKeyId pulumi.StringPtrInput @@ -481,7 +537,7 @@ func (o ServerlessCacheOutput) CreateTime() pulumi.StringOutput { return o.ApplyT(func(v *ServerlessCache) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) } -// The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. +// The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. func (o ServerlessCacheOutput) DailySnapshotTime() pulumi.StringOutput { return o.ApplyT(func(v *ServerlessCache) pulumi.StringOutput { return v.DailySnapshotTime }).(pulumi.StringOutput) } @@ -496,7 +552,7 @@ func (o ServerlessCacheOutput) Endpoints() ServerlessCacheEndpointArrayOutput { return o.ApplyT(func(v *ServerlessCache) ServerlessCacheEndpointArrayOutput { return v.Endpoints }).(ServerlessCacheEndpointArrayOutput) } -// Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. +// Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. func (o ServerlessCacheOutput) Engine() pulumi.StringOutput { return o.ApplyT(func(v *ServerlessCache) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/imagebuilder/init.go b/sdk/go/aws/imagebuilder/init.go index 4d4f715f9a8..0a5e6077386 100644 --- a/sdk/go/aws/imagebuilder/init.go +++ b/sdk/go/aws/imagebuilder/init.go @@ -35,6 +35,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ImageRecipe{} case "aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration": r = &InfrastructureConfiguration{} + case "aws:imagebuilder/lifecyclePolicy:LifecyclePolicy": + r = &LifecyclePolicy{} case "aws:imagebuilder/workflow:Workflow": r = &Workflow{} default: @@ -85,6 +87,11 @@ func init() { "imagebuilder/infrastructureConfiguration", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "imagebuilder/lifecyclePolicy", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "imagebuilder/workflow", diff --git a/sdk/go/aws/imagebuilder/lifecyclePolicy.go b/sdk/go/aws/imagebuilder/lifecyclePolicy.go new file mode 100644 index 00000000000..613befcd2bc --- /dev/null +++ b/sdk/go/aws/imagebuilder/lifecyclePolicy.go @@ -0,0 +1,470 @@ +// 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 imagebuilder + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages an Image Builder Lifecycle Policy. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/imagebuilder" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := aws.GetRegion(ctx, &aws.GetRegionArgs{}, nil) +// if err != nil { +// return err +// } +// currentGetPartition, err := aws.GetPartition(ctx, &aws.GetPartitionArgs{}, nil) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": "sts:AssumeRole", +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": fmt.Sprintf("imagebuilder.%v", currentGetPartition.DnsSuffix), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// example, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ +// AssumeRolePolicy: pulumi.String(json0), +// Name: pulumi.String("example"), +// }) +// if err != nil { +// return err +// } +// exampleRolePolicyAttachment, err := iam.NewRolePolicyAttachment(ctx, "example", &iam.RolePolicyAttachmentArgs{ +// PolicyArn: pulumi.Sprintf("arn:%v:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy", currentGetPartition.Partition), +// Role: example.Name, +// }) +// if err != nil { +// return err +// } +// _, err = imagebuilder.NewLifecyclePolicy(ctx, "example", &imagebuilder.LifecyclePolicyArgs{ +// Name: pulumi.String("name"), +// Description: pulumi.String("Example description"), +// ExecutionRole: example.Arn, +// ResourceType: pulumi.String("AMI_IMAGE"), +// PolicyDetails: imagebuilder.LifecyclePolicyPolicyDetailArray{ +// &imagebuilder.LifecyclePolicyPolicyDetailArgs{ +// Action: &imagebuilder.LifecyclePolicyPolicyDetailActionArgs{ +// Type: pulumi.String("DELETE"), +// }, +// Filter: &imagebuilder.LifecyclePolicyPolicyDetailFilterArgs{ +// Type: pulumi.String("AGE"), +// Value: pulumi.Int(6), +// RetainAtLeast: pulumi.Int(10), +// Unit: pulumi.String("YEARS"), +// }, +// }, +// }, +// ResourceSelection: &imagebuilder.LifecyclePolicyResourceSelectionArgs{ +// TagMap: pulumi.StringMap{ +// "key1": pulumi.String("value1"), +// "key2": pulumi.String("value2"), +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// exampleRolePolicyAttachment, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import `aws_imagebuilder_lifecycle_policy` using the Amazon Resource Name (ARN). For example: +// +// ```sh +// $ pulumi import aws:imagebuilder/lifecyclePolicy:LifecyclePolicy example arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/example +// ``` +type LifecyclePolicy struct { + pulumi.CustomResourceState + + // Amazon Resource Name (ARN) of the lifecycle policy. + Arn pulumi.StringOutput `pulumi:"arn"` + // description for the lifecycle policy. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + ExecutionRole pulumi.StringOutput `pulumi:"executionRole"` + // The name of the lifecycle policy to create. + Name pulumi.StringOutput `pulumi:"name"` + // Configuration block with policy details. Detailed below. + PolicyDetails LifecyclePolicyPolicyDetailArrayOutput `pulumi:"policyDetails"` + // Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + // + // The following arguments are optional: + ResourceSelection LifecyclePolicyResourceSelectionPtrOutput `pulumi:"resourceSelection"` + // The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + ResourceType pulumi.StringOutput `pulumi:"resourceType"` + // The status of the lifecycle policy. + Status pulumi.StringOutput `pulumi:"status"` + // Key-value map of resource tags for the Image Builder Lifecycle Policy. 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"` +} + +// NewLifecyclePolicy registers a new resource with the given unique name, arguments, and options. +func NewLifecyclePolicy(ctx *pulumi.Context, + name string, args *LifecyclePolicyArgs, opts ...pulumi.ResourceOption) (*LifecyclePolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ExecutionRole == nil { + return nil, errors.New("invalid value for required argument 'ExecutionRole'") + } + if args.ResourceType == nil { + return nil, errors.New("invalid value for required argument 'ResourceType'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource LifecyclePolicy + err := ctx.RegisterResource("aws:imagebuilder/lifecyclePolicy:LifecyclePolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLifecyclePolicy gets an existing LifecyclePolicy 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 GetLifecyclePolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LifecyclePolicyState, opts ...pulumi.ResourceOption) (*LifecyclePolicy, error) { + var resource LifecyclePolicy + err := ctx.ReadResource("aws:imagebuilder/lifecyclePolicy:LifecyclePolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LifecyclePolicy resources. +type lifecyclePolicyState struct { + // Amazon Resource Name (ARN) of the lifecycle policy. + Arn *string `pulumi:"arn"` + // description for the lifecycle policy. + Description *string `pulumi:"description"` + // The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + ExecutionRole *string `pulumi:"executionRole"` + // The name of the lifecycle policy to create. + Name *string `pulumi:"name"` + // Configuration block with policy details. Detailed below. + PolicyDetails []LifecyclePolicyPolicyDetail `pulumi:"policyDetails"` + // Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + // + // The following arguments are optional: + ResourceSelection *LifecyclePolicyResourceSelection `pulumi:"resourceSelection"` + // The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + ResourceType *string `pulumi:"resourceType"` + // The status of the lifecycle policy. + Status *string `pulumi:"status"` + // Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicyState struct { + // Amazon Resource Name (ARN) of the lifecycle policy. + Arn pulumi.StringPtrInput + // description for the lifecycle policy. + Description pulumi.StringPtrInput + // The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + ExecutionRole pulumi.StringPtrInput + // The name of the lifecycle policy to create. + Name pulumi.StringPtrInput + // Configuration block with policy details. Detailed below. + PolicyDetails LifecyclePolicyPolicyDetailArrayInput + // Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + // + // The following arguments are optional: + ResourceSelection LifecyclePolicyResourceSelectionPtrInput + // The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + ResourceType pulumi.StringPtrInput + // The status of the lifecycle policy. + Status pulumi.StringPtrInput + // Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 (LifecyclePolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*lifecyclePolicyState)(nil)).Elem() +} + +type lifecyclePolicyArgs struct { + // description for the lifecycle policy. + Description *string `pulumi:"description"` + // The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + ExecutionRole string `pulumi:"executionRole"` + // The name of the lifecycle policy to create. + Name *string `pulumi:"name"` + // Configuration block with policy details. Detailed below. + PolicyDetails []LifecyclePolicyPolicyDetail `pulumi:"policyDetails"` + // Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + // + // The following arguments are optional: + ResourceSelection *LifecyclePolicyResourceSelection `pulumi:"resourceSelection"` + // The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + ResourceType string `pulumi:"resourceType"` + // The status of the lifecycle policy. + Status *string `pulumi:"status"` + // Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicy resource. +type LifecyclePolicyArgs struct { + // description for the lifecycle policy. + Description pulumi.StringPtrInput + // The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + ExecutionRole pulumi.StringInput + // The name of the lifecycle policy to create. + Name pulumi.StringPtrInput + // Configuration block with policy details. Detailed below. + PolicyDetails LifecyclePolicyPolicyDetailArrayInput + // Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + // + // The following arguments are optional: + ResourceSelection LifecyclePolicyResourceSelectionPtrInput + // The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + ResourceType pulumi.StringInput + // The status of the lifecycle policy. + Status pulumi.StringPtrInput + // Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 (LifecyclePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*lifecyclePolicyArgs)(nil)).Elem() +} + +type LifecyclePolicyInput interface { + pulumi.Input + + ToLifecyclePolicyOutput() LifecyclePolicyOutput + ToLifecyclePolicyOutputWithContext(ctx context.Context) LifecyclePolicyOutput +} + +func (*LifecyclePolicy) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicy)(nil)).Elem() +} + +func (i *LifecyclePolicy) ToLifecyclePolicyOutput() LifecyclePolicyOutput { + return i.ToLifecyclePolicyOutputWithContext(context.Background()) +} + +func (i *LifecyclePolicy) ToLifecyclePolicyOutputWithContext(ctx context.Context) LifecyclePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyOutput) +} + +// LifecyclePolicyArrayInput is an input type that accepts LifecyclePolicyArray and LifecyclePolicyArrayOutput values. +// You can construct a concrete instance of `LifecyclePolicyArrayInput` via: +// +// LifecyclePolicyArray{ LifecyclePolicyArgs{...} } +type LifecyclePolicyArrayInput interface { + pulumi.Input + + ToLifecyclePolicyArrayOutput() LifecyclePolicyArrayOutput + ToLifecyclePolicyArrayOutputWithContext(context.Context) LifecyclePolicyArrayOutput +} + +type LifecyclePolicyArray []LifecyclePolicyInput + +func (LifecyclePolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LifecyclePolicy)(nil)).Elem() +} + +func (i LifecyclePolicyArray) ToLifecyclePolicyArrayOutput() LifecyclePolicyArrayOutput { + return i.ToLifecyclePolicyArrayOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyArray) ToLifecyclePolicyArrayOutputWithContext(ctx context.Context) LifecyclePolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyArrayOutput) +} + +// LifecyclePolicyMapInput is an input type that accepts LifecyclePolicyMap and LifecyclePolicyMapOutput values. +// You can construct a concrete instance of `LifecyclePolicyMapInput` via: +// +// LifecyclePolicyMap{ "key": LifecyclePolicyArgs{...} } +type LifecyclePolicyMapInput interface { + pulumi.Input + + ToLifecyclePolicyMapOutput() LifecyclePolicyMapOutput + ToLifecyclePolicyMapOutputWithContext(context.Context) LifecyclePolicyMapOutput +} + +type LifecyclePolicyMap map[string]LifecyclePolicyInput + +func (LifecyclePolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LifecyclePolicy)(nil)).Elem() +} + +func (i LifecyclePolicyMap) ToLifecyclePolicyMapOutput() LifecyclePolicyMapOutput { + return i.ToLifecyclePolicyMapOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyMap) ToLifecyclePolicyMapOutputWithContext(ctx context.Context) LifecyclePolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyMapOutput) +} + +type LifecyclePolicyOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicy)(nil)).Elem() +} + +func (o LifecyclePolicyOutput) ToLifecyclePolicyOutput() LifecyclePolicyOutput { + return o +} + +func (o LifecyclePolicyOutput) ToLifecyclePolicyOutputWithContext(ctx context.Context) LifecyclePolicyOutput { + return o +} + +// Amazon Resource Name (ARN) of the lifecycle policy. +func (o LifecyclePolicyOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *LifecyclePolicy) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// description for the lifecycle policy. +func (o LifecyclePolicyOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LifecyclePolicy) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). +func (o LifecyclePolicyOutput) ExecutionRole() pulumi.StringOutput { + return o.ApplyT(func(v *LifecyclePolicy) pulumi.StringOutput { return v.ExecutionRole }).(pulumi.StringOutput) +} + +// The name of the lifecycle policy to create. +func (o LifecyclePolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *LifecyclePolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Configuration block with policy details. Detailed below. +func (o LifecyclePolicyOutput) PolicyDetails() LifecyclePolicyPolicyDetailArrayOutput { + return o.ApplyT(func(v *LifecyclePolicy) LifecyclePolicyPolicyDetailArrayOutput { return v.PolicyDetails }).(LifecyclePolicyPolicyDetailArrayOutput) +} + +// Selection criteria for the resources that the lifecycle policy applies to. Detailed below. +// +// The following arguments are optional: +func (o LifecyclePolicyOutput) ResourceSelection() LifecyclePolicyResourceSelectionPtrOutput { + return o.ApplyT(func(v *LifecyclePolicy) LifecyclePolicyResourceSelectionPtrOutput { return v.ResourceSelection }).(LifecyclePolicyResourceSelectionPtrOutput) +} + +// The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. +func (o LifecyclePolicyOutput) ResourceType() pulumi.StringOutput { + return o.ApplyT(func(v *LifecyclePolicy) pulumi.StringOutput { return v.ResourceType }).(pulumi.StringOutput) +} + +// The status of the lifecycle policy. +func (o LifecyclePolicyOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *LifecyclePolicy) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +// Key-value map of resource tags for the Image Builder Lifecycle Policy. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o LifecyclePolicyOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *LifecyclePolicy) 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 LifecyclePolicyOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *LifecyclePolicy) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type LifecyclePolicyArrayOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LifecyclePolicy)(nil)).Elem() +} + +func (o LifecyclePolicyArrayOutput) ToLifecyclePolicyArrayOutput() LifecyclePolicyArrayOutput { + return o +} + +func (o LifecyclePolicyArrayOutput) ToLifecyclePolicyArrayOutputWithContext(ctx context.Context) LifecyclePolicyArrayOutput { + return o +} + +func (o LifecyclePolicyArrayOutput) Index(i pulumi.IntInput) LifecyclePolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LifecyclePolicy { + return vs[0].([]*LifecyclePolicy)[vs[1].(int)] + }).(LifecyclePolicyOutput) +} + +type LifecyclePolicyMapOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LifecyclePolicy)(nil)).Elem() +} + +func (o LifecyclePolicyMapOutput) ToLifecyclePolicyMapOutput() LifecyclePolicyMapOutput { + return o +} + +func (o LifecyclePolicyMapOutput) ToLifecyclePolicyMapOutputWithContext(ctx context.Context) LifecyclePolicyMapOutput { + return o +} + +func (o LifecyclePolicyMapOutput) MapIndex(k pulumi.StringInput) LifecyclePolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LifecyclePolicy { + return vs[0].(map[string]*LifecyclePolicy)[vs[1].(string)] + }).(LifecyclePolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyInput)(nil)).Elem(), &LifecyclePolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyArrayInput)(nil)).Elem(), LifecyclePolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyMapInput)(nil)).Elem(), LifecyclePolicyMap{}) + pulumi.RegisterOutputType(LifecyclePolicyOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyArrayOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyMapOutput{}) +} diff --git a/sdk/go/aws/imagebuilder/pulumiTypes.go b/sdk/go/aws/imagebuilder/pulumiTypes.go index 4e640dd374e..f1ef2115405 100644 --- a/sdk/go/aws/imagebuilder/pulumiTypes.go +++ b/sdk/go/aws/imagebuilder/pulumiTypes.go @@ -5588,6 +5588,1463 @@ func (o InfrastructureConfigurationLoggingS3LogsPtrOutput) S3KeyPrefix() pulumi. }).(pulumi.StringPtrOutput) } +type LifecyclePolicyPolicyDetail struct { + // Configuration details for the policy action. + Action *LifecyclePolicyPolicyDetailAction `pulumi:"action"` + // Additional rules to specify resources that should be exempt from policy actions. + ExclusionRules *LifecyclePolicyPolicyDetailExclusionRules `pulumi:"exclusionRules"` + // Specifies the resources that the lifecycle policy applies to. + // + // The following arguments are optional: + Filter *LifecyclePolicyPolicyDetailFilter `pulumi:"filter"` +} + +// LifecyclePolicyPolicyDetailInput is an input type that accepts LifecyclePolicyPolicyDetailArgs and LifecyclePolicyPolicyDetailOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailInput` via: +// +// LifecyclePolicyPolicyDetailArgs{...} +type LifecyclePolicyPolicyDetailInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailOutput() LifecyclePolicyPolicyDetailOutput + ToLifecyclePolicyPolicyDetailOutputWithContext(context.Context) LifecyclePolicyPolicyDetailOutput +} + +type LifecyclePolicyPolicyDetailArgs struct { + // Configuration details for the policy action. + Action LifecyclePolicyPolicyDetailActionPtrInput `pulumi:"action"` + // Additional rules to specify resources that should be exempt from policy actions. + ExclusionRules LifecyclePolicyPolicyDetailExclusionRulesPtrInput `pulumi:"exclusionRules"` + // Specifies the resources that the lifecycle policy applies to. + // + // The following arguments are optional: + Filter LifecyclePolicyPolicyDetailFilterPtrInput `pulumi:"filter"` +} + +func (LifecyclePolicyPolicyDetailArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetail)(nil)).Elem() +} + +func (i LifecyclePolicyPolicyDetailArgs) ToLifecyclePolicyPolicyDetailOutput() LifecyclePolicyPolicyDetailOutput { + return i.ToLifecyclePolicyPolicyDetailOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailArgs) ToLifecyclePolicyPolicyDetailOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailOutput) +} + +// LifecyclePolicyPolicyDetailArrayInput is an input type that accepts LifecyclePolicyPolicyDetailArray and LifecyclePolicyPolicyDetailArrayOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailArrayInput` via: +// +// LifecyclePolicyPolicyDetailArray{ LifecyclePolicyPolicyDetailArgs{...} } +type LifecyclePolicyPolicyDetailArrayInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailArrayOutput() LifecyclePolicyPolicyDetailArrayOutput + ToLifecyclePolicyPolicyDetailArrayOutputWithContext(context.Context) LifecyclePolicyPolicyDetailArrayOutput +} + +type LifecyclePolicyPolicyDetailArray []LifecyclePolicyPolicyDetailInput + +func (LifecyclePolicyPolicyDetailArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LifecyclePolicyPolicyDetail)(nil)).Elem() +} + +func (i LifecyclePolicyPolicyDetailArray) ToLifecyclePolicyPolicyDetailArrayOutput() LifecyclePolicyPolicyDetailArrayOutput { + return i.ToLifecyclePolicyPolicyDetailArrayOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailArray) ToLifecyclePolicyPolicyDetailArrayOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailArrayOutput) +} + +type LifecyclePolicyPolicyDetailOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetail)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailOutput) ToLifecyclePolicyPolicyDetailOutput() LifecyclePolicyPolicyDetailOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailOutput) ToLifecyclePolicyPolicyDetailOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailOutput { + return o +} + +// Configuration details for the policy action. +func (o LifecyclePolicyPolicyDetailOutput) Action() LifecyclePolicyPolicyDetailActionPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetail) *LifecyclePolicyPolicyDetailAction { return v.Action }).(LifecyclePolicyPolicyDetailActionPtrOutput) +} + +// Additional rules to specify resources that should be exempt from policy actions. +func (o LifecyclePolicyPolicyDetailOutput) ExclusionRules() LifecyclePolicyPolicyDetailExclusionRulesPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetail) *LifecyclePolicyPolicyDetailExclusionRules { + return v.ExclusionRules + }).(LifecyclePolicyPolicyDetailExclusionRulesPtrOutput) +} + +// Specifies the resources that the lifecycle policy applies to. +// +// The following arguments are optional: +func (o LifecyclePolicyPolicyDetailOutput) Filter() LifecyclePolicyPolicyDetailFilterPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetail) *LifecyclePolicyPolicyDetailFilter { return v.Filter }).(LifecyclePolicyPolicyDetailFilterPtrOutput) +} + +type LifecyclePolicyPolicyDetailArrayOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LifecyclePolicyPolicyDetail)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailArrayOutput) ToLifecyclePolicyPolicyDetailArrayOutput() LifecyclePolicyPolicyDetailArrayOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailArrayOutput) ToLifecyclePolicyPolicyDetailArrayOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailArrayOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailArrayOutput) Index(i pulumi.IntInput) LifecyclePolicyPolicyDetailOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LifecyclePolicyPolicyDetail { + return vs[0].([]LifecyclePolicyPolicyDetail)[vs[1].(int)] + }).(LifecyclePolicyPolicyDetailOutput) +} + +type LifecyclePolicyPolicyDetailAction struct { + // Specifies the resources that the lifecycle policy applies to. Detailed below. + IncludeResources *LifecyclePolicyPolicyDetailActionIncludeResources `pulumi:"includeResources"` + // Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + // + // The following arguments are optional: + Type string `pulumi:"type"` +} + +// LifecyclePolicyPolicyDetailActionInput is an input type that accepts LifecyclePolicyPolicyDetailActionArgs and LifecyclePolicyPolicyDetailActionOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailActionInput` via: +// +// LifecyclePolicyPolicyDetailActionArgs{...} +type LifecyclePolicyPolicyDetailActionInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailActionOutput() LifecyclePolicyPolicyDetailActionOutput + ToLifecyclePolicyPolicyDetailActionOutputWithContext(context.Context) LifecyclePolicyPolicyDetailActionOutput +} + +type LifecyclePolicyPolicyDetailActionArgs struct { + // Specifies the resources that the lifecycle policy applies to. Detailed below. + IncludeResources LifecyclePolicyPolicyDetailActionIncludeResourcesPtrInput `pulumi:"includeResources"` + // Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + // + // The following arguments are optional: + Type pulumi.StringInput `pulumi:"type"` +} + +func (LifecyclePolicyPolicyDetailActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailAction)(nil)).Elem() +} + +func (i LifecyclePolicyPolicyDetailActionArgs) ToLifecyclePolicyPolicyDetailActionOutput() LifecyclePolicyPolicyDetailActionOutput { + return i.ToLifecyclePolicyPolicyDetailActionOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailActionArgs) ToLifecyclePolicyPolicyDetailActionOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailActionOutput) +} + +func (i LifecyclePolicyPolicyDetailActionArgs) ToLifecyclePolicyPolicyDetailActionPtrOutput() LifecyclePolicyPolicyDetailActionPtrOutput { + return i.ToLifecyclePolicyPolicyDetailActionPtrOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailActionArgs) ToLifecyclePolicyPolicyDetailActionPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailActionOutput).ToLifecyclePolicyPolicyDetailActionPtrOutputWithContext(ctx) +} + +// LifecyclePolicyPolicyDetailActionPtrInput is an input type that accepts LifecyclePolicyPolicyDetailActionArgs, LifecyclePolicyPolicyDetailActionPtr and LifecyclePolicyPolicyDetailActionPtrOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailActionPtrInput` via: +// +// LifecyclePolicyPolicyDetailActionArgs{...} +// +// or: +// +// nil +type LifecyclePolicyPolicyDetailActionPtrInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailActionPtrOutput() LifecyclePolicyPolicyDetailActionPtrOutput + ToLifecyclePolicyPolicyDetailActionPtrOutputWithContext(context.Context) LifecyclePolicyPolicyDetailActionPtrOutput +} + +type lifecyclePolicyPolicyDetailActionPtrType LifecyclePolicyPolicyDetailActionArgs + +func LifecyclePolicyPolicyDetailActionPtr(v *LifecyclePolicyPolicyDetailActionArgs) LifecyclePolicyPolicyDetailActionPtrInput { + return (*lifecyclePolicyPolicyDetailActionPtrType)(v) +} + +func (*lifecyclePolicyPolicyDetailActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailAction)(nil)).Elem() +} + +func (i *lifecyclePolicyPolicyDetailActionPtrType) ToLifecyclePolicyPolicyDetailActionPtrOutput() LifecyclePolicyPolicyDetailActionPtrOutput { + return i.ToLifecyclePolicyPolicyDetailActionPtrOutputWithContext(context.Background()) +} + +func (i *lifecyclePolicyPolicyDetailActionPtrType) ToLifecyclePolicyPolicyDetailActionPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailActionPtrOutput) +} + +type LifecyclePolicyPolicyDetailActionOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailAction)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailActionOutput) ToLifecyclePolicyPolicyDetailActionOutput() LifecyclePolicyPolicyDetailActionOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailActionOutput) ToLifecyclePolicyPolicyDetailActionOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailActionOutput) ToLifecyclePolicyPolicyDetailActionPtrOutput() LifecyclePolicyPolicyDetailActionPtrOutput { + return o.ToLifecyclePolicyPolicyDetailActionPtrOutputWithContext(context.Background()) +} + +func (o LifecyclePolicyPolicyDetailActionOutput) ToLifecyclePolicyPolicyDetailActionPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LifecyclePolicyPolicyDetailAction) *LifecyclePolicyPolicyDetailAction { + return &v + }).(LifecyclePolicyPolicyDetailActionPtrOutput) +} + +// Specifies the resources that the lifecycle policy applies to. Detailed below. +func (o LifecyclePolicyPolicyDetailActionOutput) IncludeResources() LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailAction) *LifecyclePolicyPolicyDetailActionIncludeResources { + return v.IncludeResources + }).(LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) +} + +// Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. +// +// The following arguments are optional: +func (o LifecyclePolicyPolicyDetailActionOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailAction) string { return v.Type }).(pulumi.StringOutput) +} + +type LifecyclePolicyPolicyDetailActionPtrOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailAction)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailActionPtrOutput) ToLifecyclePolicyPolicyDetailActionPtrOutput() LifecyclePolicyPolicyDetailActionPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailActionPtrOutput) ToLifecyclePolicyPolicyDetailActionPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailActionPtrOutput) Elem() LifecyclePolicyPolicyDetailActionOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailAction) LifecyclePolicyPolicyDetailAction { + if v != nil { + return *v + } + var ret LifecyclePolicyPolicyDetailAction + return ret + }).(LifecyclePolicyPolicyDetailActionOutput) +} + +// Specifies the resources that the lifecycle policy applies to. Detailed below. +func (o LifecyclePolicyPolicyDetailActionPtrOutput) IncludeResources() LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailAction) *LifecyclePolicyPolicyDetailActionIncludeResources { + if v == nil { + return nil + } + return v.IncludeResources + }).(LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) +} + +// Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. +// +// The following arguments are optional: +func (o LifecyclePolicyPolicyDetailActionPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailAction) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +type LifecyclePolicyPolicyDetailActionIncludeResources struct { + // Specifies whether the lifecycle action should apply to distributed AMIs. + Amis *bool `pulumi:"amis"` + // Specifies whether the lifecycle action should apply to distributed containers. + Containers *bool `pulumi:"containers"` + // Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + Snapshots *bool `pulumi:"snapshots"` +} + +// LifecyclePolicyPolicyDetailActionIncludeResourcesInput is an input type that accepts LifecyclePolicyPolicyDetailActionIncludeResourcesArgs and LifecyclePolicyPolicyDetailActionIncludeResourcesOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailActionIncludeResourcesInput` via: +// +// LifecyclePolicyPolicyDetailActionIncludeResourcesArgs{...} +type LifecyclePolicyPolicyDetailActionIncludeResourcesInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailActionIncludeResourcesOutput() LifecyclePolicyPolicyDetailActionIncludeResourcesOutput + ToLifecyclePolicyPolicyDetailActionIncludeResourcesOutputWithContext(context.Context) LifecyclePolicyPolicyDetailActionIncludeResourcesOutput +} + +type LifecyclePolicyPolicyDetailActionIncludeResourcesArgs struct { + // Specifies whether the lifecycle action should apply to distributed AMIs. + Amis pulumi.BoolPtrInput `pulumi:"amis"` + // Specifies whether the lifecycle action should apply to distributed containers. + Containers pulumi.BoolPtrInput `pulumi:"containers"` + // Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + Snapshots pulumi.BoolPtrInput `pulumi:"snapshots"` +} + +func (LifecyclePolicyPolicyDetailActionIncludeResourcesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailActionIncludeResources)(nil)).Elem() +} + +func (i LifecyclePolicyPolicyDetailActionIncludeResourcesArgs) ToLifecyclePolicyPolicyDetailActionIncludeResourcesOutput() LifecyclePolicyPolicyDetailActionIncludeResourcesOutput { + return i.ToLifecyclePolicyPolicyDetailActionIncludeResourcesOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailActionIncludeResourcesArgs) ToLifecyclePolicyPolicyDetailActionIncludeResourcesOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionIncludeResourcesOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailActionIncludeResourcesOutput) +} + +func (i LifecyclePolicyPolicyDetailActionIncludeResourcesArgs) ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput() LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput { + return i.ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailActionIncludeResourcesArgs) ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailActionIncludeResourcesOutput).ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutputWithContext(ctx) +} + +// LifecyclePolicyPolicyDetailActionIncludeResourcesPtrInput is an input type that accepts LifecyclePolicyPolicyDetailActionIncludeResourcesArgs, LifecyclePolicyPolicyDetailActionIncludeResourcesPtr and LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailActionIncludeResourcesPtrInput` via: +// +// LifecyclePolicyPolicyDetailActionIncludeResourcesArgs{...} +// +// or: +// +// nil +type LifecyclePolicyPolicyDetailActionIncludeResourcesPtrInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput() LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput + ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutputWithContext(context.Context) LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput +} + +type lifecyclePolicyPolicyDetailActionIncludeResourcesPtrType LifecyclePolicyPolicyDetailActionIncludeResourcesArgs + +func LifecyclePolicyPolicyDetailActionIncludeResourcesPtr(v *LifecyclePolicyPolicyDetailActionIncludeResourcesArgs) LifecyclePolicyPolicyDetailActionIncludeResourcesPtrInput { + return (*lifecyclePolicyPolicyDetailActionIncludeResourcesPtrType)(v) +} + +func (*lifecyclePolicyPolicyDetailActionIncludeResourcesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailActionIncludeResources)(nil)).Elem() +} + +func (i *lifecyclePolicyPolicyDetailActionIncludeResourcesPtrType) ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput() LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput { + return i.ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutputWithContext(context.Background()) +} + +func (i *lifecyclePolicyPolicyDetailActionIncludeResourcesPtrType) ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) +} + +type LifecyclePolicyPolicyDetailActionIncludeResourcesOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailActionIncludeResourcesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailActionIncludeResources)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesOutput) ToLifecyclePolicyPolicyDetailActionIncludeResourcesOutput() LifecyclePolicyPolicyDetailActionIncludeResourcesOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesOutput) ToLifecyclePolicyPolicyDetailActionIncludeResourcesOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionIncludeResourcesOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesOutput) ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput() LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput { + return o.ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutputWithContext(context.Background()) +} + +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesOutput) ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LifecyclePolicyPolicyDetailActionIncludeResources) *LifecyclePolicyPolicyDetailActionIncludeResources { + return &v + }).(LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) +} + +// Specifies whether the lifecycle action should apply to distributed AMIs. +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesOutput) Amis() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailActionIncludeResources) *bool { return v.Amis }).(pulumi.BoolPtrOutput) +} + +// Specifies whether the lifecycle action should apply to distributed containers. +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesOutput) Containers() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailActionIncludeResources) *bool { return v.Containers }).(pulumi.BoolPtrOutput) +} + +// Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesOutput) Snapshots() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailActionIncludeResources) *bool { return v.Snapshots }).(pulumi.BoolPtrOutput) +} + +type LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailActionIncludeResources)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput() LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) ToLifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) Elem() LifecyclePolicyPolicyDetailActionIncludeResourcesOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailActionIncludeResources) LifecyclePolicyPolicyDetailActionIncludeResources { + if v != nil { + return *v + } + var ret LifecyclePolicyPolicyDetailActionIncludeResources + return ret + }).(LifecyclePolicyPolicyDetailActionIncludeResourcesOutput) +} + +// Specifies whether the lifecycle action should apply to distributed AMIs. +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) Amis() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailActionIncludeResources) *bool { + if v == nil { + return nil + } + return v.Amis + }).(pulumi.BoolPtrOutput) +} + +// Specifies whether the lifecycle action should apply to distributed containers. +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) Containers() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailActionIncludeResources) *bool { + if v == nil { + return nil + } + return v.Containers + }).(pulumi.BoolPtrOutput) +} + +// Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. +func (o LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput) Snapshots() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailActionIncludeResources) *bool { + if v == nil { + return nil + } + return v.Snapshots + }).(pulumi.BoolPtrOutput) +} + +type LifecyclePolicyPolicyDetailExclusionRules struct { + // Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + Amis *LifecyclePolicyPolicyDetailExclusionRulesAmis `pulumi:"amis"` + // Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + TagMap map[string]string `pulumi:"tagMap"` +} + +// LifecyclePolicyPolicyDetailExclusionRulesInput is an input type that accepts LifecyclePolicyPolicyDetailExclusionRulesArgs and LifecyclePolicyPolicyDetailExclusionRulesOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailExclusionRulesInput` via: +// +// LifecyclePolicyPolicyDetailExclusionRulesArgs{...} +type LifecyclePolicyPolicyDetailExclusionRulesInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailExclusionRulesOutput() LifecyclePolicyPolicyDetailExclusionRulesOutput + ToLifecyclePolicyPolicyDetailExclusionRulesOutputWithContext(context.Context) LifecyclePolicyPolicyDetailExclusionRulesOutput +} + +type LifecyclePolicyPolicyDetailExclusionRulesArgs struct { + // Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + Amis LifecyclePolicyPolicyDetailExclusionRulesAmisPtrInput `pulumi:"amis"` + // Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + TagMap pulumi.StringMapInput `pulumi:"tagMap"` +} + +func (LifecyclePolicyPolicyDetailExclusionRulesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRules)(nil)).Elem() +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesArgs) ToLifecyclePolicyPolicyDetailExclusionRulesOutput() LifecyclePolicyPolicyDetailExclusionRulesOutput { + return i.ToLifecyclePolicyPolicyDetailExclusionRulesOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesArgs) ToLifecyclePolicyPolicyDetailExclusionRulesOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailExclusionRulesOutput) +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesArgs) ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesPtrOutput { + return i.ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesArgs) ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailExclusionRulesOutput).ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutputWithContext(ctx) +} + +// LifecyclePolicyPolicyDetailExclusionRulesPtrInput is an input type that accepts LifecyclePolicyPolicyDetailExclusionRulesArgs, LifecyclePolicyPolicyDetailExclusionRulesPtr and LifecyclePolicyPolicyDetailExclusionRulesPtrOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailExclusionRulesPtrInput` via: +// +// LifecyclePolicyPolicyDetailExclusionRulesArgs{...} +// +// or: +// +// nil +type LifecyclePolicyPolicyDetailExclusionRulesPtrInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesPtrOutput + ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutputWithContext(context.Context) LifecyclePolicyPolicyDetailExclusionRulesPtrOutput +} + +type lifecyclePolicyPolicyDetailExclusionRulesPtrType LifecyclePolicyPolicyDetailExclusionRulesArgs + +func LifecyclePolicyPolicyDetailExclusionRulesPtr(v *LifecyclePolicyPolicyDetailExclusionRulesArgs) LifecyclePolicyPolicyDetailExclusionRulesPtrInput { + return (*lifecyclePolicyPolicyDetailExclusionRulesPtrType)(v) +} + +func (*lifecyclePolicyPolicyDetailExclusionRulesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailExclusionRules)(nil)).Elem() +} + +func (i *lifecyclePolicyPolicyDetailExclusionRulesPtrType) ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesPtrOutput { + return i.ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutputWithContext(context.Background()) +} + +func (i *lifecyclePolicyPolicyDetailExclusionRulesPtrType) ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailExclusionRulesPtrOutput) +} + +type LifecyclePolicyPolicyDetailExclusionRulesOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailExclusionRulesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRules)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesOutput) ToLifecyclePolicyPolicyDetailExclusionRulesOutput() LifecyclePolicyPolicyDetailExclusionRulesOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesOutput) ToLifecyclePolicyPolicyDetailExclusionRulesOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesOutput) ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesPtrOutput { + return o.ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutputWithContext(context.Background()) +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesOutput) ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LifecyclePolicyPolicyDetailExclusionRules) *LifecyclePolicyPolicyDetailExclusionRules { + return &v + }).(LifecyclePolicyPolicyDetailExclusionRulesPtrOutput) +} + +// Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. +func (o LifecyclePolicyPolicyDetailExclusionRulesOutput) Amis() LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailExclusionRules) *LifecyclePolicyPolicyDetailExclusionRulesAmis { + return v.Amis + }).(LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) +} + +// Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. +func (o LifecyclePolicyPolicyDetailExclusionRulesOutput) TagMap() pulumi.StringMapOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailExclusionRules) map[string]string { return v.TagMap }).(pulumi.StringMapOutput) +} + +type LifecyclePolicyPolicyDetailExclusionRulesPtrOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailExclusionRulesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailExclusionRules)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesPtrOutput) ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesPtrOutput) ToLifecyclePolicyPolicyDetailExclusionRulesPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesPtrOutput) Elem() LifecyclePolicyPolicyDetailExclusionRulesOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRules) LifecyclePolicyPolicyDetailExclusionRules { + if v != nil { + return *v + } + var ret LifecyclePolicyPolicyDetailExclusionRules + return ret + }).(LifecyclePolicyPolicyDetailExclusionRulesOutput) +} + +// Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. +func (o LifecyclePolicyPolicyDetailExclusionRulesPtrOutput) Amis() LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRules) *LifecyclePolicyPolicyDetailExclusionRulesAmis { + if v == nil { + return nil + } + return v.Amis + }).(LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) +} + +// Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. +func (o LifecyclePolicyPolicyDetailExclusionRulesPtrOutput) TagMap() pulumi.StringMapOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRules) map[string]string { + if v == nil { + return nil + } + return v.TagMap + }).(pulumi.StringMapOutput) +} + +type LifecyclePolicyPolicyDetailExclusionRulesAmis struct { + // Configures whether public AMIs are excluded from the lifecycle action. + IsPublic *bool `pulumi:"isPublic"` + // Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + LastLaunched *LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched `pulumi:"lastLaunched"` + // Configures AWS Regions that are excluded from the lifecycle action. + Regions []string `pulumi:"regions"` + // Specifies AWS accounts whose resources are excluded from the lifecycle action. + SharedAccounts []string `pulumi:"sharedAccounts"` + // Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + TagMap map[string]string `pulumi:"tagMap"` +} + +// LifecyclePolicyPolicyDetailExclusionRulesAmisInput is an input type that accepts LifecyclePolicyPolicyDetailExclusionRulesAmisArgs and LifecyclePolicyPolicyDetailExclusionRulesAmisOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailExclusionRulesAmisInput` via: +// +// LifecyclePolicyPolicyDetailExclusionRulesAmisArgs{...} +type LifecyclePolicyPolicyDetailExclusionRulesAmisInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailExclusionRulesAmisOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisOutput + ToLifecyclePolicyPolicyDetailExclusionRulesAmisOutputWithContext(context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisOutput +} + +type LifecyclePolicyPolicyDetailExclusionRulesAmisArgs struct { + // Configures whether public AMIs are excluded from the lifecycle action. + IsPublic pulumi.BoolPtrInput `pulumi:"isPublic"` + // Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + LastLaunched LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrInput `pulumi:"lastLaunched"` + // Configures AWS Regions that are excluded from the lifecycle action. + Regions pulumi.StringArrayInput `pulumi:"regions"` + // Specifies AWS accounts whose resources are excluded from the lifecycle action. + SharedAccounts pulumi.StringArrayInput `pulumi:"sharedAccounts"` + // Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + TagMap pulumi.StringMapInput `pulumi:"tagMap"` +} + +func (LifecyclePolicyPolicyDetailExclusionRulesAmisArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRulesAmis)(nil)).Elem() +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesAmisArgs) ToLifecyclePolicyPolicyDetailExclusionRulesAmisOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisOutput { + return i.ToLifecyclePolicyPolicyDetailExclusionRulesAmisOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesAmisArgs) ToLifecyclePolicyPolicyDetailExclusionRulesAmisOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesAmisArgs) ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput { + return i.ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesAmisArgs) ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailExclusionRulesAmisOutput).ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutputWithContext(ctx) +} + +// LifecyclePolicyPolicyDetailExclusionRulesAmisPtrInput is an input type that accepts LifecyclePolicyPolicyDetailExclusionRulesAmisArgs, LifecyclePolicyPolicyDetailExclusionRulesAmisPtr and LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailExclusionRulesAmisPtrInput` via: +// +// LifecyclePolicyPolicyDetailExclusionRulesAmisArgs{...} +// +// or: +// +// nil +type LifecyclePolicyPolicyDetailExclusionRulesAmisPtrInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput + ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutputWithContext(context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput +} + +type lifecyclePolicyPolicyDetailExclusionRulesAmisPtrType LifecyclePolicyPolicyDetailExclusionRulesAmisArgs + +func LifecyclePolicyPolicyDetailExclusionRulesAmisPtr(v *LifecyclePolicyPolicyDetailExclusionRulesAmisArgs) LifecyclePolicyPolicyDetailExclusionRulesAmisPtrInput { + return (*lifecyclePolicyPolicyDetailExclusionRulesAmisPtrType)(v) +} + +func (*lifecyclePolicyPolicyDetailExclusionRulesAmisPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailExclusionRulesAmis)(nil)).Elem() +} + +func (i *lifecyclePolicyPolicyDetailExclusionRulesAmisPtrType) ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput { + return i.ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutputWithContext(context.Background()) +} + +func (i *lifecyclePolicyPolicyDetailExclusionRulesAmisPtrType) ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) +} + +type LifecyclePolicyPolicyDetailExclusionRulesAmisOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRulesAmis)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput { + return o.ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutputWithContext(context.Background()) +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LifecyclePolicyPolicyDetailExclusionRulesAmis) *LifecyclePolicyPolicyDetailExclusionRulesAmis { + return &v + }).(LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) +} + +// Configures whether public AMIs are excluded from the lifecycle action. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) IsPublic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailExclusionRulesAmis) *bool { return v.IsPublic }).(pulumi.BoolPtrOutput) +} + +// Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) LastLaunched() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailExclusionRulesAmis) *LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched { + return v.LastLaunched + }).(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput) +} + +// Configures AWS Regions that are excluded from the lifecycle action. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) Regions() pulumi.StringArrayOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailExclusionRulesAmis) []string { return v.Regions }).(pulumi.StringArrayOutput) +} + +// Specifies AWS accounts whose resources are excluded from the lifecycle action. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) SharedAccounts() pulumi.StringArrayOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailExclusionRulesAmis) []string { return v.SharedAccounts }).(pulumi.StringArrayOutput) +} + +// Lists tags that should be excluded from lifecycle actions for the AMIs that have them. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) TagMap() pulumi.StringMapOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailExclusionRulesAmis) map[string]string { return v.TagMap }).(pulumi.StringMapOutput) +} + +type LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailExclusionRulesAmis)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) Elem() LifecyclePolicyPolicyDetailExclusionRulesAmisOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRulesAmis) LifecyclePolicyPolicyDetailExclusionRulesAmis { + if v != nil { + return *v + } + var ret LifecyclePolicyPolicyDetailExclusionRulesAmis + return ret + }).(LifecyclePolicyPolicyDetailExclusionRulesAmisOutput) +} + +// Configures whether public AMIs are excluded from the lifecycle action. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) IsPublic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRulesAmis) *bool { + if v == nil { + return nil + } + return v.IsPublic + }).(pulumi.BoolPtrOutput) +} + +// Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) LastLaunched() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRulesAmis) *LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched { + if v == nil { + return nil + } + return v.LastLaunched + }).(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput) +} + +// Configures AWS Regions that are excluded from the lifecycle action. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) Regions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRulesAmis) []string { + if v == nil { + return nil + } + return v.Regions + }).(pulumi.StringArrayOutput) +} + +// Specifies AWS accounts whose resources are excluded from the lifecycle action. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) SharedAccounts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRulesAmis) []string { + if v == nil { + return nil + } + return v.SharedAccounts + }).(pulumi.StringArrayOutput) +} + +// Lists tags that should be excluded from lifecycle actions for the AMIs that have them. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput) TagMap() pulumi.StringMapOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRulesAmis) map[string]string { + if v == nil { + return nil + } + return v.TagMap + }).(pulumi.StringMapOutput) +} + +type LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched struct { + // Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + Unit string `pulumi:"unit"` + // The integer number of units for the time period. For example 6 (months). + Value int `pulumi:"value"` +} + +// LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedInput is an input type that accepts LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs and LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedInput` via: +// +// LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs{...} +type LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput + ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutputWithContext(context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput +} + +type LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs struct { + // Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + Unit pulumi.StringInput `pulumi:"unit"` + // The integer number of units for the time period. For example 6 (months). + Value pulumi.IntInput `pulumi:"value"` +} + +func (LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched)(nil)).Elem() +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput { + return i.ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput) +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput { + return i.ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput).ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutputWithContext(ctx) +} + +// LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrInput is an input type that accepts LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs, LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtr and LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrInput` via: +// +// LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs{...} +// +// or: +// +// nil +type LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput + ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutputWithContext(context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput +} + +type lifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrType LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs + +func LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtr(v *LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs) LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrInput { + return (*lifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrType)(v) +} + +func (*lifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched)(nil)).Elem() +} + +func (i *lifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrType) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput { + return i.ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutputWithContext(context.Background()) +} + +func (i *lifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrType) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput) +} + +type LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput { + return o.ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutputWithContext(context.Background()) +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched) *LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched { + return &v + }).(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput) +} + +// Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched) string { return v.Unit }).(pulumi.StringOutput) +} + +// The integer number of units for the time period. For example 6 (months). +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched) int { return v.Value }).(pulumi.IntOutput) +} + +type LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput) ToLifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput) Elem() LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched) LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched { + if v != nil { + return *v + } + var ret LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched + return ret + }).(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput) +} + +// Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched) *string { + if v == nil { + return nil + } + return &v.Unit + }).(pulumi.StringPtrOutput) +} + +// The integer number of units for the time period. For example 6 (months). +func (o LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type LifecyclePolicyPolicyDetailFilter struct { + // For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + RetainAtLeast *int `pulumi:"retainAtLeast"` + // Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + Type string `pulumi:"type"` + // Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + Unit *string `pulumi:"unit"` + // The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + // + // The following arguments are optional: + Value int `pulumi:"value"` +} + +// LifecyclePolicyPolicyDetailFilterInput is an input type that accepts LifecyclePolicyPolicyDetailFilterArgs and LifecyclePolicyPolicyDetailFilterOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailFilterInput` via: +// +// LifecyclePolicyPolicyDetailFilterArgs{...} +type LifecyclePolicyPolicyDetailFilterInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailFilterOutput() LifecyclePolicyPolicyDetailFilterOutput + ToLifecyclePolicyPolicyDetailFilterOutputWithContext(context.Context) LifecyclePolicyPolicyDetailFilterOutput +} + +type LifecyclePolicyPolicyDetailFilterArgs struct { + // For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + RetainAtLeast pulumi.IntPtrInput `pulumi:"retainAtLeast"` + // Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + Type pulumi.StringInput `pulumi:"type"` + // Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + Unit pulumi.StringPtrInput `pulumi:"unit"` + // The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + // + // The following arguments are optional: + Value pulumi.IntInput `pulumi:"value"` +} + +func (LifecyclePolicyPolicyDetailFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailFilter)(nil)).Elem() +} + +func (i LifecyclePolicyPolicyDetailFilterArgs) ToLifecyclePolicyPolicyDetailFilterOutput() LifecyclePolicyPolicyDetailFilterOutput { + return i.ToLifecyclePolicyPolicyDetailFilterOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailFilterArgs) ToLifecyclePolicyPolicyDetailFilterOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailFilterOutput) +} + +func (i LifecyclePolicyPolicyDetailFilterArgs) ToLifecyclePolicyPolicyDetailFilterPtrOutput() LifecyclePolicyPolicyDetailFilterPtrOutput { + return i.ToLifecyclePolicyPolicyDetailFilterPtrOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyPolicyDetailFilterArgs) ToLifecyclePolicyPolicyDetailFilterPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailFilterOutput).ToLifecyclePolicyPolicyDetailFilterPtrOutputWithContext(ctx) +} + +// LifecyclePolicyPolicyDetailFilterPtrInput is an input type that accepts LifecyclePolicyPolicyDetailFilterArgs, LifecyclePolicyPolicyDetailFilterPtr and LifecyclePolicyPolicyDetailFilterPtrOutput values. +// You can construct a concrete instance of `LifecyclePolicyPolicyDetailFilterPtrInput` via: +// +// LifecyclePolicyPolicyDetailFilterArgs{...} +// +// or: +// +// nil +type LifecyclePolicyPolicyDetailFilterPtrInput interface { + pulumi.Input + + ToLifecyclePolicyPolicyDetailFilterPtrOutput() LifecyclePolicyPolicyDetailFilterPtrOutput + ToLifecyclePolicyPolicyDetailFilterPtrOutputWithContext(context.Context) LifecyclePolicyPolicyDetailFilterPtrOutput +} + +type lifecyclePolicyPolicyDetailFilterPtrType LifecyclePolicyPolicyDetailFilterArgs + +func LifecyclePolicyPolicyDetailFilterPtr(v *LifecyclePolicyPolicyDetailFilterArgs) LifecyclePolicyPolicyDetailFilterPtrInput { + return (*lifecyclePolicyPolicyDetailFilterPtrType)(v) +} + +func (*lifecyclePolicyPolicyDetailFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailFilter)(nil)).Elem() +} + +func (i *lifecyclePolicyPolicyDetailFilterPtrType) ToLifecyclePolicyPolicyDetailFilterPtrOutput() LifecyclePolicyPolicyDetailFilterPtrOutput { + return i.ToLifecyclePolicyPolicyDetailFilterPtrOutputWithContext(context.Background()) +} + +func (i *lifecyclePolicyPolicyDetailFilterPtrType) ToLifecyclePolicyPolicyDetailFilterPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyPolicyDetailFilterPtrOutput) +} + +type LifecyclePolicyPolicyDetailFilterOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyPolicyDetailFilter)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailFilterOutput) ToLifecyclePolicyPolicyDetailFilterOutput() LifecyclePolicyPolicyDetailFilterOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailFilterOutput) ToLifecyclePolicyPolicyDetailFilterOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailFilterOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailFilterOutput) ToLifecyclePolicyPolicyDetailFilterPtrOutput() LifecyclePolicyPolicyDetailFilterPtrOutput { + return o.ToLifecyclePolicyPolicyDetailFilterPtrOutputWithContext(context.Background()) +} + +func (o LifecyclePolicyPolicyDetailFilterOutput) ToLifecyclePolicyPolicyDetailFilterPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LifecyclePolicyPolicyDetailFilter) *LifecyclePolicyPolicyDetailFilter { + return &v + }).(LifecyclePolicyPolicyDetailFilterPtrOutput) +} + +// For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. +func (o LifecyclePolicyPolicyDetailFilterOutput) RetainAtLeast() pulumi.IntPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailFilter) *int { return v.RetainAtLeast }).(pulumi.IntPtrOutput) +} + +// Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. +func (o LifecyclePolicyPolicyDetailFilterOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailFilter) string { return v.Type }).(pulumi.StringOutput) +} + +// Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. +func (o LifecyclePolicyPolicyDetailFilterOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailFilter) *string { return v.Unit }).(pulumi.StringPtrOutput) +} + +// The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. +// +// The following arguments are optional: +func (o LifecyclePolicyPolicyDetailFilterOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v LifecyclePolicyPolicyDetailFilter) int { return v.Value }).(pulumi.IntOutput) +} + +type LifecyclePolicyPolicyDetailFilterPtrOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyPolicyDetailFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyPolicyDetailFilter)(nil)).Elem() +} + +func (o LifecyclePolicyPolicyDetailFilterPtrOutput) ToLifecyclePolicyPolicyDetailFilterPtrOutput() LifecyclePolicyPolicyDetailFilterPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailFilterPtrOutput) ToLifecyclePolicyPolicyDetailFilterPtrOutputWithContext(ctx context.Context) LifecyclePolicyPolicyDetailFilterPtrOutput { + return o +} + +func (o LifecyclePolicyPolicyDetailFilterPtrOutput) Elem() LifecyclePolicyPolicyDetailFilterOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailFilter) LifecyclePolicyPolicyDetailFilter { + if v != nil { + return *v + } + var ret LifecyclePolicyPolicyDetailFilter + return ret + }).(LifecyclePolicyPolicyDetailFilterOutput) +} + +// For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. +func (o LifecyclePolicyPolicyDetailFilterPtrOutput) RetainAtLeast() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailFilter) *int { + if v == nil { + return nil + } + return v.RetainAtLeast + }).(pulumi.IntPtrOutput) +} + +// Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. +func (o LifecyclePolicyPolicyDetailFilterPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailFilter) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +// Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. +func (o LifecyclePolicyPolicyDetailFilterPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailFilter) *string { + if v == nil { + return nil + } + return v.Unit + }).(pulumi.StringPtrOutput) +} + +// The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. +// +// The following arguments are optional: +func (o LifecyclePolicyPolicyDetailFilterPtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LifecyclePolicyPolicyDetailFilter) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type LifecyclePolicyResourceSelection struct { + // A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + Recipes []LifecyclePolicyResourceSelectionRecipe `pulumi:"recipes"` + // A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + TagMap map[string]string `pulumi:"tagMap"` +} + +// LifecyclePolicyResourceSelectionInput is an input type that accepts LifecyclePolicyResourceSelectionArgs and LifecyclePolicyResourceSelectionOutput values. +// You can construct a concrete instance of `LifecyclePolicyResourceSelectionInput` via: +// +// LifecyclePolicyResourceSelectionArgs{...} +type LifecyclePolicyResourceSelectionInput interface { + pulumi.Input + + ToLifecyclePolicyResourceSelectionOutput() LifecyclePolicyResourceSelectionOutput + ToLifecyclePolicyResourceSelectionOutputWithContext(context.Context) LifecyclePolicyResourceSelectionOutput +} + +type LifecyclePolicyResourceSelectionArgs struct { + // A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + Recipes LifecyclePolicyResourceSelectionRecipeArrayInput `pulumi:"recipes"` + // A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + TagMap pulumi.StringMapInput `pulumi:"tagMap"` +} + +func (LifecyclePolicyResourceSelectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyResourceSelection)(nil)).Elem() +} + +func (i LifecyclePolicyResourceSelectionArgs) ToLifecyclePolicyResourceSelectionOutput() LifecyclePolicyResourceSelectionOutput { + return i.ToLifecyclePolicyResourceSelectionOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyResourceSelectionArgs) ToLifecyclePolicyResourceSelectionOutputWithContext(ctx context.Context) LifecyclePolicyResourceSelectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyResourceSelectionOutput) +} + +func (i LifecyclePolicyResourceSelectionArgs) ToLifecyclePolicyResourceSelectionPtrOutput() LifecyclePolicyResourceSelectionPtrOutput { + return i.ToLifecyclePolicyResourceSelectionPtrOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyResourceSelectionArgs) ToLifecyclePolicyResourceSelectionPtrOutputWithContext(ctx context.Context) LifecyclePolicyResourceSelectionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyResourceSelectionOutput).ToLifecyclePolicyResourceSelectionPtrOutputWithContext(ctx) +} + +// LifecyclePolicyResourceSelectionPtrInput is an input type that accepts LifecyclePolicyResourceSelectionArgs, LifecyclePolicyResourceSelectionPtr and LifecyclePolicyResourceSelectionPtrOutput values. +// You can construct a concrete instance of `LifecyclePolicyResourceSelectionPtrInput` via: +// +// LifecyclePolicyResourceSelectionArgs{...} +// +// or: +// +// nil +type LifecyclePolicyResourceSelectionPtrInput interface { + pulumi.Input + + ToLifecyclePolicyResourceSelectionPtrOutput() LifecyclePolicyResourceSelectionPtrOutput + ToLifecyclePolicyResourceSelectionPtrOutputWithContext(context.Context) LifecyclePolicyResourceSelectionPtrOutput +} + +type lifecyclePolicyResourceSelectionPtrType LifecyclePolicyResourceSelectionArgs + +func LifecyclePolicyResourceSelectionPtr(v *LifecyclePolicyResourceSelectionArgs) LifecyclePolicyResourceSelectionPtrInput { + return (*lifecyclePolicyResourceSelectionPtrType)(v) +} + +func (*lifecyclePolicyResourceSelectionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyResourceSelection)(nil)).Elem() +} + +func (i *lifecyclePolicyResourceSelectionPtrType) ToLifecyclePolicyResourceSelectionPtrOutput() LifecyclePolicyResourceSelectionPtrOutput { + return i.ToLifecyclePolicyResourceSelectionPtrOutputWithContext(context.Background()) +} + +func (i *lifecyclePolicyResourceSelectionPtrType) ToLifecyclePolicyResourceSelectionPtrOutputWithContext(ctx context.Context) LifecyclePolicyResourceSelectionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyResourceSelectionPtrOutput) +} + +type LifecyclePolicyResourceSelectionOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyResourceSelectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyResourceSelection)(nil)).Elem() +} + +func (o LifecyclePolicyResourceSelectionOutput) ToLifecyclePolicyResourceSelectionOutput() LifecyclePolicyResourceSelectionOutput { + return o +} + +func (o LifecyclePolicyResourceSelectionOutput) ToLifecyclePolicyResourceSelectionOutputWithContext(ctx context.Context) LifecyclePolicyResourceSelectionOutput { + return o +} + +func (o LifecyclePolicyResourceSelectionOutput) ToLifecyclePolicyResourceSelectionPtrOutput() LifecyclePolicyResourceSelectionPtrOutput { + return o.ToLifecyclePolicyResourceSelectionPtrOutputWithContext(context.Background()) +} + +func (o LifecyclePolicyResourceSelectionOutput) ToLifecyclePolicyResourceSelectionPtrOutputWithContext(ctx context.Context) LifecyclePolicyResourceSelectionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LifecyclePolicyResourceSelection) *LifecyclePolicyResourceSelection { + return &v + }).(LifecyclePolicyResourceSelectionPtrOutput) +} + +// A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. +func (o LifecyclePolicyResourceSelectionOutput) Recipes() LifecyclePolicyResourceSelectionRecipeArrayOutput { + return o.ApplyT(func(v LifecyclePolicyResourceSelection) []LifecyclePolicyResourceSelectionRecipe { return v.Recipes }).(LifecyclePolicyResourceSelectionRecipeArrayOutput) +} + +// A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. +func (o LifecyclePolicyResourceSelectionOutput) TagMap() pulumi.StringMapOutput { + return o.ApplyT(func(v LifecyclePolicyResourceSelection) map[string]string { return v.TagMap }).(pulumi.StringMapOutput) +} + +type LifecyclePolicyResourceSelectionPtrOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyResourceSelectionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LifecyclePolicyResourceSelection)(nil)).Elem() +} + +func (o LifecyclePolicyResourceSelectionPtrOutput) ToLifecyclePolicyResourceSelectionPtrOutput() LifecyclePolicyResourceSelectionPtrOutput { + return o +} + +func (o LifecyclePolicyResourceSelectionPtrOutput) ToLifecyclePolicyResourceSelectionPtrOutputWithContext(ctx context.Context) LifecyclePolicyResourceSelectionPtrOutput { + return o +} + +func (o LifecyclePolicyResourceSelectionPtrOutput) Elem() LifecyclePolicyResourceSelectionOutput { + return o.ApplyT(func(v *LifecyclePolicyResourceSelection) LifecyclePolicyResourceSelection { + if v != nil { + return *v + } + var ret LifecyclePolicyResourceSelection + return ret + }).(LifecyclePolicyResourceSelectionOutput) +} + +// A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. +func (o LifecyclePolicyResourceSelectionPtrOutput) Recipes() LifecyclePolicyResourceSelectionRecipeArrayOutput { + return o.ApplyT(func(v *LifecyclePolicyResourceSelection) []LifecyclePolicyResourceSelectionRecipe { + if v == nil { + return nil + } + return v.Recipes + }).(LifecyclePolicyResourceSelectionRecipeArrayOutput) +} + +// A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. +func (o LifecyclePolicyResourceSelectionPtrOutput) TagMap() pulumi.StringMapOutput { + return o.ApplyT(func(v *LifecyclePolicyResourceSelection) map[string]string { + if v == nil { + return nil + } + return v.TagMap + }).(pulumi.StringMapOutput) +} + +type LifecyclePolicyResourceSelectionRecipe struct { + // The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + Name string `pulumi:"name"` + // The version of the Image Builder recipe specified by the name field. + SemanticVersion string `pulumi:"semanticVersion"` +} + +// LifecyclePolicyResourceSelectionRecipeInput is an input type that accepts LifecyclePolicyResourceSelectionRecipeArgs and LifecyclePolicyResourceSelectionRecipeOutput values. +// You can construct a concrete instance of `LifecyclePolicyResourceSelectionRecipeInput` via: +// +// LifecyclePolicyResourceSelectionRecipeArgs{...} +type LifecyclePolicyResourceSelectionRecipeInput interface { + pulumi.Input + + ToLifecyclePolicyResourceSelectionRecipeOutput() LifecyclePolicyResourceSelectionRecipeOutput + ToLifecyclePolicyResourceSelectionRecipeOutputWithContext(context.Context) LifecyclePolicyResourceSelectionRecipeOutput +} + +type LifecyclePolicyResourceSelectionRecipeArgs struct { + // The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + Name pulumi.StringInput `pulumi:"name"` + // The version of the Image Builder recipe specified by the name field. + SemanticVersion pulumi.StringInput `pulumi:"semanticVersion"` +} + +func (LifecyclePolicyResourceSelectionRecipeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyResourceSelectionRecipe)(nil)).Elem() +} + +func (i LifecyclePolicyResourceSelectionRecipeArgs) ToLifecyclePolicyResourceSelectionRecipeOutput() LifecyclePolicyResourceSelectionRecipeOutput { + return i.ToLifecyclePolicyResourceSelectionRecipeOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyResourceSelectionRecipeArgs) ToLifecyclePolicyResourceSelectionRecipeOutputWithContext(ctx context.Context) LifecyclePolicyResourceSelectionRecipeOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyResourceSelectionRecipeOutput) +} + +// LifecyclePolicyResourceSelectionRecipeArrayInput is an input type that accepts LifecyclePolicyResourceSelectionRecipeArray and LifecyclePolicyResourceSelectionRecipeArrayOutput values. +// You can construct a concrete instance of `LifecyclePolicyResourceSelectionRecipeArrayInput` via: +// +// LifecyclePolicyResourceSelectionRecipeArray{ LifecyclePolicyResourceSelectionRecipeArgs{...} } +type LifecyclePolicyResourceSelectionRecipeArrayInput interface { + pulumi.Input + + ToLifecyclePolicyResourceSelectionRecipeArrayOutput() LifecyclePolicyResourceSelectionRecipeArrayOutput + ToLifecyclePolicyResourceSelectionRecipeArrayOutputWithContext(context.Context) LifecyclePolicyResourceSelectionRecipeArrayOutput +} + +type LifecyclePolicyResourceSelectionRecipeArray []LifecyclePolicyResourceSelectionRecipeInput + +func (LifecyclePolicyResourceSelectionRecipeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LifecyclePolicyResourceSelectionRecipe)(nil)).Elem() +} + +func (i LifecyclePolicyResourceSelectionRecipeArray) ToLifecyclePolicyResourceSelectionRecipeArrayOutput() LifecyclePolicyResourceSelectionRecipeArrayOutput { + return i.ToLifecyclePolicyResourceSelectionRecipeArrayOutputWithContext(context.Background()) +} + +func (i LifecyclePolicyResourceSelectionRecipeArray) ToLifecyclePolicyResourceSelectionRecipeArrayOutputWithContext(ctx context.Context) LifecyclePolicyResourceSelectionRecipeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LifecyclePolicyResourceSelectionRecipeArrayOutput) +} + +type LifecyclePolicyResourceSelectionRecipeOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyResourceSelectionRecipeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LifecyclePolicyResourceSelectionRecipe)(nil)).Elem() +} + +func (o LifecyclePolicyResourceSelectionRecipeOutput) ToLifecyclePolicyResourceSelectionRecipeOutput() LifecyclePolicyResourceSelectionRecipeOutput { + return o +} + +func (o LifecyclePolicyResourceSelectionRecipeOutput) ToLifecyclePolicyResourceSelectionRecipeOutputWithContext(ctx context.Context) LifecyclePolicyResourceSelectionRecipeOutput { + return o +} + +// The name of an Image Builder recipe that the lifecycle policy uses for resource selection. +func (o LifecyclePolicyResourceSelectionRecipeOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LifecyclePolicyResourceSelectionRecipe) string { return v.Name }).(pulumi.StringOutput) +} + +// The version of the Image Builder recipe specified by the name field. +func (o LifecyclePolicyResourceSelectionRecipeOutput) SemanticVersion() pulumi.StringOutput { + return o.ApplyT(func(v LifecyclePolicyResourceSelectionRecipe) string { return v.SemanticVersion }).(pulumi.StringOutput) +} + +type LifecyclePolicyResourceSelectionRecipeArrayOutput struct{ *pulumi.OutputState } + +func (LifecyclePolicyResourceSelectionRecipeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LifecyclePolicyResourceSelectionRecipe)(nil)).Elem() +} + +func (o LifecyclePolicyResourceSelectionRecipeArrayOutput) ToLifecyclePolicyResourceSelectionRecipeArrayOutput() LifecyclePolicyResourceSelectionRecipeArrayOutput { + return o +} + +func (o LifecyclePolicyResourceSelectionRecipeArrayOutput) ToLifecyclePolicyResourceSelectionRecipeArrayOutputWithContext(ctx context.Context) LifecyclePolicyResourceSelectionRecipeArrayOutput { + return o +} + +func (o LifecyclePolicyResourceSelectionRecipeArrayOutput) Index(i pulumi.IntInput) LifecyclePolicyResourceSelectionRecipeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LifecyclePolicyResourceSelectionRecipe { + return vs[0].([]LifecyclePolicyResourceSelectionRecipe)[vs[1].(int)] + }).(LifecyclePolicyResourceSelectionRecipeOutput) +} + type GetComponentsFilter struct { // Name of the filter field. Valid values can be found in the [Image Builder ListComponents API Reference](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_ListComponents.html). Name string `pulumi:"name"` @@ -10048,6 +11505,24 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*InfrastructureConfigurationLoggingPtrInput)(nil)).Elem(), InfrastructureConfigurationLoggingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InfrastructureConfigurationLoggingS3LogsInput)(nil)).Elem(), InfrastructureConfigurationLoggingS3LogsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InfrastructureConfigurationLoggingS3LogsPtrInput)(nil)).Elem(), InfrastructureConfigurationLoggingS3LogsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailInput)(nil)).Elem(), LifecyclePolicyPolicyDetailArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailArrayInput)(nil)).Elem(), LifecyclePolicyPolicyDetailArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailActionInput)(nil)).Elem(), LifecyclePolicyPolicyDetailActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailActionPtrInput)(nil)).Elem(), LifecyclePolicyPolicyDetailActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailActionIncludeResourcesInput)(nil)).Elem(), LifecyclePolicyPolicyDetailActionIncludeResourcesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailActionIncludeResourcesPtrInput)(nil)).Elem(), LifecyclePolicyPolicyDetailActionIncludeResourcesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRulesInput)(nil)).Elem(), LifecyclePolicyPolicyDetailExclusionRulesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRulesPtrInput)(nil)).Elem(), LifecyclePolicyPolicyDetailExclusionRulesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRulesAmisInput)(nil)).Elem(), LifecyclePolicyPolicyDetailExclusionRulesAmisArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRulesAmisPtrInput)(nil)).Elem(), LifecyclePolicyPolicyDetailExclusionRulesAmisArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedInput)(nil)).Elem(), LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrInput)(nil)).Elem(), LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailFilterInput)(nil)).Elem(), LifecyclePolicyPolicyDetailFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyPolicyDetailFilterPtrInput)(nil)).Elem(), LifecyclePolicyPolicyDetailFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyResourceSelectionInput)(nil)).Elem(), LifecyclePolicyResourceSelectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyResourceSelectionPtrInput)(nil)).Elem(), LifecyclePolicyResourceSelectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyResourceSelectionRecipeInput)(nil)).Elem(), LifecyclePolicyResourceSelectionRecipeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LifecyclePolicyResourceSelectionRecipeArrayInput)(nil)).Elem(), LifecyclePolicyResourceSelectionRecipeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetComponentsFilterInput)(nil)).Elem(), GetComponentsFilterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetComponentsFilterArrayInput)(nil)).Elem(), GetComponentsFilterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetContainerRecipeComponentInput)(nil)).Elem(), GetContainerRecipeComponentArgs{}) @@ -10198,6 +11673,24 @@ func init() { pulumi.RegisterOutputType(InfrastructureConfigurationLoggingPtrOutput{}) pulumi.RegisterOutputType(InfrastructureConfigurationLoggingS3LogsOutput{}) pulumi.RegisterOutputType(InfrastructureConfigurationLoggingS3LogsPtrOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailArrayOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailActionOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailActionPtrOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailActionIncludeResourcesOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailActionIncludeResourcesPtrOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailExclusionRulesOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailExclusionRulesPtrOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailExclusionRulesAmisOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailExclusionRulesAmisPtrOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedPtrOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailFilterOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyPolicyDetailFilterPtrOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyResourceSelectionOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyResourceSelectionPtrOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyResourceSelectionRecipeOutput{}) + pulumi.RegisterOutputType(LifecyclePolicyResourceSelectionRecipeArrayOutput{}) pulumi.RegisterOutputType(GetComponentsFilterOutput{}) pulumi.RegisterOutputType(GetComponentsFilterArrayOutput{}) pulumi.RegisterOutputType(GetContainerRecipeComponentOutput{}) diff --git a/sdk/go/aws/kinesis/firehoseDeliveryStream.go b/sdk/go/aws/kinesis/firehoseDeliveryStream.go index 25817001b02..3dadb9a056f 100644 --- a/sdk/go/aws/kinesis/firehoseDeliveryStream.go +++ b/sdk/go/aws/kinesis/firehoseDeliveryStream.go @@ -771,6 +771,121 @@ import ( // // ``` // +// ### Iceberg Destination +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glue" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// current, err := aws.GetCallerIdentity(ctx, &aws.GetCallerIdentityArgs{}, nil) +// if err != nil { +// return err +// } +// currentGetPartition, err := aws.GetPartition(ctx, &aws.GetPartitionArgs{}, nil) +// if err != nil { +// return err +// } +// currentGetRegion, err := aws.GetRegion(ctx, &aws.GetRegionArgs{}, nil) +// if err != nil { +// return err +// } +// bucket, err := s3.NewBucketV2(ctx, "bucket", &s3.BucketV2Args{ +// Bucket: pulumi.String("test-bucket"), +// ForceDestroy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// test, err := glue.NewCatalogDatabase(ctx, "test", &glue.CatalogDatabaseArgs{ +// Name: pulumi.String("test"), +// }) +// if err != nil { +// return err +// } +// testCatalogTable, err := glue.NewCatalogTable(ctx, "test", &glue.CatalogTableArgs{ +// Name: pulumi.String("test"), +// DatabaseName: test.Name, +// Parameters: pulumi.StringMap{ +// "format": pulumi.String("parquet"), +// }, +// TableType: pulumi.String("EXTERNAL_TABLE"), +// OpenTableFormatInput: &glue.CatalogTableOpenTableFormatInputArgs{ +// IcebergInput: &glue.CatalogTableOpenTableFormatInputIcebergInputArgs{ +// MetadataOperation: pulumi.String("CREATE"), +// Version: pulumi.String("2"), +// }, +// }, +// StorageDescriptor: &glue.CatalogTableStorageDescriptorArgs{ +// Location: bucket.ID().ApplyT(func(id string) (string, error) { +// return fmt.Sprintf("s3://%v", id), nil +// }).(pulumi.StringOutput), +// Columns: glue.CatalogTableStorageDescriptorColumnArray{ +// &glue.CatalogTableStorageDescriptorColumnArgs{ +// Name: pulumi.String("my_column_1"), +// Type: pulumi.String("int"), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = kinesis.NewFirehoseDeliveryStream(ctx, "test_stream", &kinesis.FirehoseDeliveryStreamArgs{ +// Name: pulumi.String("kinesis-firehose-test-stream"), +// Destination: pulumi.String("iceberg"), +// IcebergConfiguration: &kinesis.FirehoseDeliveryStreamIcebergConfigurationArgs{ +// RoleArn: pulumi.Any(firehoseRole.Arn), +// CatalogArn: pulumi.Sprintf("arn:%v:glue:%v:%v:catalog", currentGetPartition.Partition, currentGetRegion.Name, current.AccountId), +// BufferingSize: pulumi.Int(10), +// BufferingInterval: pulumi.Int(400), +// S3Configuration: &kinesis.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs{ +// RoleArn: pulumi.Any(firehoseRole.Arn), +// BucketArn: bucket.Arn, +// }, +// DestinationTableConfigurations: kinesis.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArray{ +// &kinesis.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs{ +// DatabaseName: test.Name, +// TableName: testCatalogTable.Name, +// }, +// }, +// ProcessingConfiguration: &kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs{ +// Enabled: pulumi.Bool(true), +// Processors: kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArray{ +// &kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs{ +// Type: pulumi.String("Lambda"), +// Parameters: kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArray{ +// &kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs{ +// ParameterName: pulumi.String("LambdaArn"), +// ParameterValue: pulumi.Sprintf("%v:$LATEST", lambdaProcessor.Arn), +// }, +// }, +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ### Splunk Destination // // ```go @@ -935,6 +1050,8 @@ type FirehoseDeliveryStream struct { ExtendedS3Configuration FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput `pulumi:"extendedS3Configuration"` // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. HttpEndpointConfiguration FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput `pulumi:"httpEndpointConfiguration"` + // Configuration options when `destination` is `iceberg`. See `icebergConfiguration` block below for details. + IcebergConfiguration FirehoseDeliveryStreamIcebergConfigurationPtrOutput `pulumi:"icebergConfiguration"` // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. KinesisSourceConfiguration FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput `pulumi:"kinesisSourceConfiguration"` // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. @@ -1008,6 +1125,8 @@ type firehoseDeliveryStreamState struct { ExtendedS3Configuration *FirehoseDeliveryStreamExtendedS3Configuration `pulumi:"extendedS3Configuration"` // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. HttpEndpointConfiguration *FirehoseDeliveryStreamHttpEndpointConfiguration `pulumi:"httpEndpointConfiguration"` + // Configuration options when `destination` is `iceberg`. See `icebergConfiguration` block below for details. + IcebergConfiguration *FirehoseDeliveryStreamIcebergConfiguration `pulumi:"icebergConfiguration"` // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. KinesisSourceConfiguration *FirehoseDeliveryStreamKinesisSourceConfiguration `pulumi:"kinesisSourceConfiguration"` // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. @@ -1049,6 +1168,8 @@ type FirehoseDeliveryStreamState struct { ExtendedS3Configuration FirehoseDeliveryStreamExtendedS3ConfigurationPtrInput // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. HttpEndpointConfiguration FirehoseDeliveryStreamHttpEndpointConfigurationPtrInput + // Configuration options when `destination` is `iceberg`. See `icebergConfiguration` block below for details. + IcebergConfiguration FirehoseDeliveryStreamIcebergConfigurationPtrInput // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. KinesisSourceConfiguration FirehoseDeliveryStreamKinesisSourceConfigurationPtrInput // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. @@ -1094,6 +1215,8 @@ type firehoseDeliveryStreamArgs struct { ExtendedS3Configuration *FirehoseDeliveryStreamExtendedS3Configuration `pulumi:"extendedS3Configuration"` // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. HttpEndpointConfiguration *FirehoseDeliveryStreamHttpEndpointConfiguration `pulumi:"httpEndpointConfiguration"` + // Configuration options when `destination` is `iceberg`. See `icebergConfiguration` block below for details. + IcebergConfiguration *FirehoseDeliveryStreamIcebergConfiguration `pulumi:"icebergConfiguration"` // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. KinesisSourceConfiguration *FirehoseDeliveryStreamKinesisSourceConfiguration `pulumi:"kinesisSourceConfiguration"` // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. @@ -1132,6 +1255,8 @@ type FirehoseDeliveryStreamArgs struct { ExtendedS3Configuration FirehoseDeliveryStreamExtendedS3ConfigurationPtrInput // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. HttpEndpointConfiguration FirehoseDeliveryStreamHttpEndpointConfigurationPtrInput + // Configuration options when `destination` is `iceberg`. See `icebergConfiguration` block below for details. + IcebergConfiguration FirehoseDeliveryStreamIcebergConfigurationPtrInput // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. KinesisSourceConfiguration FirehoseDeliveryStreamKinesisSourceConfigurationPtrInput // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. @@ -1279,6 +1404,13 @@ func (o FirehoseDeliveryStreamOutput) HttpEndpointConfiguration() FirehoseDelive }).(FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput) } +// Configuration options when `destination` is `iceberg`. See `icebergConfiguration` block below for details. +func (o FirehoseDeliveryStreamOutput) IcebergConfiguration() FirehoseDeliveryStreamIcebergConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamIcebergConfigurationPtrOutput { + return v.IcebergConfiguration + }).(FirehoseDeliveryStreamIcebergConfigurationPtrOutput) +} + // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. func (o FirehoseDeliveryStreamOutput) KinesisSourceConfiguration() FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput { diff --git a/sdk/go/aws/kinesis/pulumiTypes.go b/sdk/go/aws/kinesis/pulumiTypes.go index de00228c974..9db40055898 100644 --- a/sdk/go/aws/kinesis/pulumiTypes.go +++ b/sdk/go/aws/kinesis/pulumiTypes.go @@ -4983,7 +4983,7 @@ func (o FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationP type FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters []FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type string `pulumi:"type"` } @@ -5001,7 +5001,7 @@ type FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProc type FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArrayInput `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type pulumi.StringInput `pulumi:"type"` } @@ -5063,7 +5063,7 @@ func (o FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationP }).(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArrayOutput) } -// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor) string { return v.Type @@ -5091,7 +5091,7 @@ func (o FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationP } type FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName string `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -5111,7 +5111,7 @@ type FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProc } type FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName pulumi.StringInput `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -5170,7 +5170,7 @@ func (o FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationP return o } -// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterOutput) ParameterName() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter) string { return v.ParameterName @@ -8746,7 +8746,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationPtrO type FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessor struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters []FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type string `pulumi:"type"` } @@ -8764,7 +8764,7 @@ type FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcess type FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArrayInput `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type pulumi.StringInput `pulumi:"type"` } @@ -8826,7 +8826,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProc }).(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArrayOutput) } -// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessor) string { return v.Type @@ -8854,7 +8854,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProc } type FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName string `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -8874,7 +8874,7 @@ type FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcess } type FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName pulumi.StringInput `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -8933,7 +8933,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProc return o } -// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterOutput) ParameterName() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter) string { return v.ParameterName @@ -10154,7 +10154,7 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationPt type FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessor struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters []FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type string `pulumi:"type"` } @@ -10172,7 +10172,7 @@ type FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProce type FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArrayInput `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type pulumi.StringInput `pulumi:"type"` } @@ -10234,7 +10234,7 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationPr }).(FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArrayOutput) } -// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessor) string { return v.Type @@ -10262,7 +10262,7 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationPr } type FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName string `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -10282,7 +10282,7 @@ type FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProce } type FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName pulumi.StringInput `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -10341,7 +10341,7 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationPr return o } -// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterOutput) ParameterName() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter) string { return v.ParameterName @@ -11314,6 +11314,1493 @@ func (o FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurati }).(pulumi.StringPtrOutput) } +type FirehoseDeliveryStreamIcebergConfiguration struct { + // Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + BufferingInterval *int `pulumi:"bufferingInterval"` + // Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + BufferingSize *int `pulumi:"bufferingSize"` + // Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + CatalogArn string `pulumi:"catalogArn"` + // The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. + CloudwatchLoggingOptions *FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` + // Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destinationTableConfiguration` block below for details. + DestinationTableConfigurations []FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration `pulumi:"destinationTableConfigurations"` + // The data processing configuration. See `processingConfiguration` block below for details. + ProcessingConfiguration *FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration `pulumi:"processingConfiguration"` + // The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + RetryDuration *int `pulumi:"retryDuration"` + // The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + RoleArn string `pulumi:"roleArn"` + S3BackupMode *string `pulumi:"s3BackupMode"` + // The S3 Configuration. See `s3Configuration` block below for details. + S3Configuration FirehoseDeliveryStreamIcebergConfigurationS3Configuration `pulumi:"s3Configuration"` +} + +// FirehoseDeliveryStreamIcebergConfigurationInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationArgs and FirehoseDeliveryStreamIcebergConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationArgs{...} +type FirehoseDeliveryStreamIcebergConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationOutput + ToFirehoseDeliveryStreamIcebergConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationArgs struct { + // Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + BufferingInterval pulumi.IntPtrInput `pulumi:"bufferingInterval"` + // Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + BufferingSize pulumi.IntPtrInput `pulumi:"bufferingSize"` + // Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + CatalogArn pulumi.StringInput `pulumi:"catalogArn"` + // The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. + CloudwatchLoggingOptions FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` + // Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destinationTableConfiguration` block below for details. + DestinationTableConfigurations FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayInput `pulumi:"destinationTableConfigurations"` + // The data processing configuration. See `processingConfiguration` block below for details. + ProcessingConfiguration FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrInput `pulumi:"processingConfiguration"` + // The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + RetryDuration pulumi.IntPtrInput `pulumi:"retryDuration"` + // The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + RoleArn pulumi.StringInput `pulumi:"roleArn"` + S3BackupMode pulumi.StringPtrInput `pulumi:"s3BackupMode"` + // The S3 Configuration. See `s3Configuration` block below for details. + S3Configuration FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationInput `pulumi:"s3Configuration"` +} + +func (FirehoseDeliveryStreamIcebergConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationOutput) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationOutput).ToFirehoseDeliveryStreamIcebergConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamIcebergConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationArgs, FirehoseDeliveryStreamIcebergConfigurationPtr and FirehoseDeliveryStreamIcebergConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamIcebergConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationPtrOutput + ToFirehoseDeliveryStreamIcebergConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationPtrOutput +} + +type firehoseDeliveryStreamIcebergConfigurationPtrType FirehoseDeliveryStreamIcebergConfigurationArgs + +func FirehoseDeliveryStreamIcebergConfigurationPtr(v *FirehoseDeliveryStreamIcebergConfigurationArgs) FirehoseDeliveryStreamIcebergConfigurationPtrInput { + return (*firehoseDeliveryStreamIcebergConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamIcebergConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamIcebergConfiguration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamIcebergConfigurationPtrType) ToFirehoseDeliveryStreamIcebergConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamIcebergConfigurationPtrType) ToFirehoseDeliveryStreamIcebergConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationPtrOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamIcebergConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamIcebergConfiguration) *FirehoseDeliveryStreamIcebergConfiguration { + return &v + }).(FirehoseDeliveryStreamIcebergConfigurationPtrOutput) +} + +// Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) BufferingInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfiguration) *int { return v.BufferingInterval }).(pulumi.IntPtrOutput) +} + +// Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfiguration) *int { return v.BufferingSize }).(pulumi.IntPtrOutput) +} + +// Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) CatalogArn() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfiguration) string { return v.CatalogArn }).(pulumi.StringOutput) +} + +// The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) CloudwatchLoggingOptions() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfiguration) *FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions { + return v.CloudwatchLoggingOptions + }).(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +// Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destinationTableConfiguration` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) DestinationTableConfigurations() FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfiguration) []FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration { + return v.DestinationTableConfigurations + }).(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput) +} + +// The data processing configuration. See `processingConfiguration` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) ProcessingConfiguration() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfiguration) *FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration { + return v.ProcessingConfiguration + }).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput) +} + +// The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) RetryDuration() pulumi.IntPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfiguration) *int { return v.RetryDuration }).(pulumi.IntPtrOutput) +} + +// The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfiguration) string { return v.RoleArn }).(pulumi.StringOutput) +} + +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) S3BackupMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfiguration) *string { return v.S3BackupMode }).(pulumi.StringPtrOutput) +} + +// The S3 Configuration. See `s3Configuration` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationOutput) S3Configuration() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfiguration) FirehoseDeliveryStreamIcebergConfigurationS3Configuration { + return v.S3Configuration + }).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamIcebergConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) ToFirehoseDeliveryStreamIcebergConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) ToFirehoseDeliveryStreamIcebergConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) Elem() FirehoseDeliveryStreamIcebergConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) FirehoseDeliveryStreamIcebergConfiguration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamIcebergConfiguration + return ret + }).(FirehoseDeliveryStreamIcebergConfigurationOutput) +} + +// Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) BufferingInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) *int { + if v == nil { + return nil + } + return v.BufferingInterval + }).(pulumi.IntPtrOutput) +} + +// Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) *int { + if v == nil { + return nil + } + return v.BufferingSize + }).(pulumi.IntPtrOutput) +} + +// Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) CatalogArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) *string { + if v == nil { + return nil + } + return &v.CatalogArn + }).(pulumi.StringPtrOutput) +} + +// The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) CloudwatchLoggingOptions() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) *FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions { + if v == nil { + return nil + } + return v.CloudwatchLoggingOptions + }).(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +// Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destinationTableConfiguration` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) DestinationTableConfigurations() FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) []FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration { + if v == nil { + return nil + } + return v.DestinationTableConfigurations + }).(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput) +} + +// The data processing configuration. See `processingConfiguration` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) ProcessingConfiguration() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) *FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration { + if v == nil { + return nil + } + return v.ProcessingConfiguration + }).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput) +} + +// The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) RetryDuration() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) *int { + if v == nil { + return nil + } + return v.RetryDuration + }).(pulumi.IntPtrOutput) +} + +// The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) *string { + if v == nil { + return nil + } + return &v.RoleArn + }).(pulumi.StringPtrOutput) +} + +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) S3BackupMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) *string { + if v == nil { + return nil + } + return v.S3BackupMode + }).(pulumi.StringPtrOutput) +} + +// The S3 Configuration. See `s3Configuration` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationPtrOutput) S3Configuration() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfiguration) *FirehoseDeliveryStreamIcebergConfigurationS3Configuration { + if v == nil { + return nil + } + return &v.S3Configuration + }).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions struct { + // Enables or disables the logging. Defaults to `false`. + Enabled *bool `pulumi:"enabled"` + // The CloudWatch group name for logging. This value is required if `enabled` is true. + LogGroupName *string `pulumi:"logGroupName"` + // The CloudWatch log stream name for logging. This value is required if `enabled` is true. + LogStreamName *string `pulumi:"logStreamName"` +} + +// FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs and FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs{...} +type FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput + ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs struct { + // Enables or disables the logging. Defaults to `false`. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // The CloudWatch group name for logging. This value is required if `enabled` is true. + LogGroupName pulumi.StringPtrInput `pulumi:"logGroupName"` + // The CloudWatch log stream name for logging. This value is required if `enabled` is true. + LogStreamName pulumi.StringPtrInput `pulumi:"logStreamName"` +} + +func (FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput).ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs, FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtr and FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput + ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput +} + +type firehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrType FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs + +func FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtr(v *FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs) FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrInput { + return (*firehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrType)(v) +} + +func (*firehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrType) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrType) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions) *FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions { + return &v + }).(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +// Enables or disables the logging. Defaults to `false`. +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// The CloudWatch group name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput) LogGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions) *string { + return v.LogGroupName + }).(pulumi.StringPtrOutput) +} + +// The CloudWatch log stream name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput) LogStreamName() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions) *string { + return v.LogStreamName + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) ToFirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) Elem() FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions) FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions + return ret + }).(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput) +} + +// Enables or disables the logging. Defaults to `false`. +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The CloudWatch group name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) LogGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions) *string { + if v == nil { + return nil + } + return v.LogGroupName + }).(pulumi.StringPtrOutput) +} + +// The CloudWatch log stream name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput) LogStreamName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions) *string { + if v == nil { + return nil + } + return v.LogStreamName + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration struct { + // The name of the Apache Iceberg database. + DatabaseName string `pulumi:"databaseName"` + // The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + S3ErrorOutputPrefix *string `pulumi:"s3ErrorOutputPrefix"` + // The name of the Apache Iceberg Table. + TableName string `pulumi:"tableName"` + // A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + UniqueKeys []string `pulumi:"uniqueKeys"` +} + +// FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs and FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs{...} +type FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput + ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs struct { + // The name of the Apache Iceberg database. + DatabaseName pulumi.StringInput `pulumi:"databaseName"` + // The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + S3ErrorOutputPrefix pulumi.StringPtrInput `pulumi:"s3ErrorOutputPrefix"` + // The name of the Apache Iceberg Table. + TableName pulumi.StringInput `pulumi:"tableName"` + // A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + UniqueKeys pulumi.StringArrayInput `pulumi:"uniqueKeys"` +} + +func (FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput) +} + +// FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArray and FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArray{ FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs{...} } +type FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput() FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput + ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArray []FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationInput + +func (FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArray) ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput() FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArray) ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput { + return o +} + +// The name of the Apache Iceberg database. +func (o FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput) DatabaseName() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration) string { + return v.DatabaseName + }).(pulumi.StringOutput) +} + +// The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. +func (o FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput) S3ErrorOutputPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration) *string { + return v.S3ErrorOutputPrefix + }).(pulumi.StringPtrOutput) +} + +// The name of the Apache Iceberg Table. +func (o FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput) TableName() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration) string { + return v.TableName + }).(pulumi.StringOutput) +} + +// A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. +func (o FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput) UniqueKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration) []string { + return v.UniqueKeys + }).(pulumi.StringArrayOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput) ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput() FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput) ToFirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput) Index(i pulumi.IntInput) FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration { + return vs[0].([]FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration)[vs[1].(int)] + }).(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration struct { + // Enables or disables data processing. + Enabled *bool `pulumi:"enabled"` + // Specifies the data processors as multiple blocks. See `processors` block below for details. + Processors []FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor `pulumi:"processors"` +} + +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs and FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs{...} +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs struct { + // Enables or disables data processing. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Specifies the data processors as multiple blocks. See `processors` block below for details. + Processors FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayInput `pulumi:"processors"` +} + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput).ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs, FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtr and FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput +} + +type firehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrType FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs + +func FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtr(v *FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrInput { + return (*firehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrType) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrType) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration) *FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration { + return &v + }).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput) +} + +// Enables or disables data processing. +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Specifies the data processors as multiple blocks. See `processors` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput) Processors() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration) []FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor { + return v.Processors + }).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput) Elem() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration) FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration + return ret + }).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput) +} + +// Enables or disables data processing. +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Specifies the data processors as multiple blocks. See `processors` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput) Processors() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration) []FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor { + if v == nil { + return nil + } + return v.Processors + }).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor struct { + // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + Parameters []FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter `pulumi:"parameters"` + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + Type string `pulumi:"type"` +} + +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs and FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs{...} +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs struct { + // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + Parameters FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayInput `pulumi:"parameters"` + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + Type pulumi.StringInput `pulumi:"type"` +} + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput) +} + +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArray and FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArray{ FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs{...} } +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArray []FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorInput + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArray) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArray) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput { + return o +} + +// Specifies the processor parameters as multiple blocks. See `parameters` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput) Parameters() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor) []FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter { + return v.Parameters + }).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput) +} + +// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor) string { + return v.Type + }).(pulumi.StringOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput) Index(i pulumi.IntInput) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor { + return vs[0].([]FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor)[vs[1].(int)] + }).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter struct { + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + ParameterName string `pulumi:"parameterName"` + // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + // + // > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + ParameterValue string `pulumi:"parameterValue"` +} + +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs and FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs{...} +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs struct { + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + ParameterName pulumi.StringInput `pulumi:"parameterName"` + // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + // + // > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + ParameterValue pulumi.StringInput `pulumi:"parameterValue"` +} + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput) +} + +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArray and FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArray{ FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs{...} } +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput + ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArray []FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterInput + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArray) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArray) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput { + return o +} + +// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput) ParameterName() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter) string { + return v.ParameterName + }).(pulumi.StringOutput) +} + +// Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. +// +// > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput) ParameterValue() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter) string { + return v.ParameterValue + }).(pulumi.StringOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput() FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput) ToFirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput) Index(i pulumi.IntInput) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter { + return vs[0].([]FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter)[vs[1].(int)] + }).(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationS3Configuration struct { + // The ARN of the S3 bucket + BucketArn string `pulumi:"bucketArn"` + // Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + BufferingInterval *int `pulumi:"bufferingInterval"` + // Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + // We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + BufferingSize *int `pulumi:"bufferingSize"` + // The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. + CloudwatchLoggingOptions *FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"` + // The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + CompressionFormat *string `pulumi:"compressionFormat"` + // Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + ErrorOutputPrefix *string `pulumi:"errorOutputPrefix"` + // Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + // be used. + KmsKeyArn *string `pulumi:"kmsKeyArn"` + // The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + Prefix *string `pulumi:"prefix"` + // The ARN of the AWS credentials. + RoleArn string `pulumi:"roleArn"` +} + +// FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs and FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs{...} +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput + ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs struct { + // The ARN of the S3 bucket + BucketArn pulumi.StringInput `pulumi:"bucketArn"` + // Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + BufferingInterval pulumi.IntPtrInput `pulumi:"bufferingInterval"` + // Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + // We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + BufferingSize pulumi.IntPtrInput `pulumi:"bufferingSize"` + // The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. + CloudwatchLoggingOptions FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput `pulumi:"cloudwatchLoggingOptions"` + // The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + CompressionFormat pulumi.StringPtrInput `pulumi:"compressionFormat"` + // Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + ErrorOutputPrefix pulumi.StringPtrInput `pulumi:"errorOutputPrefix"` + // Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + // be used. + KmsKeyArn pulumi.StringPtrInput `pulumi:"kmsKeyArn"` + // The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // The ARN of the AWS credentials. + RoleArn pulumi.StringInput `pulumi:"roleArn"` +} + +func (FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationS3Configuration)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput).ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs, FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtr and FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput + ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput +} + +type firehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrType FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs + +func FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtr(v *FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrInput { + return (*firehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrType)(v) +} + +func (*firehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamIcebergConfigurationS3Configuration)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrType) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrType) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationS3Configuration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput { + return o.ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *FirehoseDeliveryStreamIcebergConfigurationS3Configuration { + return &v + }).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) +} + +// The ARN of the S3 bucket +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) BucketArn() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3Configuration) string { return v.BucketArn }).(pulumi.StringOutput) +} + +// Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) BufferingInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *int { return v.BufferingInterval }).(pulumi.IntPtrOutput) +} + +// Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. +// We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) BufferingSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *int { return v.BufferingSize }).(pulumi.IntPtrOutput) +} + +// The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) CloudwatchLoggingOptions() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions { + return v.CloudwatchLoggingOptions + }).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +// The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) CompressionFormat() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *string { return v.CompressionFormat }).(pulumi.StringPtrOutput) +} + +// Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) ErrorOutputPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *string { return v.ErrorOutputPrefix }).(pulumi.StringPtrOutput) +} + +// Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will +// be used. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) KmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *string { return v.KmsKeyArn }).(pulumi.StringPtrOutput) +} + +// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// The ARN of the AWS credentials. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3Configuration) string { return v.RoleArn }).(pulumi.StringOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamIcebergConfigurationS3Configuration)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) Elem() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3Configuration) FirehoseDeliveryStreamIcebergConfigurationS3Configuration { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamIcebergConfigurationS3Configuration + return ret + }).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput) +} + +// The ARN of the S3 bucket +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) BucketArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return &v.BucketArn + }).(pulumi.StringPtrOutput) +} + +// Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) BufferingInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *int { + if v == nil { + return nil + } + return v.BufferingInterval + }).(pulumi.IntPtrOutput) +} + +// Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. +// We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) BufferingSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *int { + if v == nil { + return nil + } + return v.BufferingSize + }).(pulumi.IntPtrOutput) +} + +// The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) CloudwatchLoggingOptions() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions { + if v == nil { + return nil + } + return v.CloudwatchLoggingOptions + }).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +// The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) CompressionFormat() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return v.CompressionFormat + }).(pulumi.StringPtrOutput) +} + +// Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) ErrorOutputPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return v.ErrorOutputPrefix + }).(pulumi.StringPtrOutput) +} + +// Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will +// be used. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) KmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return v.KmsKeyArn + }).(pulumi.StringPtrOutput) +} + +// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// The ARN of the AWS credentials. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3Configuration) *string { + if v == nil { + return nil + } + return &v.RoleArn + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions struct { + // Enables or disables the logging. Defaults to `false`. + Enabled *bool `pulumi:"enabled"` + // The CloudWatch group name for logging. This value is required if `enabled` is true. + LogGroupName *string `pulumi:"logGroupName"` + // The CloudWatch log stream name for logging. This value is required if `enabled` is true. + LogStreamName *string `pulumi:"logStreamName"` +} + +// FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs and FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{...} +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput + ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput +} + +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs struct { + // Enables or disables the logging. Defaults to `false`. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // The CloudWatch group name for logging. This value is required if `enabled` is true. + LogGroupName pulumi.StringPtrInput `pulumi:"logGroupName"` + // The CloudWatch log stream name for logging. This value is required if `enabled` is true. + LogStreamName pulumi.StringPtrInput `pulumi:"logStreamName"` +} + +func (FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (i FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (i FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput).ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx) +} + +// FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput is an input type that accepts FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs, FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtr and FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput values. +// You can construct a concrete instance of `FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput` via: +// +// FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{...} +// +// or: +// +// nil +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput interface { + pulumi.Input + + ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput + ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput +} + +type firehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs + +func FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtr(v *FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput { + return (*firehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType)(v) +} + +func (*firehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (i *firehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return i.ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (i *firehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrType) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(context.Background()) +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions) *FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions { + return &v + }).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) +} + +// Enables or disables the logging. Defaults to `false`. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions) *bool { + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The CloudWatch group name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) LogGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions) *string { + return v.LogGroupName + }).(pulumi.StringPtrOutput) +} + +// The CloudWatch log stream name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) LogStreamName() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions) *string { + return v.LogStreamName + }).(pulumi.StringPtrOutput) +} + +type FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput struct{ *pulumi.OutputState } + +func (FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions)(nil)).Elem() +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) ToFirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutputWithContext(ctx context.Context) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput { + return o +} + +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) Elem() FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions) FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions { + if v != nil { + return *v + } + var ret FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions + return ret + }).(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput) +} + +// Enables or disables the logging. Defaults to `false`. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The CloudWatch group name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) LogGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions) *string { + if v == nil { + return nil + } + return v.LogGroupName + }).(pulumi.StringPtrOutput) +} + +// The CloudWatch log stream name for logging. This value is required if `enabled` is true. +func (o FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput) LogStreamName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions) *string { + if v == nil { + return nil + } + return v.LogStreamName + }).(pulumi.StringPtrOutput) +} + type FirehoseDeliveryStreamKinesisSourceConfiguration struct { // The kinesis stream used as the source of the firehose delivery stream. KinesisStreamArn string `pulumi:"kinesisStreamArn"` @@ -12699,7 +14186,7 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationPtrO type FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters []FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type string `pulumi:"type"` } @@ -12717,7 +14204,7 @@ type FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcess type FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArrayInput `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type pulumi.StringInput `pulumi:"type"` } @@ -12779,7 +14266,7 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProc }).(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArrayOutput) } -// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor) string { return v.Type @@ -12807,7 +14294,7 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProc } type FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName string `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -12827,7 +14314,7 @@ type FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcess } type FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName pulumi.StringInput `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -12886,7 +14373,7 @@ func (o FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProc return o } -// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterOutput) ParameterName() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter) string { return v.ParameterName @@ -14275,7 +15762,7 @@ func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigu type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters []FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type string `pulumi:"type"` } @@ -14293,7 +15780,7 @@ type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurat type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayInput `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type pulumi.StringInput `pulumi:"type"` } @@ -14355,7 +15842,7 @@ func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigu }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArrayOutput) } -// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessor) string { return v.Type @@ -14383,7 +15870,7 @@ func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigu } type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName string `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -14403,7 +15890,7 @@ type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurat } type FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName pulumi.StringInput `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -14462,7 +15949,7 @@ func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigu return o } -// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterOutput) ParameterName() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter) string { return v.ParameterName @@ -15920,7 +17407,7 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationPtrOut type FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessor struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters []FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type string `pulumi:"type"` } @@ -15938,7 +17425,7 @@ type FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessor type FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArrayInput `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type pulumi.StringInput `pulumi:"type"` } @@ -16000,7 +17487,7 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProces }).(FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArrayOutput) } -// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessor) string { return v.Type @@ -16028,7 +17515,7 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProces } type FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName string `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -16048,7 +17535,7 @@ type FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessor } type FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName pulumi.StringInput `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -16107,7 +17594,7 @@ func (o FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProces return o } -// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterOutput) ParameterName() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter) string { return v.ParameterName @@ -18312,7 +19799,7 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationPtrOu type FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessor struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters []FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type string `pulumi:"type"` } @@ -18330,7 +19817,7 @@ type FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcesso type FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorArgs struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArrayInput `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type pulumi.StringInput `pulumi:"type"` } @@ -18392,7 +19879,7 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProce }).(FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArrayOutput) } -// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessor) string { return v.Type @@ -18420,7 +19907,7 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProce } type FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName string `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -18440,7 +19927,7 @@ type FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcesso } type FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName pulumi.StringInput `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -18499,7 +19986,7 @@ func (o FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProce return o } -// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterOutput) ParameterName() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter) string { return v.ParameterName @@ -20191,7 +21678,7 @@ func (o FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationPtrOutpu type FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessor struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters []FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type string `pulumi:"type"` } @@ -20209,7 +21696,7 @@ type FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorIn type FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs struct { // Specifies the processor parameters as multiple blocks. See `parameters` block below for details. Parameters FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArrayInput `pulumi:"parameters"` - // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. Type pulumi.StringInput `pulumi:"type"` } @@ -20271,7 +21758,7 @@ func (o FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcesso }).(FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArrayOutput) } -// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessor) string { return v.Type @@ -20299,7 +21786,7 @@ func (o FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcesso } type FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName string `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -20319,7 +21806,7 @@ type FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorPa } type FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs struct { - // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + // Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. ParameterName pulumi.StringInput `pulumi:"parameterName"` // Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. // @@ -20378,7 +21865,7 @@ func (o FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcesso return o } -// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. +// Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. func (o FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterOutput) ParameterName() pulumi.StringOutput { return o.ApplyT(func(v FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter) string { return v.ParameterName @@ -21431,6 +22918,22 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrInput)(nil)).Elem(), FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamKinesisSourceConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamKinesisSourceConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamKinesisSourceConfigurationPtrInput)(nil)).Elem(), FirehoseDeliveryStreamKinesisSourceConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamMskSourceConfigurationInput)(nil)).Elem(), FirehoseDeliveryStreamMskSourceConfigurationArgs{}) @@ -21658,6 +23161,22 @@ func init() { pulumi.RegisterOutputType(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArrayOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArrayOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArrayOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationPtrOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsOutput{}) + pulumi.RegisterOutputType(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamKinesisSourceConfigurationOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput{}) pulumi.RegisterOutputType(FirehoseDeliveryStreamMskSourceConfigurationOutput{}) diff --git a/sdk/go/aws/lakeformation/dataLakeSettings.go b/sdk/go/aws/lakeformation/dataLakeSettings.go index 6c4c6960e56..e8c937c6f9f 100644 --- a/sdk/go/aws/lakeformation/dataLakeSettings.go +++ b/sdk/go/aws/lakeformation/dataLakeSettings.go @@ -148,6 +148,34 @@ import ( // } // // ``` +// +// ### Change Cross Account Version +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := lakeformation.NewDataLakeSettings(ctx, "example", &lakeformation.DataLakeSettingsArgs{ +// Parameters: pulumi.StringMap{ +// "CROSS_ACCOUNT_VERSION": pulumi.String("3"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` type DataLakeSettings struct { pulumi.CustomResourceState @@ -156,8 +184,6 @@ type DataLakeSettings struct { // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering pulumi.BoolPtrOutput `pulumi:"allowExternalDataFiltering"` // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - // - // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. AllowFullTableExternalDataAccess pulumi.BoolPtrOutput `pulumi:"allowFullTableExternalDataAccess"` // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists pulumi.StringArrayOutput `pulumi:"authorizedSessionTagValueLists"` @@ -169,9 +195,13 @@ type DataLakeSettings struct { CreateTableDefaultPermissions DataLakeSettingsCreateTableDefaultPermissionArrayOutput `pulumi:"createTableDefaultPermissions"` // A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. ExternalDataFilteringAllowLists pulumi.StringArrayOutput `pulumi:"externalDataFilteringAllowLists"` + // Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + Parameters pulumi.StringMapOutput `pulumi:"parameters"` // Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. ReadOnlyAdmins pulumi.StringArrayOutput `pulumi:"readOnlyAdmins"` // List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + // + // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, `parameters`, and/or `trustedResourceOwners` results in the setting being cleared. TrustedResourceOwners pulumi.StringArrayOutput `pulumi:"trustedResourceOwners"` } @@ -210,8 +240,6 @@ type dataLakeSettingsState struct { // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering *bool `pulumi:"allowExternalDataFiltering"` // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - // - // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. AllowFullTableExternalDataAccess *bool `pulumi:"allowFullTableExternalDataAccess"` // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists []string `pulumi:"authorizedSessionTagValueLists"` @@ -223,9 +251,13 @@ type dataLakeSettingsState struct { CreateTableDefaultPermissions []DataLakeSettingsCreateTableDefaultPermission `pulumi:"createTableDefaultPermissions"` // A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. ExternalDataFilteringAllowLists []string `pulumi:"externalDataFilteringAllowLists"` + // Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + Parameters map[string]string `pulumi:"parameters"` // Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. ReadOnlyAdmins []string `pulumi:"readOnlyAdmins"` // List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + // + // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, `parameters`, and/or `trustedResourceOwners` results in the setting being cleared. TrustedResourceOwners []string `pulumi:"trustedResourceOwners"` } @@ -235,8 +267,6 @@ type DataLakeSettingsState struct { // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering pulumi.BoolPtrInput // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - // - // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. AllowFullTableExternalDataAccess pulumi.BoolPtrInput // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists pulumi.StringArrayInput @@ -248,9 +278,13 @@ type DataLakeSettingsState struct { CreateTableDefaultPermissions DataLakeSettingsCreateTableDefaultPermissionArrayInput // A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. ExternalDataFilteringAllowLists pulumi.StringArrayInput + // Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + Parameters pulumi.StringMapInput // Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. ReadOnlyAdmins pulumi.StringArrayInput // List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + // + // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, `parameters`, and/or `trustedResourceOwners` results in the setting being cleared. TrustedResourceOwners pulumi.StringArrayInput } @@ -264,8 +298,6 @@ type dataLakeSettingsArgs struct { // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering *bool `pulumi:"allowExternalDataFiltering"` // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - // - // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. AllowFullTableExternalDataAccess *bool `pulumi:"allowFullTableExternalDataAccess"` // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists []string `pulumi:"authorizedSessionTagValueLists"` @@ -277,9 +309,13 @@ type dataLakeSettingsArgs struct { CreateTableDefaultPermissions []DataLakeSettingsCreateTableDefaultPermission `pulumi:"createTableDefaultPermissions"` // A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. ExternalDataFilteringAllowLists []string `pulumi:"externalDataFilteringAllowLists"` + // Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + Parameters map[string]string `pulumi:"parameters"` // Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. ReadOnlyAdmins []string `pulumi:"readOnlyAdmins"` // List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + // + // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, `parameters`, and/or `trustedResourceOwners` results in the setting being cleared. TrustedResourceOwners []string `pulumi:"trustedResourceOwners"` } @@ -290,8 +326,6 @@ type DataLakeSettingsArgs struct { // Whether to allow Amazon EMR clusters to access data managed by Lake Formation. AllowExternalDataFiltering pulumi.BoolPtrInput // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - // - // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. AllowFullTableExternalDataAccess pulumi.BoolPtrInput // Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. AuthorizedSessionTagValueLists pulumi.StringArrayInput @@ -303,9 +337,13 @@ type DataLakeSettingsArgs struct { CreateTableDefaultPermissions DataLakeSettingsCreateTableDefaultPermissionArrayInput // A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. ExternalDataFilteringAllowLists pulumi.StringArrayInput + // Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + Parameters pulumi.StringMapInput // Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. ReadOnlyAdmins pulumi.StringArrayInput // List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + // + // > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, `parameters`, and/or `trustedResourceOwners` results in the setting being cleared. TrustedResourceOwners pulumi.StringArrayInput } @@ -407,8 +445,6 @@ func (o DataLakeSettingsOutput) AllowExternalDataFiltering() pulumi.BoolPtrOutpu } // Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. -// -// > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. func (o DataLakeSettingsOutput) AllowFullTableExternalDataAccess() pulumi.BoolPtrOutput { return o.ApplyT(func(v *DataLakeSettings) pulumi.BoolPtrOutput { return v.AllowFullTableExternalDataAccess }).(pulumi.BoolPtrOutput) } @@ -442,12 +478,19 @@ func (o DataLakeSettingsOutput) ExternalDataFilteringAllowLists() pulumi.StringA return o.ApplyT(func(v *DataLakeSettings) pulumi.StringArrayOutput { return v.ExternalDataFilteringAllowLists }).(pulumi.StringArrayOutput) } +// Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. +func (o DataLakeSettingsOutput) Parameters() pulumi.StringMapOutput { + return o.ApplyT(func(v *DataLakeSettings) pulumi.StringMapOutput { return v.Parameters }).(pulumi.StringMapOutput) +} + // Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. func (o DataLakeSettingsOutput) ReadOnlyAdmins() pulumi.StringArrayOutput { return o.ApplyT(func(v *DataLakeSettings) pulumi.StringArrayOutput { return v.ReadOnlyAdmins }).(pulumi.StringArrayOutput) } // List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). +// +// > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, `parameters`, and/or `trustedResourceOwners` results in the setting being cleared. func (o DataLakeSettingsOutput) TrustedResourceOwners() pulumi.StringArrayOutput { return o.ApplyT(func(v *DataLakeSettings) pulumi.StringArrayOutput { return v.TrustedResourceOwners }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/aws/lakeformation/getDataLakeSettings.go b/sdk/go/aws/lakeformation/getDataLakeSettings.go index 4023cf6a155..5df9ab99a44 100644 --- a/sdk/go/aws/lakeformation/getDataLakeSettings.go +++ b/sdk/go/aws/lakeformation/getDataLakeSettings.go @@ -73,6 +73,8 @@ type LookupDataLakeSettingsResult struct { ExternalDataFilteringAllowLists []string `pulumi:"externalDataFilteringAllowLists"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` + // Key-value map of additional configuration. `CROSS_ACCOUNT_VERSION` will be set to values `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` will also be returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. + Parameters map[string]string `pulumi:"parameters"` // List of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. ReadOnlyAdmins []string `pulumi:"readOnlyAdmins"` // List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). @@ -171,6 +173,11 @@ func (o LookupDataLakeSettingsResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupDataLakeSettingsResult) string { return v.Id }).(pulumi.StringOutput) } +// Key-value map of additional configuration. `CROSS_ACCOUNT_VERSION` will be set to values `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` will also be returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. +func (o LookupDataLakeSettingsResultOutput) Parameters() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupDataLakeSettingsResult) map[string]string { return v.Parameters }).(pulumi.StringMapOutput) +} + // List of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. func (o LookupDataLakeSettingsResultOutput) ReadOnlyAdmins() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupDataLakeSettingsResult) []string { return v.ReadOnlyAdmins }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/lb/getLoadBalancer.go b/sdk/go/aws/lb/getLoadBalancer.go index 87134ef200c..c2c98e7ec60 100644 --- a/sdk/go/aws/lb/getLoadBalancer.go +++ b/sdk/go/aws/lb/getLoadBalancer.go @@ -95,6 +95,7 @@ type LookupLoadBalancerResult struct { EnableTlsVersionAndCipherSuiteHeaders bool `pulumi:"enableTlsVersionAndCipherSuiteHeaders"` EnableWafFailOpen bool `pulumi:"enableWafFailOpen"` EnableXffClientPort bool `pulumi:"enableXffClientPort"` + EnableZonalShift bool `pulumi:"enableZonalShift"` EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic string `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` @@ -227,6 +228,10 @@ func (o LookupLoadBalancerResultOutput) EnableXffClientPort() pulumi.BoolOutput return o.ApplyT(func(v LookupLoadBalancerResult) bool { return v.EnableXffClientPort }).(pulumi.BoolOutput) } +func (o LookupLoadBalancerResultOutput) EnableZonalShift() pulumi.BoolOutput { + return o.ApplyT(func(v LookupLoadBalancerResult) bool { return v.EnableZonalShift }).(pulumi.BoolOutput) +} + func (o LookupLoadBalancerResultOutput) EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic() pulumi.StringOutput { return o.ApplyT(func(v LookupLoadBalancerResult) string { return v.EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/lb/listener.go b/sdk/go/aws/lb/listener.go index b11ddb3a9d6..a242b929d06 100644 --- a/sdk/go/aws/lb/listener.go +++ b/sdk/go/aws/lb/listener.go @@ -438,6 +438,8 @@ type Listener struct { // // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + TcpIdleTimeoutSeconds pulumi.IntPtrOutput `pulumi:"tcpIdleTimeoutSeconds"` } // NewListener registers a new resource with the given unique name, arguments, and options. @@ -508,6 +510,8 @@ type listenerState struct { // // Deprecated: Please use `tags` instead. TagsAll map[string]string `pulumi:"tagsAll"` + // TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + TcpIdleTimeoutSeconds *int `pulumi:"tcpIdleTimeoutSeconds"` } type ListenerState struct { @@ -537,6 +541,8 @@ type ListenerState struct { // // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapInput + // TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + TcpIdleTimeoutSeconds pulumi.IntPtrInput } func (ListenerState) ElementType() reflect.Type { @@ -564,6 +570,8 @@ type listenerArgs struct { SslPolicy *string `pulumi:"sslPolicy"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags map[string]string `pulumi:"tags"` + // TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + TcpIdleTimeoutSeconds *int `pulumi:"tcpIdleTimeoutSeconds"` } // The set of arguments for constructing a Listener resource. @@ -588,6 +596,8 @@ type ListenerArgs struct { SslPolicy pulumi.StringPtrInput // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput + // TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + TcpIdleTimeoutSeconds pulumi.IntPtrInput } func (ListenerArgs) ElementType() reflect.Type { @@ -736,6 +746,11 @@ func (o ListenerOutput) TagsAll() pulumi.StringMapOutput { return o.ApplyT(func(v *Listener) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) } +// TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. +func (o ListenerOutput) TcpIdleTimeoutSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Listener) pulumi.IntPtrOutput { return v.TcpIdleTimeoutSeconds }).(pulumi.IntPtrOutput) +} + type ListenerArrayOutput struct{ *pulumi.OutputState } func (ListenerArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/lb/loadBalancer.go b/sdk/go/aws/lb/loadBalancer.go index 4f05db822bb..9f8c5af7157 100644 --- a/sdk/go/aws/lb/loadBalancer.go +++ b/sdk/go/aws/lb/loadBalancer.go @@ -133,6 +133,8 @@ type LoadBalancer struct { EnableWafFailOpen pulumi.BoolPtrOutput `pulumi:"enableWafFailOpen"` // Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. EnableXffClientPort pulumi.BoolPtrOutput `pulumi:"enableXffClientPort"` + // Whether zonal shift is enabled. Defaults to `false`. + EnableZonalShift pulumi.BoolPtrOutput `pulumi:"enableZonalShift"` // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic pulumi.StringOutput `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` // Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. @@ -236,6 +238,8 @@ type loadBalancerState struct { EnableWafFailOpen *bool `pulumi:"enableWafFailOpen"` // Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. EnableXffClientPort *bool `pulumi:"enableXffClientPort"` + // Whether zonal shift is enabled. Defaults to `false`. + EnableZonalShift *bool `pulumi:"enableZonalShift"` // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic *string `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` // Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. @@ -304,6 +308,8 @@ type LoadBalancerState struct { EnableWafFailOpen pulumi.BoolPtrInput // Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. EnableXffClientPort pulumi.BoolPtrInput + // Whether zonal shift is enabled. Defaults to `false`. + EnableZonalShift pulumi.BoolPtrInput // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic pulumi.StringPtrInput // Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. @@ -370,6 +376,8 @@ type loadBalancerArgs struct { EnableWafFailOpen *bool `pulumi:"enableWafFailOpen"` // Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. EnableXffClientPort *bool `pulumi:"enableXffClientPort"` + // Whether zonal shift is enabled. Defaults to `false`. + EnableZonalShift *bool `pulumi:"enableZonalShift"` // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic *string `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` // Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. @@ -426,6 +434,8 @@ type LoadBalancerArgs struct { EnableWafFailOpen pulumi.BoolPtrInput // Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. EnableXffClientPort pulumi.BoolPtrInput + // Whether zonal shift is enabled. Defaults to `false`. + EnableZonalShift pulumi.BoolPtrInput // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic pulumi.StringPtrInput // Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. @@ -621,6 +631,11 @@ func (o LoadBalancerOutput) EnableXffClientPort() pulumi.BoolPtrOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.BoolPtrOutput { return v.EnableXffClientPort }).(pulumi.BoolPtrOutput) } +// Whether zonal shift is enabled. Defaults to `false`. +func (o LoadBalancerOutput) EnableZonalShift() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LoadBalancer) pulumi.BoolPtrOutput { return v.EnableZonalShift }).(pulumi.BoolPtrOutput) +} + // Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. func (o LoadBalancerOutput) EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic() pulumi.StringOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringOutput { diff --git a/sdk/go/aws/resiliencehub/init.go b/sdk/go/aws/resiliencehub/init.go new file mode 100644 index 00000000000..277c17c02b2 --- /dev/null +++ b/sdk/go/aws/resiliencehub/init.go @@ -0,0 +1,44 @@ +// 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 resiliencehub + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy": + r = &ResiliencyPolicy{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "aws", + "resiliencehub/resiliencyPolicy", + &module{version}, + ) +} diff --git a/sdk/go/aws/resiliencehub/pulumiTypes.go b/sdk/go/aws/resiliencehub/pulumiTypes.go new file mode 100644 index 00000000000..f9b5d229363 --- /dev/null +++ b/sdk/go/aws/resiliencehub/pulumiTypes.go @@ -0,0 +1,1042 @@ +// 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 resiliencehub + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +type ResiliencyPolicyPolicy struct { + // Specifies Availability Zone failure policy. See `policy.az` + Az *ResiliencyPolicyPolicyAz `pulumi:"az"` + // Specifies Infrastructure failure policy. See `policy.hardware` + Hardware *ResiliencyPolicyPolicyHardware `pulumi:"hardware"` + // Specifies Region failure policy. `policy.region` + Region *ResiliencyPolicyPolicyRegion `pulumi:"region"` + // Specifies Application failure policy. See `policy.software` + // + // The following arguments are optional: + Software *ResiliencyPolicyPolicySoftware `pulumi:"software"` +} + +// ResiliencyPolicyPolicyInput is an input type that accepts ResiliencyPolicyPolicyArgs and ResiliencyPolicyPolicyOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicyInput` via: +// +// ResiliencyPolicyPolicyArgs{...} +type ResiliencyPolicyPolicyInput interface { + pulumi.Input + + ToResiliencyPolicyPolicyOutput() ResiliencyPolicyPolicyOutput + ToResiliencyPolicyPolicyOutputWithContext(context.Context) ResiliencyPolicyPolicyOutput +} + +type ResiliencyPolicyPolicyArgs struct { + // Specifies Availability Zone failure policy. See `policy.az` + Az ResiliencyPolicyPolicyAzPtrInput `pulumi:"az"` + // Specifies Infrastructure failure policy. See `policy.hardware` + Hardware ResiliencyPolicyPolicyHardwarePtrInput `pulumi:"hardware"` + // Specifies Region failure policy. `policy.region` + Region ResiliencyPolicyPolicyRegionPtrInput `pulumi:"region"` + // Specifies Application failure policy. See `policy.software` + // + // The following arguments are optional: + Software ResiliencyPolicyPolicySoftwarePtrInput `pulumi:"software"` +} + +func (ResiliencyPolicyPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicy)(nil)).Elem() +} + +func (i ResiliencyPolicyPolicyArgs) ToResiliencyPolicyPolicyOutput() ResiliencyPolicyPolicyOutput { + return i.ToResiliencyPolicyPolicyOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicyArgs) ToResiliencyPolicyPolicyOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyOutput) +} + +func (i ResiliencyPolicyPolicyArgs) ToResiliencyPolicyPolicyPtrOutput() ResiliencyPolicyPolicyPtrOutput { + return i.ToResiliencyPolicyPolicyPtrOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicyArgs) ToResiliencyPolicyPolicyPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyOutput).ToResiliencyPolicyPolicyPtrOutputWithContext(ctx) +} + +// ResiliencyPolicyPolicyPtrInput is an input type that accepts ResiliencyPolicyPolicyArgs, ResiliencyPolicyPolicyPtr and ResiliencyPolicyPolicyPtrOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicyPtrInput` via: +// +// ResiliencyPolicyPolicyArgs{...} +// +// or: +// +// nil +type ResiliencyPolicyPolicyPtrInput interface { + pulumi.Input + + ToResiliencyPolicyPolicyPtrOutput() ResiliencyPolicyPolicyPtrOutput + ToResiliencyPolicyPolicyPtrOutputWithContext(context.Context) ResiliencyPolicyPolicyPtrOutput +} + +type resiliencyPolicyPolicyPtrType ResiliencyPolicyPolicyArgs + +func ResiliencyPolicyPolicyPtr(v *ResiliencyPolicyPolicyArgs) ResiliencyPolicyPolicyPtrInput { + return (*resiliencyPolicyPolicyPtrType)(v) +} + +func (*resiliencyPolicyPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicy)(nil)).Elem() +} + +func (i *resiliencyPolicyPolicyPtrType) ToResiliencyPolicyPolicyPtrOutput() ResiliencyPolicyPolicyPtrOutput { + return i.ToResiliencyPolicyPolicyPtrOutputWithContext(context.Background()) +} + +func (i *resiliencyPolicyPolicyPtrType) ToResiliencyPolicyPolicyPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyPtrOutput) +} + +type ResiliencyPolicyPolicyOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicy)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicyOutput) ToResiliencyPolicyPolicyOutput() ResiliencyPolicyPolicyOutput { + return o +} + +func (o ResiliencyPolicyPolicyOutput) ToResiliencyPolicyPolicyOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyOutput { + return o +} + +func (o ResiliencyPolicyPolicyOutput) ToResiliencyPolicyPolicyPtrOutput() ResiliencyPolicyPolicyPtrOutput { + return o.ToResiliencyPolicyPolicyPtrOutputWithContext(context.Background()) +} + +func (o ResiliencyPolicyPolicyOutput) ToResiliencyPolicyPolicyPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResiliencyPolicyPolicy) *ResiliencyPolicyPolicy { + return &v + }).(ResiliencyPolicyPolicyPtrOutput) +} + +// Specifies Availability Zone failure policy. See `policy.az` +func (o ResiliencyPolicyPolicyOutput) Az() ResiliencyPolicyPolicyAzPtrOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicy) *ResiliencyPolicyPolicyAz { return v.Az }).(ResiliencyPolicyPolicyAzPtrOutput) +} + +// Specifies Infrastructure failure policy. See `policy.hardware` +func (o ResiliencyPolicyPolicyOutput) Hardware() ResiliencyPolicyPolicyHardwarePtrOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicy) *ResiliencyPolicyPolicyHardware { return v.Hardware }).(ResiliencyPolicyPolicyHardwarePtrOutput) +} + +// Specifies Region failure policy. `policy.region` +func (o ResiliencyPolicyPolicyOutput) Region() ResiliencyPolicyPolicyRegionPtrOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicy) *ResiliencyPolicyPolicyRegion { return v.Region }).(ResiliencyPolicyPolicyRegionPtrOutput) +} + +// Specifies Application failure policy. See `policy.software` +// +// The following arguments are optional: +func (o ResiliencyPolicyPolicyOutput) Software() ResiliencyPolicyPolicySoftwarePtrOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicy) *ResiliencyPolicyPolicySoftware { return v.Software }).(ResiliencyPolicyPolicySoftwarePtrOutput) +} + +type ResiliencyPolicyPolicyPtrOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicy)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicyPtrOutput) ToResiliencyPolicyPolicyPtrOutput() ResiliencyPolicyPolicyPtrOutput { + return o +} + +func (o ResiliencyPolicyPolicyPtrOutput) ToResiliencyPolicyPolicyPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyPtrOutput { + return o +} + +func (o ResiliencyPolicyPolicyPtrOutput) Elem() ResiliencyPolicyPolicyOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicy) ResiliencyPolicyPolicy { + if v != nil { + return *v + } + var ret ResiliencyPolicyPolicy + return ret + }).(ResiliencyPolicyPolicyOutput) +} + +// Specifies Availability Zone failure policy. See `policy.az` +func (o ResiliencyPolicyPolicyPtrOutput) Az() ResiliencyPolicyPolicyAzPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicy) *ResiliencyPolicyPolicyAz { + if v == nil { + return nil + } + return v.Az + }).(ResiliencyPolicyPolicyAzPtrOutput) +} + +// Specifies Infrastructure failure policy. See `policy.hardware` +func (o ResiliencyPolicyPolicyPtrOutput) Hardware() ResiliencyPolicyPolicyHardwarePtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicy) *ResiliencyPolicyPolicyHardware { + if v == nil { + return nil + } + return v.Hardware + }).(ResiliencyPolicyPolicyHardwarePtrOutput) +} + +// Specifies Region failure policy. `policy.region` +func (o ResiliencyPolicyPolicyPtrOutput) Region() ResiliencyPolicyPolicyRegionPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicy) *ResiliencyPolicyPolicyRegion { + if v == nil { + return nil + } + return v.Region + }).(ResiliencyPolicyPolicyRegionPtrOutput) +} + +// Specifies Application failure policy. See `policy.software` +// +// The following arguments are optional: +func (o ResiliencyPolicyPolicyPtrOutput) Software() ResiliencyPolicyPolicySoftwarePtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicy) *ResiliencyPolicyPolicySoftware { + if v == nil { + return nil + } + return v.Software + }).(ResiliencyPolicyPolicySoftwarePtrOutput) +} + +type ResiliencyPolicyPolicyAz struct { + // Recovery Point Objective (RPO) as a Go duration. + Rpo string `pulumi:"rpo"` + // Recovery Time Objective (RTO) as a Go duration. + Rto string `pulumi:"rto"` +} + +// ResiliencyPolicyPolicyAzInput is an input type that accepts ResiliencyPolicyPolicyAzArgs and ResiliencyPolicyPolicyAzOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicyAzInput` via: +// +// ResiliencyPolicyPolicyAzArgs{...} +type ResiliencyPolicyPolicyAzInput interface { + pulumi.Input + + ToResiliencyPolicyPolicyAzOutput() ResiliencyPolicyPolicyAzOutput + ToResiliencyPolicyPolicyAzOutputWithContext(context.Context) ResiliencyPolicyPolicyAzOutput +} + +type ResiliencyPolicyPolicyAzArgs struct { + // Recovery Point Objective (RPO) as a Go duration. + Rpo pulumi.StringInput `pulumi:"rpo"` + // Recovery Time Objective (RTO) as a Go duration. + Rto pulumi.StringInput `pulumi:"rto"` +} + +func (ResiliencyPolicyPolicyAzArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicyAz)(nil)).Elem() +} + +func (i ResiliencyPolicyPolicyAzArgs) ToResiliencyPolicyPolicyAzOutput() ResiliencyPolicyPolicyAzOutput { + return i.ToResiliencyPolicyPolicyAzOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicyAzArgs) ToResiliencyPolicyPolicyAzOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyAzOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyAzOutput) +} + +func (i ResiliencyPolicyPolicyAzArgs) ToResiliencyPolicyPolicyAzPtrOutput() ResiliencyPolicyPolicyAzPtrOutput { + return i.ToResiliencyPolicyPolicyAzPtrOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicyAzArgs) ToResiliencyPolicyPolicyAzPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyAzPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyAzOutput).ToResiliencyPolicyPolicyAzPtrOutputWithContext(ctx) +} + +// ResiliencyPolicyPolicyAzPtrInput is an input type that accepts ResiliencyPolicyPolicyAzArgs, ResiliencyPolicyPolicyAzPtr and ResiliencyPolicyPolicyAzPtrOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicyAzPtrInput` via: +// +// ResiliencyPolicyPolicyAzArgs{...} +// +// or: +// +// nil +type ResiliencyPolicyPolicyAzPtrInput interface { + pulumi.Input + + ToResiliencyPolicyPolicyAzPtrOutput() ResiliencyPolicyPolicyAzPtrOutput + ToResiliencyPolicyPolicyAzPtrOutputWithContext(context.Context) ResiliencyPolicyPolicyAzPtrOutput +} + +type resiliencyPolicyPolicyAzPtrType ResiliencyPolicyPolicyAzArgs + +func ResiliencyPolicyPolicyAzPtr(v *ResiliencyPolicyPolicyAzArgs) ResiliencyPolicyPolicyAzPtrInput { + return (*resiliencyPolicyPolicyAzPtrType)(v) +} + +func (*resiliencyPolicyPolicyAzPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicyAz)(nil)).Elem() +} + +func (i *resiliencyPolicyPolicyAzPtrType) ToResiliencyPolicyPolicyAzPtrOutput() ResiliencyPolicyPolicyAzPtrOutput { + return i.ToResiliencyPolicyPolicyAzPtrOutputWithContext(context.Background()) +} + +func (i *resiliencyPolicyPolicyAzPtrType) ToResiliencyPolicyPolicyAzPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyAzPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyAzPtrOutput) +} + +type ResiliencyPolicyPolicyAzOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicyAzOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicyAz)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicyAzOutput) ToResiliencyPolicyPolicyAzOutput() ResiliencyPolicyPolicyAzOutput { + return o +} + +func (o ResiliencyPolicyPolicyAzOutput) ToResiliencyPolicyPolicyAzOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyAzOutput { + return o +} + +func (o ResiliencyPolicyPolicyAzOutput) ToResiliencyPolicyPolicyAzPtrOutput() ResiliencyPolicyPolicyAzPtrOutput { + return o.ToResiliencyPolicyPolicyAzPtrOutputWithContext(context.Background()) +} + +func (o ResiliencyPolicyPolicyAzOutput) ToResiliencyPolicyPolicyAzPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyAzPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResiliencyPolicyPolicyAz) *ResiliencyPolicyPolicyAz { + return &v + }).(ResiliencyPolicyPolicyAzPtrOutput) +} + +// Recovery Point Objective (RPO) as a Go duration. +func (o ResiliencyPolicyPolicyAzOutput) Rpo() pulumi.StringOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicyAz) string { return v.Rpo }).(pulumi.StringOutput) +} + +// Recovery Time Objective (RTO) as a Go duration. +func (o ResiliencyPolicyPolicyAzOutput) Rto() pulumi.StringOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicyAz) string { return v.Rto }).(pulumi.StringOutput) +} + +type ResiliencyPolicyPolicyAzPtrOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicyAzPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicyAz)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicyAzPtrOutput) ToResiliencyPolicyPolicyAzPtrOutput() ResiliencyPolicyPolicyAzPtrOutput { + return o +} + +func (o ResiliencyPolicyPolicyAzPtrOutput) ToResiliencyPolicyPolicyAzPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyAzPtrOutput { + return o +} + +func (o ResiliencyPolicyPolicyAzPtrOutput) Elem() ResiliencyPolicyPolicyAzOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyAz) ResiliencyPolicyPolicyAz { + if v != nil { + return *v + } + var ret ResiliencyPolicyPolicyAz + return ret + }).(ResiliencyPolicyPolicyAzOutput) +} + +// Recovery Point Objective (RPO) as a Go duration. +func (o ResiliencyPolicyPolicyAzPtrOutput) Rpo() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyAz) *string { + if v == nil { + return nil + } + return &v.Rpo + }).(pulumi.StringPtrOutput) +} + +// Recovery Time Objective (RTO) as a Go duration. +func (o ResiliencyPolicyPolicyAzPtrOutput) Rto() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyAz) *string { + if v == nil { + return nil + } + return &v.Rto + }).(pulumi.StringPtrOutput) +} + +type ResiliencyPolicyPolicyHardware struct { + // Recovery Point Objective (RPO) as a Go duration. + Rpo string `pulumi:"rpo"` + // Recovery Time Objective (RTO) as a Go duration. + Rto string `pulumi:"rto"` +} + +// ResiliencyPolicyPolicyHardwareInput is an input type that accepts ResiliencyPolicyPolicyHardwareArgs and ResiliencyPolicyPolicyHardwareOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicyHardwareInput` via: +// +// ResiliencyPolicyPolicyHardwareArgs{...} +type ResiliencyPolicyPolicyHardwareInput interface { + pulumi.Input + + ToResiliencyPolicyPolicyHardwareOutput() ResiliencyPolicyPolicyHardwareOutput + ToResiliencyPolicyPolicyHardwareOutputWithContext(context.Context) ResiliencyPolicyPolicyHardwareOutput +} + +type ResiliencyPolicyPolicyHardwareArgs struct { + // Recovery Point Objective (RPO) as a Go duration. + Rpo pulumi.StringInput `pulumi:"rpo"` + // Recovery Time Objective (RTO) as a Go duration. + Rto pulumi.StringInput `pulumi:"rto"` +} + +func (ResiliencyPolicyPolicyHardwareArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicyHardware)(nil)).Elem() +} + +func (i ResiliencyPolicyPolicyHardwareArgs) ToResiliencyPolicyPolicyHardwareOutput() ResiliencyPolicyPolicyHardwareOutput { + return i.ToResiliencyPolicyPolicyHardwareOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicyHardwareArgs) ToResiliencyPolicyPolicyHardwareOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyHardwareOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyHardwareOutput) +} + +func (i ResiliencyPolicyPolicyHardwareArgs) ToResiliencyPolicyPolicyHardwarePtrOutput() ResiliencyPolicyPolicyHardwarePtrOutput { + return i.ToResiliencyPolicyPolicyHardwarePtrOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicyHardwareArgs) ToResiliencyPolicyPolicyHardwarePtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyHardwarePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyHardwareOutput).ToResiliencyPolicyPolicyHardwarePtrOutputWithContext(ctx) +} + +// ResiliencyPolicyPolicyHardwarePtrInput is an input type that accepts ResiliencyPolicyPolicyHardwareArgs, ResiliencyPolicyPolicyHardwarePtr and ResiliencyPolicyPolicyHardwarePtrOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicyHardwarePtrInput` via: +// +// ResiliencyPolicyPolicyHardwareArgs{...} +// +// or: +// +// nil +type ResiliencyPolicyPolicyHardwarePtrInput interface { + pulumi.Input + + ToResiliencyPolicyPolicyHardwarePtrOutput() ResiliencyPolicyPolicyHardwarePtrOutput + ToResiliencyPolicyPolicyHardwarePtrOutputWithContext(context.Context) ResiliencyPolicyPolicyHardwarePtrOutput +} + +type resiliencyPolicyPolicyHardwarePtrType ResiliencyPolicyPolicyHardwareArgs + +func ResiliencyPolicyPolicyHardwarePtr(v *ResiliencyPolicyPolicyHardwareArgs) ResiliencyPolicyPolicyHardwarePtrInput { + return (*resiliencyPolicyPolicyHardwarePtrType)(v) +} + +func (*resiliencyPolicyPolicyHardwarePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicyHardware)(nil)).Elem() +} + +func (i *resiliencyPolicyPolicyHardwarePtrType) ToResiliencyPolicyPolicyHardwarePtrOutput() ResiliencyPolicyPolicyHardwarePtrOutput { + return i.ToResiliencyPolicyPolicyHardwarePtrOutputWithContext(context.Background()) +} + +func (i *resiliencyPolicyPolicyHardwarePtrType) ToResiliencyPolicyPolicyHardwarePtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyHardwarePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyHardwarePtrOutput) +} + +type ResiliencyPolicyPolicyHardwareOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicyHardwareOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicyHardware)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicyHardwareOutput) ToResiliencyPolicyPolicyHardwareOutput() ResiliencyPolicyPolicyHardwareOutput { + return o +} + +func (o ResiliencyPolicyPolicyHardwareOutput) ToResiliencyPolicyPolicyHardwareOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyHardwareOutput { + return o +} + +func (o ResiliencyPolicyPolicyHardwareOutput) ToResiliencyPolicyPolicyHardwarePtrOutput() ResiliencyPolicyPolicyHardwarePtrOutput { + return o.ToResiliencyPolicyPolicyHardwarePtrOutputWithContext(context.Background()) +} + +func (o ResiliencyPolicyPolicyHardwareOutput) ToResiliencyPolicyPolicyHardwarePtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyHardwarePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResiliencyPolicyPolicyHardware) *ResiliencyPolicyPolicyHardware { + return &v + }).(ResiliencyPolicyPolicyHardwarePtrOutput) +} + +// Recovery Point Objective (RPO) as a Go duration. +func (o ResiliencyPolicyPolicyHardwareOutput) Rpo() pulumi.StringOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicyHardware) string { return v.Rpo }).(pulumi.StringOutput) +} + +// Recovery Time Objective (RTO) as a Go duration. +func (o ResiliencyPolicyPolicyHardwareOutput) Rto() pulumi.StringOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicyHardware) string { return v.Rto }).(pulumi.StringOutput) +} + +type ResiliencyPolicyPolicyHardwarePtrOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicyHardwarePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicyHardware)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicyHardwarePtrOutput) ToResiliencyPolicyPolicyHardwarePtrOutput() ResiliencyPolicyPolicyHardwarePtrOutput { + return o +} + +func (o ResiliencyPolicyPolicyHardwarePtrOutput) ToResiliencyPolicyPolicyHardwarePtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyHardwarePtrOutput { + return o +} + +func (o ResiliencyPolicyPolicyHardwarePtrOutput) Elem() ResiliencyPolicyPolicyHardwareOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyHardware) ResiliencyPolicyPolicyHardware { + if v != nil { + return *v + } + var ret ResiliencyPolicyPolicyHardware + return ret + }).(ResiliencyPolicyPolicyHardwareOutput) +} + +// Recovery Point Objective (RPO) as a Go duration. +func (o ResiliencyPolicyPolicyHardwarePtrOutput) Rpo() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyHardware) *string { + if v == nil { + return nil + } + return &v.Rpo + }).(pulumi.StringPtrOutput) +} + +// Recovery Time Objective (RTO) as a Go duration. +func (o ResiliencyPolicyPolicyHardwarePtrOutput) Rto() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyHardware) *string { + if v == nil { + return nil + } + return &v.Rto + }).(pulumi.StringPtrOutput) +} + +type ResiliencyPolicyPolicyRegion struct { + // Recovery Point Objective (RPO) as a Go duration. + Rpo *string `pulumi:"rpo"` + // Recovery Time Objective (RTO) as a Go duration. + Rto *string `pulumi:"rto"` +} + +// ResiliencyPolicyPolicyRegionInput is an input type that accepts ResiliencyPolicyPolicyRegionArgs and ResiliencyPolicyPolicyRegionOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicyRegionInput` via: +// +// ResiliencyPolicyPolicyRegionArgs{...} +type ResiliencyPolicyPolicyRegionInput interface { + pulumi.Input + + ToResiliencyPolicyPolicyRegionOutput() ResiliencyPolicyPolicyRegionOutput + ToResiliencyPolicyPolicyRegionOutputWithContext(context.Context) ResiliencyPolicyPolicyRegionOutput +} + +type ResiliencyPolicyPolicyRegionArgs struct { + // Recovery Point Objective (RPO) as a Go duration. + Rpo pulumi.StringPtrInput `pulumi:"rpo"` + // Recovery Time Objective (RTO) as a Go duration. + Rto pulumi.StringPtrInput `pulumi:"rto"` +} + +func (ResiliencyPolicyPolicyRegionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicyRegion)(nil)).Elem() +} + +func (i ResiliencyPolicyPolicyRegionArgs) ToResiliencyPolicyPolicyRegionOutput() ResiliencyPolicyPolicyRegionOutput { + return i.ToResiliencyPolicyPolicyRegionOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicyRegionArgs) ToResiliencyPolicyPolicyRegionOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyRegionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyRegionOutput) +} + +func (i ResiliencyPolicyPolicyRegionArgs) ToResiliencyPolicyPolicyRegionPtrOutput() ResiliencyPolicyPolicyRegionPtrOutput { + return i.ToResiliencyPolicyPolicyRegionPtrOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicyRegionArgs) ToResiliencyPolicyPolicyRegionPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyRegionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyRegionOutput).ToResiliencyPolicyPolicyRegionPtrOutputWithContext(ctx) +} + +// ResiliencyPolicyPolicyRegionPtrInput is an input type that accepts ResiliencyPolicyPolicyRegionArgs, ResiliencyPolicyPolicyRegionPtr and ResiliencyPolicyPolicyRegionPtrOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicyRegionPtrInput` via: +// +// ResiliencyPolicyPolicyRegionArgs{...} +// +// or: +// +// nil +type ResiliencyPolicyPolicyRegionPtrInput interface { + pulumi.Input + + ToResiliencyPolicyPolicyRegionPtrOutput() ResiliencyPolicyPolicyRegionPtrOutput + ToResiliencyPolicyPolicyRegionPtrOutputWithContext(context.Context) ResiliencyPolicyPolicyRegionPtrOutput +} + +type resiliencyPolicyPolicyRegionPtrType ResiliencyPolicyPolicyRegionArgs + +func ResiliencyPolicyPolicyRegionPtr(v *ResiliencyPolicyPolicyRegionArgs) ResiliencyPolicyPolicyRegionPtrInput { + return (*resiliencyPolicyPolicyRegionPtrType)(v) +} + +func (*resiliencyPolicyPolicyRegionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicyRegion)(nil)).Elem() +} + +func (i *resiliencyPolicyPolicyRegionPtrType) ToResiliencyPolicyPolicyRegionPtrOutput() ResiliencyPolicyPolicyRegionPtrOutput { + return i.ToResiliencyPolicyPolicyRegionPtrOutputWithContext(context.Background()) +} + +func (i *resiliencyPolicyPolicyRegionPtrType) ToResiliencyPolicyPolicyRegionPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyRegionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyRegionPtrOutput) +} + +type ResiliencyPolicyPolicyRegionOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicyRegionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicyRegion)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicyRegionOutput) ToResiliencyPolicyPolicyRegionOutput() ResiliencyPolicyPolicyRegionOutput { + return o +} + +func (o ResiliencyPolicyPolicyRegionOutput) ToResiliencyPolicyPolicyRegionOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyRegionOutput { + return o +} + +func (o ResiliencyPolicyPolicyRegionOutput) ToResiliencyPolicyPolicyRegionPtrOutput() ResiliencyPolicyPolicyRegionPtrOutput { + return o.ToResiliencyPolicyPolicyRegionPtrOutputWithContext(context.Background()) +} + +func (o ResiliencyPolicyPolicyRegionOutput) ToResiliencyPolicyPolicyRegionPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyRegionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResiliencyPolicyPolicyRegion) *ResiliencyPolicyPolicyRegion { + return &v + }).(ResiliencyPolicyPolicyRegionPtrOutput) +} + +// Recovery Point Objective (RPO) as a Go duration. +func (o ResiliencyPolicyPolicyRegionOutput) Rpo() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicyRegion) *string { return v.Rpo }).(pulumi.StringPtrOutput) +} + +// Recovery Time Objective (RTO) as a Go duration. +func (o ResiliencyPolicyPolicyRegionOutput) Rto() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicyRegion) *string { return v.Rto }).(pulumi.StringPtrOutput) +} + +type ResiliencyPolicyPolicyRegionPtrOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicyRegionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicyRegion)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicyRegionPtrOutput) ToResiliencyPolicyPolicyRegionPtrOutput() ResiliencyPolicyPolicyRegionPtrOutput { + return o +} + +func (o ResiliencyPolicyPolicyRegionPtrOutput) ToResiliencyPolicyPolicyRegionPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyRegionPtrOutput { + return o +} + +func (o ResiliencyPolicyPolicyRegionPtrOutput) Elem() ResiliencyPolicyPolicyRegionOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyRegion) ResiliencyPolicyPolicyRegion { + if v != nil { + return *v + } + var ret ResiliencyPolicyPolicyRegion + return ret + }).(ResiliencyPolicyPolicyRegionOutput) +} + +// Recovery Point Objective (RPO) as a Go duration. +func (o ResiliencyPolicyPolicyRegionPtrOutput) Rpo() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyRegion) *string { + if v == nil { + return nil + } + return v.Rpo + }).(pulumi.StringPtrOutput) +} + +// Recovery Time Objective (RTO) as a Go duration. +func (o ResiliencyPolicyPolicyRegionPtrOutput) Rto() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyRegion) *string { + if v == nil { + return nil + } + return v.Rto + }).(pulumi.StringPtrOutput) +} + +type ResiliencyPolicyPolicySoftware struct { + // Recovery Point Objective (RPO) as a Go duration. + Rpo string `pulumi:"rpo"` + // Recovery Time Objective (RTO) as a Go duration. + Rto string `pulumi:"rto"` +} + +// ResiliencyPolicyPolicySoftwareInput is an input type that accepts ResiliencyPolicyPolicySoftwareArgs and ResiliencyPolicyPolicySoftwareOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicySoftwareInput` via: +// +// ResiliencyPolicyPolicySoftwareArgs{...} +type ResiliencyPolicyPolicySoftwareInput interface { + pulumi.Input + + ToResiliencyPolicyPolicySoftwareOutput() ResiliencyPolicyPolicySoftwareOutput + ToResiliencyPolicyPolicySoftwareOutputWithContext(context.Context) ResiliencyPolicyPolicySoftwareOutput +} + +type ResiliencyPolicyPolicySoftwareArgs struct { + // Recovery Point Objective (RPO) as a Go duration. + Rpo pulumi.StringInput `pulumi:"rpo"` + // Recovery Time Objective (RTO) as a Go duration. + Rto pulumi.StringInput `pulumi:"rto"` +} + +func (ResiliencyPolicyPolicySoftwareArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicySoftware)(nil)).Elem() +} + +func (i ResiliencyPolicyPolicySoftwareArgs) ToResiliencyPolicyPolicySoftwareOutput() ResiliencyPolicyPolicySoftwareOutput { + return i.ToResiliencyPolicyPolicySoftwareOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicySoftwareArgs) ToResiliencyPolicyPolicySoftwareOutputWithContext(ctx context.Context) ResiliencyPolicyPolicySoftwareOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicySoftwareOutput) +} + +func (i ResiliencyPolicyPolicySoftwareArgs) ToResiliencyPolicyPolicySoftwarePtrOutput() ResiliencyPolicyPolicySoftwarePtrOutput { + return i.ToResiliencyPolicyPolicySoftwarePtrOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicySoftwareArgs) ToResiliencyPolicyPolicySoftwarePtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicySoftwarePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicySoftwareOutput).ToResiliencyPolicyPolicySoftwarePtrOutputWithContext(ctx) +} + +// ResiliencyPolicyPolicySoftwarePtrInput is an input type that accepts ResiliencyPolicyPolicySoftwareArgs, ResiliencyPolicyPolicySoftwarePtr and ResiliencyPolicyPolicySoftwarePtrOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicySoftwarePtrInput` via: +// +// ResiliencyPolicyPolicySoftwareArgs{...} +// +// or: +// +// nil +type ResiliencyPolicyPolicySoftwarePtrInput interface { + pulumi.Input + + ToResiliencyPolicyPolicySoftwarePtrOutput() ResiliencyPolicyPolicySoftwarePtrOutput + ToResiliencyPolicyPolicySoftwarePtrOutputWithContext(context.Context) ResiliencyPolicyPolicySoftwarePtrOutput +} + +type resiliencyPolicyPolicySoftwarePtrType ResiliencyPolicyPolicySoftwareArgs + +func ResiliencyPolicyPolicySoftwarePtr(v *ResiliencyPolicyPolicySoftwareArgs) ResiliencyPolicyPolicySoftwarePtrInput { + return (*resiliencyPolicyPolicySoftwarePtrType)(v) +} + +func (*resiliencyPolicyPolicySoftwarePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicySoftware)(nil)).Elem() +} + +func (i *resiliencyPolicyPolicySoftwarePtrType) ToResiliencyPolicyPolicySoftwarePtrOutput() ResiliencyPolicyPolicySoftwarePtrOutput { + return i.ToResiliencyPolicyPolicySoftwarePtrOutputWithContext(context.Background()) +} + +func (i *resiliencyPolicyPolicySoftwarePtrType) ToResiliencyPolicyPolicySoftwarePtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicySoftwarePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicySoftwarePtrOutput) +} + +type ResiliencyPolicyPolicySoftwareOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicySoftwareOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicySoftware)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicySoftwareOutput) ToResiliencyPolicyPolicySoftwareOutput() ResiliencyPolicyPolicySoftwareOutput { + return o +} + +func (o ResiliencyPolicyPolicySoftwareOutput) ToResiliencyPolicyPolicySoftwareOutputWithContext(ctx context.Context) ResiliencyPolicyPolicySoftwareOutput { + return o +} + +func (o ResiliencyPolicyPolicySoftwareOutput) ToResiliencyPolicyPolicySoftwarePtrOutput() ResiliencyPolicyPolicySoftwarePtrOutput { + return o.ToResiliencyPolicyPolicySoftwarePtrOutputWithContext(context.Background()) +} + +func (o ResiliencyPolicyPolicySoftwareOutput) ToResiliencyPolicyPolicySoftwarePtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicySoftwarePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResiliencyPolicyPolicySoftware) *ResiliencyPolicyPolicySoftware { + return &v + }).(ResiliencyPolicyPolicySoftwarePtrOutput) +} + +// Recovery Point Objective (RPO) as a Go duration. +func (o ResiliencyPolicyPolicySoftwareOutput) Rpo() pulumi.StringOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicySoftware) string { return v.Rpo }).(pulumi.StringOutput) +} + +// Recovery Time Objective (RTO) as a Go duration. +func (o ResiliencyPolicyPolicySoftwareOutput) Rto() pulumi.StringOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicySoftware) string { return v.Rto }).(pulumi.StringOutput) +} + +type ResiliencyPolicyPolicySoftwarePtrOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicySoftwarePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicySoftware)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicySoftwarePtrOutput) ToResiliencyPolicyPolicySoftwarePtrOutput() ResiliencyPolicyPolicySoftwarePtrOutput { + return o +} + +func (o ResiliencyPolicyPolicySoftwarePtrOutput) ToResiliencyPolicyPolicySoftwarePtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicySoftwarePtrOutput { + return o +} + +func (o ResiliencyPolicyPolicySoftwarePtrOutput) Elem() ResiliencyPolicyPolicySoftwareOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicySoftware) ResiliencyPolicyPolicySoftware { + if v != nil { + return *v + } + var ret ResiliencyPolicyPolicySoftware + return ret + }).(ResiliencyPolicyPolicySoftwareOutput) +} + +// Recovery Point Objective (RPO) as a Go duration. +func (o ResiliencyPolicyPolicySoftwarePtrOutput) Rpo() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicySoftware) *string { + if v == nil { + return nil + } + return &v.Rpo + }).(pulumi.StringPtrOutput) +} + +// Recovery Time Objective (RTO) as a Go duration. +func (o ResiliencyPolicyPolicySoftwarePtrOutput) Rto() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicySoftware) *string { + if v == nil { + return nil + } + return &v.Rto + }).(pulumi.StringPtrOutput) +} + +type ResiliencyPolicyTimeouts 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"` +} + +// ResiliencyPolicyTimeoutsInput is an input type that accepts ResiliencyPolicyTimeoutsArgs and ResiliencyPolicyTimeoutsOutput values. +// You can construct a concrete instance of `ResiliencyPolicyTimeoutsInput` via: +// +// ResiliencyPolicyTimeoutsArgs{...} +type ResiliencyPolicyTimeoutsInput interface { + pulumi.Input + + ToResiliencyPolicyTimeoutsOutput() ResiliencyPolicyTimeoutsOutput + ToResiliencyPolicyTimeoutsOutputWithContext(context.Context) ResiliencyPolicyTimeoutsOutput +} + +type ResiliencyPolicyTimeoutsArgs 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 (ResiliencyPolicyTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyTimeouts)(nil)).Elem() +} + +func (i ResiliencyPolicyTimeoutsArgs) ToResiliencyPolicyTimeoutsOutput() ResiliencyPolicyTimeoutsOutput { + return i.ToResiliencyPolicyTimeoutsOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyTimeoutsArgs) ToResiliencyPolicyTimeoutsOutputWithContext(ctx context.Context) ResiliencyPolicyTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyTimeoutsOutput) +} + +func (i ResiliencyPolicyTimeoutsArgs) ToResiliencyPolicyTimeoutsPtrOutput() ResiliencyPolicyTimeoutsPtrOutput { + return i.ToResiliencyPolicyTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyTimeoutsArgs) ToResiliencyPolicyTimeoutsPtrOutputWithContext(ctx context.Context) ResiliencyPolicyTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyTimeoutsOutput).ToResiliencyPolicyTimeoutsPtrOutputWithContext(ctx) +} + +// ResiliencyPolicyTimeoutsPtrInput is an input type that accepts ResiliencyPolicyTimeoutsArgs, ResiliencyPolicyTimeoutsPtr and ResiliencyPolicyTimeoutsPtrOutput values. +// You can construct a concrete instance of `ResiliencyPolicyTimeoutsPtrInput` via: +// +// ResiliencyPolicyTimeoutsArgs{...} +// +// or: +// +// nil +type ResiliencyPolicyTimeoutsPtrInput interface { + pulumi.Input + + ToResiliencyPolicyTimeoutsPtrOutput() ResiliencyPolicyTimeoutsPtrOutput + ToResiliencyPolicyTimeoutsPtrOutputWithContext(context.Context) ResiliencyPolicyTimeoutsPtrOutput +} + +type resiliencyPolicyTimeoutsPtrType ResiliencyPolicyTimeoutsArgs + +func ResiliencyPolicyTimeoutsPtr(v *ResiliencyPolicyTimeoutsArgs) ResiliencyPolicyTimeoutsPtrInput { + return (*resiliencyPolicyTimeoutsPtrType)(v) +} + +func (*resiliencyPolicyTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyTimeouts)(nil)).Elem() +} + +func (i *resiliencyPolicyTimeoutsPtrType) ToResiliencyPolicyTimeoutsPtrOutput() ResiliencyPolicyTimeoutsPtrOutput { + return i.ToResiliencyPolicyTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *resiliencyPolicyTimeoutsPtrType) ToResiliencyPolicyTimeoutsPtrOutputWithContext(ctx context.Context) ResiliencyPolicyTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyTimeoutsPtrOutput) +} + +type ResiliencyPolicyTimeoutsOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyTimeouts)(nil)).Elem() +} + +func (o ResiliencyPolicyTimeoutsOutput) ToResiliencyPolicyTimeoutsOutput() ResiliencyPolicyTimeoutsOutput { + return o +} + +func (o ResiliencyPolicyTimeoutsOutput) ToResiliencyPolicyTimeoutsOutputWithContext(ctx context.Context) ResiliencyPolicyTimeoutsOutput { + return o +} + +func (o ResiliencyPolicyTimeoutsOutput) ToResiliencyPolicyTimeoutsPtrOutput() ResiliencyPolicyTimeoutsPtrOutput { + return o.ToResiliencyPolicyTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o ResiliencyPolicyTimeoutsOutput) ToResiliencyPolicyTimeoutsPtrOutputWithContext(ctx context.Context) ResiliencyPolicyTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResiliencyPolicyTimeouts) *ResiliencyPolicyTimeouts { + return &v + }).(ResiliencyPolicyTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.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 ResiliencyPolicyTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResiliencyPolicyTimeouts) *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 ResiliencyPolicyTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResiliencyPolicyTimeouts) *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 ResiliencyPolicyTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResiliencyPolicyTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type ResiliencyPolicyTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyTimeouts)(nil)).Elem() +} + +func (o ResiliencyPolicyTimeoutsPtrOutput) ToResiliencyPolicyTimeoutsPtrOutput() ResiliencyPolicyTimeoutsPtrOutput { + return o +} + +func (o ResiliencyPolicyTimeoutsPtrOutput) ToResiliencyPolicyTimeoutsPtrOutputWithContext(ctx context.Context) ResiliencyPolicyTimeoutsPtrOutput { + return o +} + +func (o ResiliencyPolicyTimeoutsPtrOutput) Elem() ResiliencyPolicyTimeoutsOutput { + return o.ApplyT(func(v *ResiliencyPolicyTimeouts) ResiliencyPolicyTimeouts { + if v != nil { + return *v + } + var ret ResiliencyPolicyTimeouts + return ret + }).(ResiliencyPolicyTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.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 ResiliencyPolicyTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyTimeouts) *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 ResiliencyPolicyTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyTimeouts) *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 ResiliencyPolicyTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicyInput)(nil)).Elem(), ResiliencyPolicyPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicyPtrInput)(nil)).Elem(), ResiliencyPolicyPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicyAzInput)(nil)).Elem(), ResiliencyPolicyPolicyAzArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicyAzPtrInput)(nil)).Elem(), ResiliencyPolicyPolicyAzArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicyHardwareInput)(nil)).Elem(), ResiliencyPolicyPolicyHardwareArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicyHardwarePtrInput)(nil)).Elem(), ResiliencyPolicyPolicyHardwareArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicyRegionInput)(nil)).Elem(), ResiliencyPolicyPolicyRegionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicyRegionPtrInput)(nil)).Elem(), ResiliencyPolicyPolicyRegionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicySoftwareInput)(nil)).Elem(), ResiliencyPolicyPolicySoftwareArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicySoftwarePtrInput)(nil)).Elem(), ResiliencyPolicyPolicySoftwareArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyTimeoutsInput)(nil)).Elem(), ResiliencyPolicyTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyTimeoutsPtrInput)(nil)).Elem(), ResiliencyPolicyTimeoutsArgs{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicyOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicyPtrOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicyAzOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicyAzPtrOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicyHardwareOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicyHardwarePtrOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicyRegionOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicyRegionPtrOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicySoftwareOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicySoftwarePtrOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyTimeoutsOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyTimeoutsPtrOutput{}) +} diff --git a/sdk/go/aws/resiliencehub/resiliencyPolicy.go b/sdk/go/aws/resiliencehub/resiliencyPolicy.go new file mode 100644 index 00000000000..12be4cd6646 --- /dev/null +++ b/sdk/go/aws/resiliencehub/resiliencyPolicy.go @@ -0,0 +1,388 @@ +// 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 resiliencehub + +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 Resilience Hub Resiliency Policy. +// +// ## Import +// +// Using `pulumi import`, import Resilience Hub Resiliency Policy using the `arn`. For example: +// +// ```sh +// $ pulumi import aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy example arn:aws:resiliencehub:us-east-1:123456789012:resiliency-policy/8c1cfa29-d1dd-4421-aa68-c9f64cced4c2 +// ``` +type ResiliencyPolicy struct { + pulumi.CustomResourceState + + // ARN of the Resiliency Policy. + Arn pulumi.StringOutput `pulumi:"arn"` + // Data Location Constraint of the Policy. + // Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + DataLocationConstraint pulumi.StringOutput `pulumi:"dataLocationConstraint"` + // Description of Resiliency Policy. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Estimated Cost Tier of the Resiliency Policy. + EstimatedCostTier pulumi.StringOutput `pulumi:"estimatedCostTier"` + // Name of Resiliency Policy. + // Must be between 2 and 60 characters long. + // Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + Name pulumi.StringOutput `pulumi:"name"` + // The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + // + // The following arguments are optional: + Policy ResiliencyPolicyPolicyPtrOutput `pulumi:"policy"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Resiliency Policy Tier. + // Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + Tier pulumi.StringOutput `pulumi:"tier"` + Timeouts ResiliencyPolicyTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewResiliencyPolicy registers a new resource with the given unique name, arguments, and options. +func NewResiliencyPolicy(ctx *pulumi.Context, + name string, args *ResiliencyPolicyArgs, opts ...pulumi.ResourceOption) (*ResiliencyPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Tier == nil { + return nil, errors.New("invalid value for required argument 'Tier'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ResiliencyPolicy + err := ctx.RegisterResource("aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResiliencyPolicy gets an existing ResiliencyPolicy 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 GetResiliencyPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResiliencyPolicyState, opts ...pulumi.ResourceOption) (*ResiliencyPolicy, error) { + var resource ResiliencyPolicy + err := ctx.ReadResource("aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResiliencyPolicy resources. +type resiliencyPolicyState struct { + // ARN of the Resiliency Policy. + Arn *string `pulumi:"arn"` + // Data Location Constraint of the Policy. + // Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + DataLocationConstraint *string `pulumi:"dataLocationConstraint"` + // Description of Resiliency Policy. + Description *string `pulumi:"description"` + // Estimated Cost Tier of the Resiliency Policy. + EstimatedCostTier *string `pulumi:"estimatedCostTier"` + // Name of Resiliency Policy. + // Must be between 2 and 60 characters long. + // Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + Name *string `pulumi:"name"` + // The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + // + // The following arguments are optional: + Policy *ResiliencyPolicyPolicy `pulumi:"policy"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // Resiliency Policy Tier. + // Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + Tier *string `pulumi:"tier"` + Timeouts *ResiliencyPolicyTimeouts `pulumi:"timeouts"` +} + +type ResiliencyPolicyState struct { + // ARN of the Resiliency Policy. + Arn pulumi.StringPtrInput + // Data Location Constraint of the Policy. + // Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + DataLocationConstraint pulumi.StringPtrInput + // Description of Resiliency Policy. + Description pulumi.StringPtrInput + // Estimated Cost Tier of the Resiliency Policy. + EstimatedCostTier pulumi.StringPtrInput + // Name of Resiliency Policy. + // Must be between 2 and 60 characters long. + // Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + Name pulumi.StringPtrInput + // The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + // + // The following arguments are optional: + Policy ResiliencyPolicyPolicyPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // Resiliency Policy Tier. + // Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + Tier pulumi.StringPtrInput + Timeouts ResiliencyPolicyTimeoutsPtrInput +} + +func (ResiliencyPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*resiliencyPolicyState)(nil)).Elem() +} + +type resiliencyPolicyArgs struct { + // Data Location Constraint of the Policy. + // Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + DataLocationConstraint *string `pulumi:"dataLocationConstraint"` + // Description of Resiliency Policy. + Description *string `pulumi:"description"` + // Name of Resiliency Policy. + // Must be between 2 and 60 characters long. + // Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + Name *string `pulumi:"name"` + // The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + // + // The following arguments are optional: + Policy *ResiliencyPolicyPolicy `pulumi:"policy"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Resiliency Policy Tier. + // Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + Tier string `pulumi:"tier"` + Timeouts *ResiliencyPolicyTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a ResiliencyPolicy resource. +type ResiliencyPolicyArgs struct { + // Data Location Constraint of the Policy. + // Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + DataLocationConstraint pulumi.StringPtrInput + // Description of Resiliency Policy. + Description pulumi.StringPtrInput + // Name of Resiliency Policy. + // Must be between 2 and 60 characters long. + // Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + Name pulumi.StringPtrInput + // The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + // + // The following arguments are optional: + Policy ResiliencyPolicyPolicyPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Resiliency Policy Tier. + // Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + Tier pulumi.StringInput + Timeouts ResiliencyPolicyTimeoutsPtrInput +} + +func (ResiliencyPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resiliencyPolicyArgs)(nil)).Elem() +} + +type ResiliencyPolicyInput interface { + pulumi.Input + + ToResiliencyPolicyOutput() ResiliencyPolicyOutput + ToResiliencyPolicyOutputWithContext(ctx context.Context) ResiliencyPolicyOutput +} + +func (*ResiliencyPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicy)(nil)).Elem() +} + +func (i *ResiliencyPolicy) ToResiliencyPolicyOutput() ResiliencyPolicyOutput { + return i.ToResiliencyPolicyOutputWithContext(context.Background()) +} + +func (i *ResiliencyPolicy) ToResiliencyPolicyOutputWithContext(ctx context.Context) ResiliencyPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyOutput) +} + +// ResiliencyPolicyArrayInput is an input type that accepts ResiliencyPolicyArray and ResiliencyPolicyArrayOutput values. +// You can construct a concrete instance of `ResiliencyPolicyArrayInput` via: +// +// ResiliencyPolicyArray{ ResiliencyPolicyArgs{...} } +type ResiliencyPolicyArrayInput interface { + pulumi.Input + + ToResiliencyPolicyArrayOutput() ResiliencyPolicyArrayOutput + ToResiliencyPolicyArrayOutputWithContext(context.Context) ResiliencyPolicyArrayOutput +} + +type ResiliencyPolicyArray []ResiliencyPolicyInput + +func (ResiliencyPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResiliencyPolicy)(nil)).Elem() +} + +func (i ResiliencyPolicyArray) ToResiliencyPolicyArrayOutput() ResiliencyPolicyArrayOutput { + return i.ToResiliencyPolicyArrayOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyArray) ToResiliencyPolicyArrayOutputWithContext(ctx context.Context) ResiliencyPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyArrayOutput) +} + +// ResiliencyPolicyMapInput is an input type that accepts ResiliencyPolicyMap and ResiliencyPolicyMapOutput values. +// You can construct a concrete instance of `ResiliencyPolicyMapInput` via: +// +// ResiliencyPolicyMap{ "key": ResiliencyPolicyArgs{...} } +type ResiliencyPolicyMapInput interface { + pulumi.Input + + ToResiliencyPolicyMapOutput() ResiliencyPolicyMapOutput + ToResiliencyPolicyMapOutputWithContext(context.Context) ResiliencyPolicyMapOutput +} + +type ResiliencyPolicyMap map[string]ResiliencyPolicyInput + +func (ResiliencyPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResiliencyPolicy)(nil)).Elem() +} + +func (i ResiliencyPolicyMap) ToResiliencyPolicyMapOutput() ResiliencyPolicyMapOutput { + return i.ToResiliencyPolicyMapOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyMap) ToResiliencyPolicyMapOutputWithContext(ctx context.Context) ResiliencyPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyMapOutput) +} + +type ResiliencyPolicyOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicy)(nil)).Elem() +} + +func (o ResiliencyPolicyOutput) ToResiliencyPolicyOutput() ResiliencyPolicyOutput { + return o +} + +func (o ResiliencyPolicyOutput) ToResiliencyPolicyOutputWithContext(ctx context.Context) ResiliencyPolicyOutput { + return o +} + +// ARN of the Resiliency Policy. +func (o ResiliencyPolicyOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *ResiliencyPolicy) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Data Location Constraint of the Policy. +// Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. +func (o ResiliencyPolicyOutput) DataLocationConstraint() pulumi.StringOutput { + return o.ApplyT(func(v *ResiliencyPolicy) pulumi.StringOutput { return v.DataLocationConstraint }).(pulumi.StringOutput) +} + +// Description of Resiliency Policy. +func (o ResiliencyPolicyOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicy) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Estimated Cost Tier of the Resiliency Policy. +func (o ResiliencyPolicyOutput) EstimatedCostTier() pulumi.StringOutput { + return o.ApplyT(func(v *ResiliencyPolicy) pulumi.StringOutput { return v.EstimatedCostTier }).(pulumi.StringOutput) +} + +// Name of Resiliency Policy. +// Must be between 2 and 60 characters long. +// Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. +func (o ResiliencyPolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *ResiliencyPolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. +// +// The following arguments are optional: +func (o ResiliencyPolicyOutput) Policy() ResiliencyPolicyPolicyPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicy) ResiliencyPolicyPolicyPtrOutput { return v.Policy }).(ResiliencyPolicyPolicyPtrOutput) +} + +// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o ResiliencyPolicyOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *ResiliencyPolicy) 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 ResiliencyPolicyOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *ResiliencyPolicy) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// Resiliency Policy Tier. +// Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. +func (o ResiliencyPolicyOutput) Tier() pulumi.StringOutput { + return o.ApplyT(func(v *ResiliencyPolicy) pulumi.StringOutput { return v.Tier }).(pulumi.StringOutput) +} + +func (o ResiliencyPolicyOutput) Timeouts() ResiliencyPolicyTimeoutsPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicy) ResiliencyPolicyTimeoutsPtrOutput { return v.Timeouts }).(ResiliencyPolicyTimeoutsPtrOutput) +} + +type ResiliencyPolicyArrayOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResiliencyPolicy)(nil)).Elem() +} + +func (o ResiliencyPolicyArrayOutput) ToResiliencyPolicyArrayOutput() ResiliencyPolicyArrayOutput { + return o +} + +func (o ResiliencyPolicyArrayOutput) ToResiliencyPolicyArrayOutputWithContext(ctx context.Context) ResiliencyPolicyArrayOutput { + return o +} + +func (o ResiliencyPolicyArrayOutput) Index(i pulumi.IntInput) ResiliencyPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResiliencyPolicy { + return vs[0].([]*ResiliencyPolicy)[vs[1].(int)] + }).(ResiliencyPolicyOutput) +} + +type ResiliencyPolicyMapOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResiliencyPolicy)(nil)).Elem() +} + +func (o ResiliencyPolicyMapOutput) ToResiliencyPolicyMapOutput() ResiliencyPolicyMapOutput { + return o +} + +func (o ResiliencyPolicyMapOutput) ToResiliencyPolicyMapOutputWithContext(ctx context.Context) ResiliencyPolicyMapOutput { + return o +} + +func (o ResiliencyPolicyMapOutput) MapIndex(k pulumi.StringInput) ResiliencyPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResiliencyPolicy { + return vs[0].(map[string]*ResiliencyPolicy)[vs[1].(string)] + }).(ResiliencyPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyInput)(nil)).Elem(), &ResiliencyPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyArrayInput)(nil)).Elem(), ResiliencyPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyMapInput)(nil)).Elem(), ResiliencyPolicyMap{}) + pulumi.RegisterOutputType(ResiliencyPolicyOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyArrayOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyMapOutput{}) +} diff --git a/sdk/go/aws/route53/profilesAssociation.go b/sdk/go/aws/route53/profilesAssociation.go index 62f792c965e..1e657a1809e 100644 --- a/sdk/go/aws/route53/profilesAssociation.go +++ b/sdk/go/aws/route53/profilesAssociation.go @@ -27,14 +27,14 @@ type ProfilesAssociation struct { pulumi.CustomResourceState Arn pulumi.StringOutput `pulumi:"arn"` - // Name of the Profile Association. + // Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. Name pulumi.StringOutput `pulumi:"name"` OwnerId pulumi.StringOutput `pulumi:"ownerId"` // ID of the profile associated with the VPC. ProfileId pulumi.StringOutput `pulumi:"profileId"` // Resource ID of the VPC the profile to be associated with. ResourceId pulumi.StringOutput `pulumi:"resourceId"` - // Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + // Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. Status pulumi.StringOutput `pulumi:"status"` // Status message of the Profile Association. StatusMessage pulumi.StringOutput `pulumi:"statusMessage"` @@ -81,14 +81,14 @@ func GetProfilesAssociation(ctx *pulumi.Context, // Input properties used for looking up and filtering ProfilesAssociation resources. type profilesAssociationState struct { Arn *string `pulumi:"arn"` - // Name of the Profile Association. + // Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. Name *string `pulumi:"name"` OwnerId *string `pulumi:"ownerId"` // ID of the profile associated with the VPC. ProfileId *string `pulumi:"profileId"` // Resource ID of the VPC the profile to be associated with. ResourceId *string `pulumi:"resourceId"` - // Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + // Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. Status *string `pulumi:"status"` // Status message of the Profile Association. StatusMessage *string `pulumi:"statusMessage"` @@ -100,14 +100,14 @@ type profilesAssociationState struct { type ProfilesAssociationState struct { Arn pulumi.StringPtrInput - // Name of the Profile Association. + // Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. Name pulumi.StringPtrInput OwnerId pulumi.StringPtrInput // ID of the profile associated with the VPC. ProfileId pulumi.StringPtrInput // Resource ID of the VPC the profile to be associated with. ResourceId pulumi.StringPtrInput - // Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + // Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. Status pulumi.StringPtrInput // Status message of the Profile Association. StatusMessage pulumi.StringPtrInput @@ -122,7 +122,7 @@ func (ProfilesAssociationState) ElementType() reflect.Type { } type profilesAssociationArgs struct { - // Name of the Profile Association. + // Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. Name *string `pulumi:"name"` // ID of the profile associated with the VPC. ProfileId string `pulumi:"profileId"` @@ -134,7 +134,7 @@ type profilesAssociationArgs struct { // The set of arguments for constructing a ProfilesAssociation resource. type ProfilesAssociationArgs struct { - // Name of the Profile Association. + // Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. Name pulumi.StringPtrInput // ID of the profile associated with the VPC. ProfileId pulumi.StringInput @@ -235,7 +235,7 @@ func (o ProfilesAssociationOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *ProfilesAssociation) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } -// Name of the Profile Association. +// Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. func (o ProfilesAssociationOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *ProfilesAssociation) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } @@ -254,7 +254,7 @@ func (o ProfilesAssociationOutput) ResourceId() pulumi.StringOutput { return o.ApplyT(func(v *ProfilesAssociation) pulumi.StringOutput { return v.ResourceId }).(pulumi.StringOutput) } -// Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) +// Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. func (o ProfilesAssociationOutput) Status() pulumi.StringOutput { return o.ApplyT(func(v *ProfilesAssociation) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/route53/pulumiTypes.go b/sdk/go/aws/route53/pulumiTypes.go index 7ad6a5d9578..3c169df4a74 100644 --- a/sdk/go/aws/route53/pulumiTypes.go +++ b/sdk/go/aws/route53/pulumiTypes.go @@ -18,8 +18,8 @@ type ProfilesAssociationTimeouts struct { 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). Read operations occur during any refresh or planning operation when refresh is enabled. - Read *string `pulumi:"read"` + // A string that can be [parsed as a duration](https://pkg.go.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"` } // ProfilesAssociationTimeoutsInput is an input type that accepts ProfilesAssociationTimeoutsArgs and ProfilesAssociationTimeoutsOutput values. @@ -38,8 +38,8 @@ type ProfilesAssociationTimeoutsArgs struct { 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). Read operations occur during any refresh or planning operation when refresh is enabled. - Read pulumi.StringPtrInput `pulumi:"read"` + // A string that can be [parsed as a duration](https://pkg.go.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 (ProfilesAssociationTimeoutsArgs) ElementType() reflect.Type { @@ -129,9 +129,9 @@ func (o ProfilesAssociationTimeoutsOutput) Delete() pulumi.StringPtrOutput { return o.ApplyT(func(v ProfilesAssociationTimeouts) *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). Read operations occur during any refresh or planning operation when refresh is enabled. -func (o ProfilesAssociationTimeoutsOutput) Read() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProfilesAssociationTimeouts) *string { return v.Read }).(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 ProfilesAssociationTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProfilesAssociationTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) } type ProfilesAssociationTimeoutsPtrOutput struct{ *pulumi.OutputState } @@ -178,13 +178,13 @@ func (o ProfilesAssociationTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { }).(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). Read operations occur during any refresh or planning operation when refresh is enabled. -func (o ProfilesAssociationTimeoutsPtrOutput) Read() 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 ProfilesAssociationTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { return o.ApplyT(func(v *ProfilesAssociationTimeouts) *string { if v == nil { return nil } - return v.Read + return v.Update }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/sagemaker/domain.go b/sdk/go/aws/sagemaker/domain.go index 1f0744fa5fb..70ccfcf8233 100644 --- a/sdk/go/aws/sagemaker/domain.go +++ b/sdk/go/aws/sagemaker/domain.go @@ -119,6 +119,8 @@ type Domain struct { SingleSignOnManagedApplicationInstanceId pulumi.StringOutput `pulumi:"singleSignOnManagedApplicationInstanceId"` // The VPC subnets that Studio uses for communication. SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"` + // Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + TagPropagation pulumi.StringPtrOutput `pulumi:"tagPropagation"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapOutput `pulumi:"tags"` // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. @@ -208,6 +210,8 @@ type domainState struct { SingleSignOnManagedApplicationInstanceId *string `pulumi:"singleSignOnManagedApplicationInstanceId"` // The VPC subnets that Studio uses for communication. SubnetIds []string `pulumi:"subnetIds"` + // Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + TagPropagation *string `pulumi:"tagPropagation"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags map[string]string `pulumi:"tags"` // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. @@ -253,6 +257,8 @@ type DomainState struct { SingleSignOnManagedApplicationInstanceId pulumi.StringPtrInput // The VPC subnets that Studio uses for communication. SubnetIds pulumi.StringArrayInput + // Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + TagPropagation pulumi.StringPtrInput // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. @@ -292,6 +298,8 @@ type domainArgs struct { RetentionPolicy *DomainRetentionPolicy `pulumi:"retentionPolicy"` // The VPC subnets that Studio uses for communication. SubnetIds []string `pulumi:"subnetIds"` + // Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + TagPropagation *string `pulumi:"tagPropagation"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags map[string]string `pulumi:"tags"` // The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. @@ -322,6 +330,8 @@ type DomainArgs struct { RetentionPolicy DomainRetentionPolicyPtrInput // The VPC subnets that Studio uses for communication. SubnetIds pulumi.StringArrayInput + // Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + TagPropagation pulumi.StringPtrInput // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput // The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. @@ -492,6 +502,11 @@ func (o DomainOutput) SubnetIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *Domain) pulumi.StringArrayOutput { return v.SubnetIds }).(pulumi.StringArrayOutput) } +// Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. +func (o DomainOutput) TagPropagation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Domain) pulumi.StringPtrOutput { return v.TagPropagation }).(pulumi.StringPtrOutput) +} + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. func (o DomainOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *Domain) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) diff --git a/sdk/go/aws/sagemaker/featureGroup.go b/sdk/go/aws/sagemaker/featureGroup.go index dc4ab592669..4520cbedb10 100644 --- a/sdk/go/aws/sagemaker/featureGroup.go +++ b/sdk/go/aws/sagemaker/featureGroup.go @@ -87,7 +87,8 @@ type FeatureGroup struct { // 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"` + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + ThroughputConfig FeatureGroupThroughputConfigOutput `pulumi:"throughputConfig"` } // NewFeatureGroup registers a new resource with the given unique name, arguments, and options. @@ -158,7 +159,8 @@ type featureGroupState struct { // 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"` + TagsAll map[string]string `pulumi:"tagsAll"` + ThroughputConfig *FeatureGroupThroughputConfig `pulumi:"throughputConfig"` } type FeatureGroupState struct { @@ -185,7 +187,8 @@ type FeatureGroupState struct { // 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 + TagsAll pulumi.StringMapInput + ThroughputConfig FeatureGroupThroughputConfigPtrInput } func (FeatureGroupState) ElementType() reflect.Type { @@ -210,7 +213,8 @@ type featureGroupArgs struct { // The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the Offline Store if an `offlineStoreConfig` is provided. RoleArn string `pulumi:"roleArn"` // Map of resource tags for the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]string `pulumi:"tags"` + Tags map[string]string `pulumi:"tags"` + ThroughputConfig *FeatureGroupThroughputConfig `pulumi:"throughputConfig"` } // The set of arguments for constructing a FeatureGroup resource. @@ -232,7 +236,8 @@ type FeatureGroupArgs struct { // The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the Offline Store if an `offlineStoreConfig` is provided. RoleArn pulumi.StringInput // Map of resource tags for the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags pulumi.StringMapInput + Tags pulumi.StringMapInput + ThroughputConfig FeatureGroupThroughputConfigPtrInput } func (FeatureGroupArgs) ElementType() reflect.Type { @@ -379,6 +384,10 @@ func (o FeatureGroupOutput) TagsAll() pulumi.StringMapOutput { return o.ApplyT(func(v *FeatureGroup) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) } +func (o FeatureGroupOutput) ThroughputConfig() FeatureGroupThroughputConfigOutput { + return o.ApplyT(func(v *FeatureGroup) FeatureGroupThroughputConfigOutput { return v.ThroughputConfig }).(FeatureGroupThroughputConfigOutput) +} + type FeatureGroupArrayOutput struct{ *pulumi.OutputState } func (FeatureGroupArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/sagemaker/hub.go b/sdk/go/aws/sagemaker/hub.go new file mode 100644 index 00000000000..56c78c921a5 --- /dev/null +++ b/sdk/go/aws/sagemaker/hub.go @@ -0,0 +1,364 @@ +// 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 sagemaker + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a SageMaker Hub resource. +// +// ## Example Usage +// +// ### Basic usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sagemaker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := sagemaker.NewHub(ctx, "example", &sagemaker.HubArgs{ +// HubName: pulumi.String("example"), +// HubDescription: pulumi.String("example"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import SageMaker Hubs using the `name`. For example: +// +// ```sh +// $ pulumi import aws:sagemaker/hub:Hub test_hub my-code-repo +// ``` +type Hub struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) assigned by AWS to this Hub. + Arn pulumi.StringOutput `pulumi:"arn"` + // A description of the hub. + HubDescription pulumi.StringOutput `pulumi:"hubDescription"` + // The display name of the hub. + HubDisplayName pulumi.StringPtrOutput `pulumi:"hubDisplayName"` + // The name of the hub. + HubName pulumi.StringOutput `pulumi:"hubName"` + // The searchable keywords for the hub. + HubSearchKeywords pulumi.StringArrayOutput `pulumi:"hubSearchKeywords"` + // The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + S3StorageConfig HubS3StorageConfigPtrOutput `pulumi:"s3StorageConfig"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` +} + +// NewHub registers a new resource with the given unique name, arguments, and options. +func NewHub(ctx *pulumi.Context, + name string, args *HubArgs, opts ...pulumi.ResourceOption) (*Hub, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.HubDescription == nil { + return nil, errors.New("invalid value for required argument 'HubDescription'") + } + if args.HubName == nil { + return nil, errors.New("invalid value for required argument 'HubName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Hub + err := ctx.RegisterResource("aws:sagemaker/hub:Hub", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetHub gets an existing Hub 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 GetHub(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *HubState, opts ...pulumi.ResourceOption) (*Hub, error) { + var resource Hub + err := ctx.ReadResource("aws:sagemaker/hub:Hub", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Hub resources. +type hubState struct { + // The Amazon Resource Name (ARN) assigned by AWS to this Hub. + Arn *string `pulumi:"arn"` + // A description of the hub. + HubDescription *string `pulumi:"hubDescription"` + // The display name of the hub. + HubDisplayName *string `pulumi:"hubDisplayName"` + // The name of the hub. + HubName *string `pulumi:"hubName"` + // The searchable keywords for the hub. + HubSearchKeywords []string `pulumi:"hubSearchKeywords"` + // The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + S3StorageConfig *HubS3StorageConfig `pulumi:"s3StorageConfig"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` +} + +type HubState struct { + // The Amazon Resource Name (ARN) assigned by AWS to this Hub. + Arn pulumi.StringPtrInput + // A description of the hub. + HubDescription pulumi.StringPtrInput + // The display name of the hub. + HubDisplayName pulumi.StringPtrInput + // The name of the hub. + HubName pulumi.StringPtrInput + // The searchable keywords for the hub. + HubSearchKeywords pulumi.StringArrayInput + // The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + S3StorageConfig HubS3StorageConfigPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput +} + +func (HubState) ElementType() reflect.Type { + return reflect.TypeOf((*hubState)(nil)).Elem() +} + +type hubArgs struct { + // A description of the hub. + HubDescription string `pulumi:"hubDescription"` + // The display name of the hub. + HubDisplayName *string `pulumi:"hubDisplayName"` + // The name of the hub. + HubName string `pulumi:"hubName"` + // The searchable keywords for the hub. + HubSearchKeywords []string `pulumi:"hubSearchKeywords"` + // The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + S3StorageConfig *HubS3StorageConfig `pulumi:"s3StorageConfig"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a Hub resource. +type HubArgs struct { + // A description of the hub. + HubDescription pulumi.StringInput + // The display name of the hub. + HubDisplayName pulumi.StringPtrInput + // The name of the hub. + HubName pulumi.StringInput + // The searchable keywords for the hub. + HubSearchKeywords pulumi.StringArrayInput + // The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + S3StorageConfig HubS3StorageConfigPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (HubArgs) ElementType() reflect.Type { + return reflect.TypeOf((*hubArgs)(nil)).Elem() +} + +type HubInput interface { + pulumi.Input + + ToHubOutput() HubOutput + ToHubOutputWithContext(ctx context.Context) HubOutput +} + +func (*Hub) ElementType() reflect.Type { + return reflect.TypeOf((**Hub)(nil)).Elem() +} + +func (i *Hub) ToHubOutput() HubOutput { + return i.ToHubOutputWithContext(context.Background()) +} + +func (i *Hub) ToHubOutputWithContext(ctx context.Context) HubOutput { + return pulumi.ToOutputWithContext(ctx, i).(HubOutput) +} + +// HubArrayInput is an input type that accepts HubArray and HubArrayOutput values. +// You can construct a concrete instance of `HubArrayInput` via: +// +// HubArray{ HubArgs{...} } +type HubArrayInput interface { + pulumi.Input + + ToHubArrayOutput() HubArrayOutput + ToHubArrayOutputWithContext(context.Context) HubArrayOutput +} + +type HubArray []HubInput + +func (HubArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Hub)(nil)).Elem() +} + +func (i HubArray) ToHubArrayOutput() HubArrayOutput { + return i.ToHubArrayOutputWithContext(context.Background()) +} + +func (i HubArray) ToHubArrayOutputWithContext(ctx context.Context) HubArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(HubArrayOutput) +} + +// HubMapInput is an input type that accepts HubMap and HubMapOutput values. +// You can construct a concrete instance of `HubMapInput` via: +// +// HubMap{ "key": HubArgs{...} } +type HubMapInput interface { + pulumi.Input + + ToHubMapOutput() HubMapOutput + ToHubMapOutputWithContext(context.Context) HubMapOutput +} + +type HubMap map[string]HubInput + +func (HubMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Hub)(nil)).Elem() +} + +func (i HubMap) ToHubMapOutput() HubMapOutput { + return i.ToHubMapOutputWithContext(context.Background()) +} + +func (i HubMap) ToHubMapOutputWithContext(ctx context.Context) HubMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(HubMapOutput) +} + +type HubOutput struct{ *pulumi.OutputState } + +func (HubOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Hub)(nil)).Elem() +} + +func (o HubOutput) ToHubOutput() HubOutput { + return o +} + +func (o HubOutput) ToHubOutputWithContext(ctx context.Context) HubOutput { + return o +} + +// The Amazon Resource Name (ARN) assigned by AWS to this Hub. +func (o HubOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Hub) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// A description of the hub. +func (o HubOutput) HubDescription() pulumi.StringOutput { + return o.ApplyT(func(v *Hub) pulumi.StringOutput { return v.HubDescription }).(pulumi.StringOutput) +} + +// The display name of the hub. +func (o HubOutput) HubDisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Hub) pulumi.StringPtrOutput { return v.HubDisplayName }).(pulumi.StringPtrOutput) +} + +// The name of the hub. +func (o HubOutput) HubName() pulumi.StringOutput { + return o.ApplyT(func(v *Hub) pulumi.StringOutput { return v.HubName }).(pulumi.StringOutput) +} + +// The searchable keywords for the hub. +func (o HubOutput) HubSearchKeywords() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Hub) pulumi.StringArrayOutput { return v.HubSearchKeywords }).(pulumi.StringArrayOutput) +} + +// The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. +func (o HubOutput) S3StorageConfig() HubS3StorageConfigPtrOutput { + return o.ApplyT(func(v *Hub) HubS3StorageConfigPtrOutput { return v.S3StorageConfig }).(HubS3StorageConfigPtrOutput) +} + +// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o HubOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Hub) 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 HubOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *Hub) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type HubArrayOutput struct{ *pulumi.OutputState } + +func (HubArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Hub)(nil)).Elem() +} + +func (o HubArrayOutput) ToHubArrayOutput() HubArrayOutput { + return o +} + +func (o HubArrayOutput) ToHubArrayOutputWithContext(ctx context.Context) HubArrayOutput { + return o +} + +func (o HubArrayOutput) Index(i pulumi.IntInput) HubOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Hub { + return vs[0].([]*Hub)[vs[1].(int)] + }).(HubOutput) +} + +type HubMapOutput struct{ *pulumi.OutputState } + +func (HubMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Hub)(nil)).Elem() +} + +func (o HubMapOutput) ToHubMapOutput() HubMapOutput { + return o +} + +func (o HubMapOutput) ToHubMapOutputWithContext(ctx context.Context) HubMapOutput { + return o +} + +func (o HubMapOutput) MapIndex(k pulumi.StringInput) HubOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Hub { + return vs[0].(map[string]*Hub)[vs[1].(string)] + }).(HubOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*HubInput)(nil)).Elem(), &Hub{}) + pulumi.RegisterInputType(reflect.TypeOf((*HubArrayInput)(nil)).Elem(), HubArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*HubMapInput)(nil)).Elem(), HubMap{}) + pulumi.RegisterOutputType(HubOutput{}) + pulumi.RegisterOutputType(HubArrayOutput{}) + pulumi.RegisterOutputType(HubMapOutput{}) +} diff --git a/sdk/go/aws/sagemaker/init.go b/sdk/go/aws/sagemaker/init.go index c9bede52266..442e615d72f 100644 --- a/sdk/go/aws/sagemaker/init.go +++ b/sdk/go/aws/sagemaker/init.go @@ -43,12 +43,16 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &FeatureGroup{} case "aws:sagemaker/flowDefinition:FlowDefinition": r = &FlowDefinition{} + case "aws:sagemaker/hub:Hub": + r = &Hub{} case "aws:sagemaker/humanTaskUI:HumanTaskUI": r = &HumanTaskUI{} case "aws:sagemaker/image:Image": r = &Image{} case "aws:sagemaker/imageVersion:ImageVersion": r = &ImageVersion{} + case "aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer": + r = &MlflowTrackingServer{} case "aws:sagemaker/model:Model": r = &Model{} case "aws:sagemaker/modelPackageGroup:ModelPackageGroup": @@ -145,6 +149,11 @@ func init() { "sagemaker/flowDefinition", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "sagemaker/hub", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "sagemaker/humanTaskUI", @@ -160,6 +169,11 @@ func init() { "sagemaker/imageVersion", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "sagemaker/mlflowTrackingServer", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "sagemaker/model", diff --git a/sdk/go/aws/sagemaker/mlflowTrackingServer.go b/sdk/go/aws/sagemaker/mlflowTrackingServer.go new file mode 100644 index 00000000000..69ed952df6c --- /dev/null +++ b/sdk/go/aws/sagemaker/mlflowTrackingServer.go @@ -0,0 +1,411 @@ +// 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 sagemaker + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a SageMaker MLFlow Tracking Server resource. +// +// ## Example Usage +// +// ### Cognito Usage +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sagemaker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := sagemaker.NewMlflowTrackingServer(ctx, "example", &sagemaker.MlflowTrackingServerArgs{ +// TrackingServerName: pulumi.String("example"), +// RoleArn: pulumi.Any(exampleAwsIamRole.Arn), +// ArtifactStoreUri: pulumi.Sprintf("s3://%v/path", exampleAwsS3Bucket.Bucket), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import SageMaker MLFlow Tracking Servers using the `workteam_name`. For example: +// +// ```sh +// $ pulumi import aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer example example +// ``` +type MlflowTrackingServer struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + Arn pulumi.StringOutput `pulumi:"arn"` + // The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + ArtifactStoreUri pulumi.StringOutput `pulumi:"artifactStoreUri"` + // A list of Member Definitions that contains objects that identify the workers that make up the work team. + AutomaticModelRegistration pulumi.BoolPtrOutput `pulumi:"automaticModelRegistration"` + // The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + MlflowVersion pulumi.StringOutput `pulumi:"mlflowVersion"` + // The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + RoleArn pulumi.StringOutput `pulumi:"roleArn"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // A unique string identifying the tracking server name. This string is part of the tracking server ARN. + TrackingServerName pulumi.StringOutput `pulumi:"trackingServerName"` + // The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + TrackingServerSize pulumi.StringPtrOutput `pulumi:"trackingServerSize"` + // The URL to connect to the MLflow user interface for the described tracking server. + TrackingServerUrl pulumi.StringOutput `pulumi:"trackingServerUrl"` + // The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + WeeklyMaintenanceWindowStart pulumi.StringOutput `pulumi:"weeklyMaintenanceWindowStart"` +} + +// NewMlflowTrackingServer registers a new resource with the given unique name, arguments, and options. +func NewMlflowTrackingServer(ctx *pulumi.Context, + name string, args *MlflowTrackingServerArgs, opts ...pulumi.ResourceOption) (*MlflowTrackingServer, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ArtifactStoreUri == nil { + return nil, errors.New("invalid value for required argument 'ArtifactStoreUri'") + } + if args.RoleArn == nil { + return nil, errors.New("invalid value for required argument 'RoleArn'") + } + if args.TrackingServerName == nil { + return nil, errors.New("invalid value for required argument 'TrackingServerName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource MlflowTrackingServer + err := ctx.RegisterResource("aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMlflowTrackingServer gets an existing MlflowTrackingServer 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 GetMlflowTrackingServer(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MlflowTrackingServerState, opts ...pulumi.ResourceOption) (*MlflowTrackingServer, error) { + var resource MlflowTrackingServer + err := ctx.ReadResource("aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MlflowTrackingServer resources. +type mlflowTrackingServerState struct { + // The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + Arn *string `pulumi:"arn"` + // The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + ArtifactStoreUri *string `pulumi:"artifactStoreUri"` + // A list of Member Definitions that contains objects that identify the workers that make up the work team. + AutomaticModelRegistration *bool `pulumi:"automaticModelRegistration"` + // The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + MlflowVersion *string `pulumi:"mlflowVersion"` + // The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + RoleArn *string `pulumi:"roleArn"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // A unique string identifying the tracking server name. This string is part of the tracking server ARN. + TrackingServerName *string `pulumi:"trackingServerName"` + // The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + TrackingServerSize *string `pulumi:"trackingServerSize"` + // The URL to connect to the MLflow user interface for the described tracking server. + TrackingServerUrl *string `pulumi:"trackingServerUrl"` + // The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + WeeklyMaintenanceWindowStart *string `pulumi:"weeklyMaintenanceWindowStart"` +} + +type MlflowTrackingServerState struct { + // The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + Arn pulumi.StringPtrInput + // The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + ArtifactStoreUri pulumi.StringPtrInput + // A list of Member Definitions that contains objects that identify the workers that make up the work team. + AutomaticModelRegistration pulumi.BoolPtrInput + // The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + MlflowVersion pulumi.StringPtrInput + // The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + RoleArn pulumi.StringPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // A unique string identifying the tracking server name. This string is part of the tracking server ARN. + TrackingServerName pulumi.StringPtrInput + // The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + TrackingServerSize pulumi.StringPtrInput + // The URL to connect to the MLflow user interface for the described tracking server. + TrackingServerUrl pulumi.StringPtrInput + // The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + WeeklyMaintenanceWindowStart pulumi.StringPtrInput +} + +func (MlflowTrackingServerState) ElementType() reflect.Type { + return reflect.TypeOf((*mlflowTrackingServerState)(nil)).Elem() +} + +type mlflowTrackingServerArgs struct { + // The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + ArtifactStoreUri string `pulumi:"artifactStoreUri"` + // A list of Member Definitions that contains objects that identify the workers that make up the work team. + AutomaticModelRegistration *bool `pulumi:"automaticModelRegistration"` + // The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + MlflowVersion *string `pulumi:"mlflowVersion"` + // The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + RoleArn string `pulumi:"roleArn"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A unique string identifying the tracking server name. This string is part of the tracking server ARN. + TrackingServerName string `pulumi:"trackingServerName"` + // The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + TrackingServerSize *string `pulumi:"trackingServerSize"` + // The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + WeeklyMaintenanceWindowStart *string `pulumi:"weeklyMaintenanceWindowStart"` +} + +// The set of arguments for constructing a MlflowTrackingServer resource. +type MlflowTrackingServerArgs struct { + // The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + ArtifactStoreUri pulumi.StringInput + // A list of Member Definitions that contains objects that identify the workers that make up the work team. + AutomaticModelRegistration pulumi.BoolPtrInput + // The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + MlflowVersion pulumi.StringPtrInput + // The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + RoleArn pulumi.StringInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A unique string identifying the tracking server name. This string is part of the tracking server ARN. + TrackingServerName pulumi.StringInput + // The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + TrackingServerSize pulumi.StringPtrInput + // The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + WeeklyMaintenanceWindowStart pulumi.StringPtrInput +} + +func (MlflowTrackingServerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mlflowTrackingServerArgs)(nil)).Elem() +} + +type MlflowTrackingServerInput interface { + pulumi.Input + + ToMlflowTrackingServerOutput() MlflowTrackingServerOutput + ToMlflowTrackingServerOutputWithContext(ctx context.Context) MlflowTrackingServerOutput +} + +func (*MlflowTrackingServer) ElementType() reflect.Type { + return reflect.TypeOf((**MlflowTrackingServer)(nil)).Elem() +} + +func (i *MlflowTrackingServer) ToMlflowTrackingServerOutput() MlflowTrackingServerOutput { + return i.ToMlflowTrackingServerOutputWithContext(context.Background()) +} + +func (i *MlflowTrackingServer) ToMlflowTrackingServerOutputWithContext(ctx context.Context) MlflowTrackingServerOutput { + return pulumi.ToOutputWithContext(ctx, i).(MlflowTrackingServerOutput) +} + +// MlflowTrackingServerArrayInput is an input type that accepts MlflowTrackingServerArray and MlflowTrackingServerArrayOutput values. +// You can construct a concrete instance of `MlflowTrackingServerArrayInput` via: +// +// MlflowTrackingServerArray{ MlflowTrackingServerArgs{...} } +type MlflowTrackingServerArrayInput interface { + pulumi.Input + + ToMlflowTrackingServerArrayOutput() MlflowTrackingServerArrayOutput + ToMlflowTrackingServerArrayOutputWithContext(context.Context) MlflowTrackingServerArrayOutput +} + +type MlflowTrackingServerArray []MlflowTrackingServerInput + +func (MlflowTrackingServerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MlflowTrackingServer)(nil)).Elem() +} + +func (i MlflowTrackingServerArray) ToMlflowTrackingServerArrayOutput() MlflowTrackingServerArrayOutput { + return i.ToMlflowTrackingServerArrayOutputWithContext(context.Background()) +} + +func (i MlflowTrackingServerArray) ToMlflowTrackingServerArrayOutputWithContext(ctx context.Context) MlflowTrackingServerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MlflowTrackingServerArrayOutput) +} + +// MlflowTrackingServerMapInput is an input type that accepts MlflowTrackingServerMap and MlflowTrackingServerMapOutput values. +// You can construct a concrete instance of `MlflowTrackingServerMapInput` via: +// +// MlflowTrackingServerMap{ "key": MlflowTrackingServerArgs{...} } +type MlflowTrackingServerMapInput interface { + pulumi.Input + + ToMlflowTrackingServerMapOutput() MlflowTrackingServerMapOutput + ToMlflowTrackingServerMapOutputWithContext(context.Context) MlflowTrackingServerMapOutput +} + +type MlflowTrackingServerMap map[string]MlflowTrackingServerInput + +func (MlflowTrackingServerMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MlflowTrackingServer)(nil)).Elem() +} + +func (i MlflowTrackingServerMap) ToMlflowTrackingServerMapOutput() MlflowTrackingServerMapOutput { + return i.ToMlflowTrackingServerMapOutputWithContext(context.Background()) +} + +func (i MlflowTrackingServerMap) ToMlflowTrackingServerMapOutputWithContext(ctx context.Context) MlflowTrackingServerMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MlflowTrackingServerMapOutput) +} + +type MlflowTrackingServerOutput struct{ *pulumi.OutputState } + +func (MlflowTrackingServerOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MlflowTrackingServer)(nil)).Elem() +} + +func (o MlflowTrackingServerOutput) ToMlflowTrackingServerOutput() MlflowTrackingServerOutput { + return o +} + +func (o MlflowTrackingServerOutput) ToMlflowTrackingServerOutputWithContext(ctx context.Context) MlflowTrackingServerOutput { + return o +} + +// The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. +func (o MlflowTrackingServerOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *MlflowTrackingServer) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. +func (o MlflowTrackingServerOutput) ArtifactStoreUri() pulumi.StringOutput { + return o.ApplyT(func(v *MlflowTrackingServer) pulumi.StringOutput { return v.ArtifactStoreUri }).(pulumi.StringOutput) +} + +// A list of Member Definitions that contains objects that identify the workers that make up the work team. +func (o MlflowTrackingServerOutput) AutomaticModelRegistration() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *MlflowTrackingServer) pulumi.BoolPtrOutput { return v.AutomaticModelRegistration }).(pulumi.BoolPtrOutput) +} + +// The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). +func (o MlflowTrackingServerOutput) MlflowVersion() pulumi.StringOutput { + return o.ApplyT(func(v *MlflowTrackingServer) pulumi.StringOutput { return v.MlflowVersion }).(pulumi.StringOutput) +} + +// The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). +func (o MlflowTrackingServerOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *MlflowTrackingServer) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) +} + +// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o MlflowTrackingServerOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *MlflowTrackingServer) 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 MlflowTrackingServerOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *MlflowTrackingServer) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// A unique string identifying the tracking server name. This string is part of the tracking server ARN. +func (o MlflowTrackingServerOutput) TrackingServerName() pulumi.StringOutput { + return o.ApplyT(func(v *MlflowTrackingServer) pulumi.StringOutput { return v.TrackingServerName }).(pulumi.StringOutput) +} + +// The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. +func (o MlflowTrackingServerOutput) TrackingServerSize() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MlflowTrackingServer) pulumi.StringPtrOutput { return v.TrackingServerSize }).(pulumi.StringPtrOutput) +} + +// The URL to connect to the MLflow user interface for the described tracking server. +func (o MlflowTrackingServerOutput) TrackingServerUrl() pulumi.StringOutput { + return o.ApplyT(func(v *MlflowTrackingServer) pulumi.StringOutput { return v.TrackingServerUrl }).(pulumi.StringOutput) +} + +// The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. +func (o MlflowTrackingServerOutput) WeeklyMaintenanceWindowStart() pulumi.StringOutput { + return o.ApplyT(func(v *MlflowTrackingServer) pulumi.StringOutput { return v.WeeklyMaintenanceWindowStart }).(pulumi.StringOutput) +} + +type MlflowTrackingServerArrayOutput struct{ *pulumi.OutputState } + +func (MlflowTrackingServerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MlflowTrackingServer)(nil)).Elem() +} + +func (o MlflowTrackingServerArrayOutput) ToMlflowTrackingServerArrayOutput() MlflowTrackingServerArrayOutput { + return o +} + +func (o MlflowTrackingServerArrayOutput) ToMlflowTrackingServerArrayOutputWithContext(ctx context.Context) MlflowTrackingServerArrayOutput { + return o +} + +func (o MlflowTrackingServerArrayOutput) Index(i pulumi.IntInput) MlflowTrackingServerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MlflowTrackingServer { + return vs[0].([]*MlflowTrackingServer)[vs[1].(int)] + }).(MlflowTrackingServerOutput) +} + +type MlflowTrackingServerMapOutput struct{ *pulumi.OutputState } + +func (MlflowTrackingServerMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MlflowTrackingServer)(nil)).Elem() +} + +func (o MlflowTrackingServerMapOutput) ToMlflowTrackingServerMapOutput() MlflowTrackingServerMapOutput { + return o +} + +func (o MlflowTrackingServerMapOutput) ToMlflowTrackingServerMapOutputWithContext(ctx context.Context) MlflowTrackingServerMapOutput { + return o +} + +func (o MlflowTrackingServerMapOutput) MapIndex(k pulumi.StringInput) MlflowTrackingServerOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MlflowTrackingServer { + return vs[0].(map[string]*MlflowTrackingServer)[vs[1].(string)] + }).(MlflowTrackingServerOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MlflowTrackingServerInput)(nil)).Elem(), &MlflowTrackingServer{}) + pulumi.RegisterInputType(reflect.TypeOf((*MlflowTrackingServerArrayInput)(nil)).Elem(), MlflowTrackingServerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MlflowTrackingServerMapInput)(nil)).Elem(), MlflowTrackingServerMap{}) + pulumi.RegisterOutputType(MlflowTrackingServerOutput{}) + pulumi.RegisterOutputType(MlflowTrackingServerArrayOutput{}) + pulumi.RegisterOutputType(MlflowTrackingServerMapOutput{}) +} diff --git a/sdk/go/aws/sagemaker/pulumiTypes.go b/sdk/go/aws/sagemaker/pulumiTypes.go index 172c94abd00..9531528dea2 100644 --- a/sdk/go/aws/sagemaker/pulumiTypes.go +++ b/sdk/go/aws/sagemaker/pulumiTypes.go @@ -5895,12 +5895,18 @@ func (o DomainDefaultSpaceSettingsCustomPosixUserConfigPtrOutput) Uid() pulumi.I } type DomainDefaultSpaceSettingsJupyterLabAppSettings struct { + // Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + AppLifecycleManagement *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement `pulumi:"appLifecycleManagement"` + // The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + BuiltInLifecycleConfigArn *string `pulumi:"builtInLifecycleConfigArn"` // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. CodeRepositories []DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository `pulumi:"codeRepositories"` // A list of custom SageMaker images that are configured to run as a JupyterLab app. see `customImage` Block below. CustomImages []DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImage `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. DefaultResourceSpec *DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` + // The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + EmrSettings *DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings `pulumi:"emrSettings"` // The Amazon Resource Name (ARN) of the Lifecycle Configurations. LifecycleConfigArns []string `pulumi:"lifecycleConfigArns"` } @@ -5917,12 +5923,18 @@ type DomainDefaultSpaceSettingsJupyterLabAppSettingsInput interface { } type DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs struct { + // Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + AppLifecycleManagement DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput `pulumi:"appLifecycleManagement"` + // The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + BuiltInLifecycleConfigArn pulumi.StringPtrInput `pulumi:"builtInLifecycleConfigArn"` // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. CodeRepositories DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` // A list of custom SageMaker images that are configured to run as a JupyterLab app. see `customImage` Block below. CustomImages DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArrayInput `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. DefaultResourceSpec DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecPtrInput `pulumi:"defaultResourceSpec"` + // The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + EmrSettings DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrInput `pulumi:"emrSettings"` // The Amazon Resource Name (ARN) of the Lifecycle Configurations. LifecycleConfigArns pulumi.StringArrayInput `pulumi:"lifecycleConfigArns"` } @@ -6004,6 +6016,18 @@ func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsOutput) ToDomainDefaultSp }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrOutput) } +// Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsOutput) AppLifecycleManagement() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettings) *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + return v.AppLifecycleManagement + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsOutput) BuiltInLifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettings) *string { return v.BuiltInLifecycleConfigArn }).(pulumi.StringPtrOutput) +} + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsOutput) CodeRepositories() DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettings) []DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository { @@ -6025,6 +6049,13 @@ func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsOutput) DefaultResourceSp }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput) } +// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsOutput) EmrSettings() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettings) *DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings { + return v.EmrSettings + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) +} + // The Amazon Resource Name (ARN) of the Lifecycle Configurations. func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsOutput) LifecycleConfigArns() pulumi.StringArrayOutput { return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettings) []string { return v.LifecycleConfigArns }).(pulumi.StringArrayOutput) @@ -6054,6 +6085,26 @@ func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrOutput) Elem() DomainD }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsOutput) } +// Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrOutput) AppLifecycleManagement() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettings) *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + if v == nil { + return nil + } + return v.AppLifecycleManagement + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrOutput) BuiltInLifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettings) *string { + if v == nil { + return nil + } + return v.BuiltInLifecycleConfigArn + }).(pulumi.StringPtrOutput) +} + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrOutput) CodeRepositories() DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettings) []DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository { @@ -6084,6 +6135,16 @@ func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrOutput) DefaultResourc }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput) } +// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrOutput) EmrSettings() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettings) *DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings { + if v == nil { + return nil + } + return v.EmrSettings + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) +} + // The Amazon Resource Name (ARN) of the Lifecycle Configurations. func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrOutput) LifecycleConfigArns() pulumi.StringArrayOutput { return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettings) []string { @@ -6094,6 +6155,347 @@ func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrOutput) LifecycleConfi }).(pulumi.StringArrayOutput) } +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement struct { + // Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + IdleSettings *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings `pulumi:"idleSettings"` +} + +// DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementInput is an input type that accepts DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs and DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput values. +// You can construct a concrete instance of `DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementInput` via: +// +// DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{...} +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementInput interface { + pulumi.Input + + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput +} + +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs struct { + // Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + IdleSettings DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput `pulumi:"idleSettings"` +} + +func (DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return i.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(context.Background()) +} + +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) +} + +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return i.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput).ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx) +} + +// DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput is an input type that accepts DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs, DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtr and DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput values. +// You can construct a concrete instance of `DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput` via: +// +// DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{...} +// +// or: +// +// nil +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput interface { + pulumi.Input + + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput +} + +type domainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs + +func DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtr(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput { + return (*domainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType)(v) +} + +func (*domainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (i *domainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return i.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput struct{ *pulumi.OutputState } + +func (DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement) *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + return &v + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +// Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) IdleSettings() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement) *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + return v.IdleSettings + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) Elem() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + if v != nil { + return *v + } + var ret DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement + return ret + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) +} + +// Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) IdleSettings() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement) *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + if v == nil { + return nil + } + return v.IdleSettings + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` + // Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + LifecycleManagement *string `pulumi:"lifecycleManagement"` + // The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MaxIdleTimeoutInMinutes *int `pulumi:"maxIdleTimeoutInMinutes"` + // The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MinIdleTimeoutInMinutes *int `pulumi:"minIdleTimeoutInMinutes"` +} + +// DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput is an input type that accepts DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs and DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput` via: +// +// DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput interface { + pulumi.Input + + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput +} + +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` + // Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + LifecycleManagement pulumi.StringPtrInput `pulumi:"lifecycleManagement"` + // The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MaxIdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"maxIdleTimeoutInMinutes"` + // The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MinIdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"minIdleTimeoutInMinutes"` +} + +func (DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return i.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput).ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput is an input type that accepts DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs, DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtr and DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput` via: +// +// DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput +} + +type domainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs + +func DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtr(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput { + return (*domainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType)(v) +} + +func (*domainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i *domainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + return &v + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) LifecycleManagement() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *string { + return v.LifecycleManagement + }).(pulumi.StringPtrOutput) +} + +// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) MaxIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.MaxIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) MinIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.MinIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +type DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) Elem() DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + if v != nil { + return *v + } + var ret DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings + return ret + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) LifecycleManagement() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *string { + if v == nil { + return nil + } + return v.LifecycleManagement + }).(pulumi.StringPtrOutput) +} + +// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) MaxIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.MaxIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) MinIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.MinIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + type DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository struct { // The URL of the Git repository. RepositoryUrl string `pulumi:"repositoryUrl"` @@ -6529,116 +6931,276 @@ func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOut }).(pulumi.StringPtrOutput) } -type DomainDefaultSpaceSettingsJupyterServerAppSettings struct { - // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. - CodeRepositories []DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepository `pulumi:"codeRepositories"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. - DefaultResourceSpec *DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` - // The Amazon Resource Name (ARN) of the Lifecycle Configurations. - LifecycleConfigArns []string `pulumi:"lifecycleConfigArns"` +type DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings struct { + // An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + AssumableRoleArns []string `pulumi:"assumableRoleArns"` + // An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + ExecutionRoleArns []string `pulumi:"executionRoleArns"` } -// DomainDefaultSpaceSettingsJupyterServerAppSettingsInput is an input type that accepts DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs and DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput values. -// You can construct a concrete instance of `DomainDefaultSpaceSettingsJupyterServerAppSettingsInput` via: +// DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsInput is an input type that accepts DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs and DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsInput` via: // -// DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs{...} -type DomainDefaultSpaceSettingsJupyterServerAppSettingsInput interface { +// DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs{...} +type DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsInput interface { pulumi.Input - ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput - ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutputWithContext(context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput } -type DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs struct { - // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. - CodeRepositories DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. - DefaultResourceSpec DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecPtrInput `pulumi:"defaultResourceSpec"` - // The Amazon Resource Name (ARN) of the Lifecycle Configurations. - LifecycleConfigArns pulumi.StringArrayInput `pulumi:"lifecycleConfigArns"` +type DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs struct { + // An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + AssumableRoleArns pulumi.StringArrayInput `pulumi:"assumableRoleArns"` + // An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + ExecutionRoleArns pulumi.StringArrayInput `pulumi:"executionRoleArns"` } -func (DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterServerAppSettings)(nil)).Elem() +func (DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() } -func (i DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput { - return i.ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutputWithContext(context.Background()) +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput { + return i.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(context.Background()) } -func (i DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput) } -func (i DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { - return i.ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return i.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Background()) } -func (i DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput).ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx) +func (i DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput).ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx) } -// DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrInput is an input type that accepts DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs, DomainDefaultSpaceSettingsJupyterServerAppSettingsPtr and DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput values. -// You can construct a concrete instance of `DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrInput` via: +// DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrInput is an input type that accepts DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs, DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtr and DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrInput` via: // -// DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs{...} +// DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs{...} // // or: // // nil -type DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrInput interface { +type DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrInput interface { pulumi.Input - ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput - ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput + ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput } -type domainDefaultSpaceSettingsJupyterServerAppSettingsPtrType DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs +type domainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrType DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs -func DomainDefaultSpaceSettingsJupyterServerAppSettingsPtr(v *DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrInput { - return (*domainDefaultSpaceSettingsJupyterServerAppSettingsPtrType)(v) +func DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtr(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs) DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrInput { + return (*domainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrType)(v) } -func (*domainDefaultSpaceSettingsJupyterServerAppSettingsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**DomainDefaultSpaceSettingsJupyterServerAppSettings)(nil)).Elem() +func (*domainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() } -func (i *domainDefaultSpaceSettingsJupyterServerAppSettingsPtrType) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { - return i.ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +func (i *domainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrType) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return i.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Background()) } -func (i *domainDefaultSpaceSettingsJupyterServerAppSettingsPtrType) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput) +func (i *domainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrType) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) } -type DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput struct{ *pulumi.OutputState } +type DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput struct{ *pulumi.OutputState } -func (DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterServerAppSettings)(nil)).Elem() +func (DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() } -func (o DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput { +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput { return o } -func (o DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput { +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput { return o } -func (o DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { - return o.ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Background()) } -func (o DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultSpaceSettingsJupyterServerAppSettings) *DomainDefaultSpaceSettingsJupyterServerAppSettings { +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings) *DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings { return &v - }).(DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput) + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) } -// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. -func (o DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) CodeRepositories() DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryArrayOutput { - return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterServerAppSettings) []DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepository { - return v.CodeRepositories +// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput) AssumableRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings) []string { + return v.AssumableRoleArns + }).(pulumi.StringArrayOutput) +} + +// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput) ExecutionRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings) []string { + return v.ExecutionRoleArns + }).(pulumi.StringArrayOutput) +} + +type DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ToDomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) Elem() DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings) DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings { + if v != nil { + return *v + } + var ret DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings + return ret + }).(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput) +} + +// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) AssumableRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings) []string { + if v == nil { + return nil + } + return v.AssumableRoleArns + }).(pulumi.StringArrayOutput) +} + +// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. +func (o DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ExecutionRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings) []string { + if v == nil { + return nil + } + return v.ExecutionRoleArns + }).(pulumi.StringArrayOutput) +} + +type DomainDefaultSpaceSettingsJupyterServerAppSettings struct { + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. + CodeRepositories []DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepository `pulumi:"codeRepositories"` + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. + DefaultResourceSpec *DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` + // The Amazon Resource Name (ARN) of the Lifecycle Configurations. + LifecycleConfigArns []string `pulumi:"lifecycleConfigArns"` +} + +// DomainDefaultSpaceSettingsJupyterServerAppSettingsInput is an input type that accepts DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs and DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultSpaceSettingsJupyterServerAppSettingsInput` via: +// +// DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs{...} +type DomainDefaultSpaceSettingsJupyterServerAppSettingsInput interface { + pulumi.Input + + ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput + ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutputWithContext(context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput +} + +type DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs struct { + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. + CodeRepositories DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. + DefaultResourceSpec DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpecPtrInput `pulumi:"defaultResourceSpec"` + // The Amazon Resource Name (ARN) of the Lifecycle Configurations. + LifecycleConfigArns pulumi.StringArrayInput `pulumi:"lifecycleConfigArns"` +} + +func (DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterServerAppSettings)(nil)).Elem() +} + +func (i DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput { + return i.ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) +} + +func (i DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { + return i.ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput).ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrInput is an input type that accepts DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs, DomainDefaultSpaceSettingsJupyterServerAppSettingsPtr and DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrInput` via: +// +// DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput + ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput +} + +type domainDefaultSpaceSettingsJupyterServerAppSettingsPtrType DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs + +func DomainDefaultSpaceSettingsJupyterServerAppSettingsPtr(v *DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs) DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrInput { + return (*domainDefaultSpaceSettingsJupyterServerAppSettingsPtrType)(v) +} + +func (*domainDefaultSpaceSettingsJupyterServerAppSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultSpaceSettingsJupyterServerAppSettings)(nil)).Elem() +} + +func (i *domainDefaultSpaceSettingsJupyterServerAppSettingsPtrType) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { + return i.ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultSpaceSettingsJupyterServerAppSettingsPtrType) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput) +} + +type DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterServerAppSettings)(nil)).Elem() +} + +func (o DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput { + return o +} + +func (o DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { + return o.ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) ToDomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultSpaceSettingsJupyterServerAppSettings) *DomainDefaultSpaceSettingsJupyterServerAppSettings { + return &v + }).(DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput) +} + +// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. +func (o DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput) CodeRepositories() DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryArrayOutput { + return o.ApplyT(func(v DomainDefaultSpaceSettingsJupyterServerAppSettings) []DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepository { + return v.CodeRepositories }).(DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryArrayOutput) } @@ -7851,6 +8413,8 @@ func (o DomainDefaultSpaceSettingsSpaceStorageSettingsDefaultEbsStorageSettingsP } type DomainDefaultUserSettings struct { + // Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + AutoMountHomeEfs *string `pulumi:"autoMountHomeEfs"` // The Canvas app settings. See `canvasAppSettings` Block below. CanvasAppSettings *DomainDefaultUserSettingsCanvasAppSettings `pulumi:"canvasAppSettings"` // The Code Editor application settings. See `codeEditorAppSettings` Block below. @@ -7899,6 +8463,8 @@ type DomainDefaultUserSettingsInput interface { } type DomainDefaultUserSettingsArgs struct { + // Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + AutoMountHomeEfs pulumi.StringPtrInput `pulumi:"autoMountHomeEfs"` // The Canvas app settings. See `canvasAppSettings` Block below. CanvasAppSettings DomainDefaultUserSettingsCanvasAppSettingsPtrInput `pulumi:"canvasAppSettings"` // The Code Editor application settings. See `codeEditorAppSettings` Block below. @@ -8012,6 +8578,11 @@ func (o DomainDefaultUserSettingsOutput) ToDomainDefaultUserSettingsPtrOutputWit }).(DomainDefaultUserSettingsPtrOutput) } +// Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. +func (o DomainDefaultUserSettingsOutput) AutoMountHomeEfs() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettings) *string { return v.AutoMountHomeEfs }).(pulumi.StringPtrOutput) +} + // The Canvas app settings. See `canvasAppSettings` Block below. func (o DomainDefaultUserSettingsOutput) CanvasAppSettings() DomainDefaultUserSettingsCanvasAppSettingsPtrOutput { return o.ApplyT(func(v DomainDefaultUserSettings) *DomainDefaultUserSettingsCanvasAppSettings { @@ -8145,6 +8716,16 @@ func (o DomainDefaultUserSettingsPtrOutput) Elem() DomainDefaultUserSettingsOutp }).(DomainDefaultUserSettingsOutput) } +// Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. +func (o DomainDefaultUserSettingsPtrOutput) AutoMountHomeEfs() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettings) *string { + if v == nil { + return nil + } + return v.AutoMountHomeEfs + }).(pulumi.StringPtrOutput) +} + // The Canvas app settings. See `canvasAppSettings` Block below. func (o DomainDefaultUserSettingsPtrOutput) CanvasAppSettings() DomainDefaultUserSettingsCanvasAppSettingsPtrOutput { return o.ApplyT(func(v *DomainDefaultUserSettings) *DomainDefaultUserSettingsCanvasAppSettings { @@ -8318,7 +8899,9 @@ func (o DomainDefaultUserSettingsPtrOutput) TensorBoardAppSettings() DomainDefau type DomainDefaultUserSettingsCanvasAppSettings struct { // The model deployment settings for the SageMaker Canvas application. See `directDeploySettings` Block below. DirectDeploySettings *DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings `pulumi:"directDeploySettings"` - GenerativeAiSettings *DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings `pulumi:"generativeAiSettings"` + // The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. + EmrServerlessSettings *DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings `pulumi:"emrServerlessSettings"` + GenerativeAiSettings *DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings `pulumi:"generativeAiSettings"` // The settings for connecting to an external data source with OAuth. See `identityProviderOauthSettings` Block below. IdentityProviderOauthSettings []DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSetting `pulumi:"identityProviderOauthSettings"` // The settings for document querying. See `kendraSettings` Block below. @@ -8345,7 +8928,9 @@ type DomainDefaultUserSettingsCanvasAppSettingsInput interface { type DomainDefaultUserSettingsCanvasAppSettingsArgs struct { // The model deployment settings for the SageMaker Canvas application. See `directDeploySettings` Block below. DirectDeploySettings DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsPtrInput `pulumi:"directDeploySettings"` - GenerativeAiSettings DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput `pulumi:"generativeAiSettings"` + // The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. + EmrServerlessSettings DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput `pulumi:"emrServerlessSettings"` + GenerativeAiSettings DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput `pulumi:"generativeAiSettings"` // The settings for connecting to an external data source with OAuth. See `identityProviderOauthSettings` Block below. IdentityProviderOauthSettings DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArrayInput `pulumi:"identityProviderOauthSettings"` // The settings for document querying. See `kendraSettings` Block below. @@ -8442,6 +9027,13 @@ func (o DomainDefaultUserSettingsCanvasAppSettingsOutput) DirectDeploySettings() }).(DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsPtrOutput) } +// The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. +func (o DomainDefaultUserSettingsCanvasAppSettingsOutput) EmrServerlessSettings() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsCanvasAppSettings) *DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings { + return v.EmrServerlessSettings + }).(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) +} + func (o DomainDefaultUserSettingsCanvasAppSettingsOutput) GenerativeAiSettings() DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { return o.ApplyT(func(v DomainDefaultUserSettingsCanvasAppSettings) *DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings { return v.GenerativeAiSettings @@ -8517,6 +9109,16 @@ func (o DomainDefaultUserSettingsCanvasAppSettingsPtrOutput) DirectDeploySetting }).(DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsPtrOutput) } +// The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. +func (o DomainDefaultUserSettingsCanvasAppSettingsPtrOutput) EmrServerlessSettings() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCanvasAppSettings) *DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings { + if v == nil { + return nil + } + return v.EmrServerlessSettings + }).(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) +} + func (o DomainDefaultUserSettingsCanvasAppSettingsPtrOutput) GenerativeAiSettings() DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { return o.ApplyT(func(v *DomainDefaultUserSettingsCanvasAppSettings) *DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings { if v == nil { @@ -8713,6 +9315,164 @@ func (o DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsPtrOutput) }).(pulumi.StringPtrOutput) } +type DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings struct { + // The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + ExecutionRoleArn *string `pulumi:"executionRoleArn"` + // Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + Status *string `pulumi:"status"` +} + +// DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsInput is an input type that accepts DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs and DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsInput` via: +// +// DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs{...} +type DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput + ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput +} + +type DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs struct { + // The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + ExecutionRoleArn pulumi.StringPtrInput `pulumi:"executionRoleArn"` + // Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + Status pulumi.StringPtrInput `pulumi:"status"` +} + +func (DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput { + return i.ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) +} + +func (i DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput).ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs, DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtr and DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput` via: +// +// DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput + ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput +} + +type domainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrType DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs + +func DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtr(v *DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput { + return (*domainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrType)(v) +} + +func (*domainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrType) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrType) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) +} + +type DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return o.ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings) *DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings { + return &v + }).(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) +} + +// The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ExecutionRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings) *string { + return v.ExecutionRoleArn + }).(pulumi.StringPtrOutput) +} + +// Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +type DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) ToDomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) Elem() DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings) DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings { + if v != nil { + return *v + } + var ret DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings + return ret + }).(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) +} + +// The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) ExecutionRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings) *string { + if v == nil { + return nil + } + return v.ExecutionRoleArn + }).(pulumi.StringPtrOutput) +} + +// Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. +func (o DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings) *string { + if v == nil { + return nil + } + return v.Status + }).(pulumi.StringPtrOutput) +} + type DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings struct { AmazonBedrockRoleArn *string `pulumi:"amazonBedrockRoleArn"` } @@ -9581,6 +10341,10 @@ func (o DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettingsPtrOutput) S3 } type DomainDefaultUserSettingsCodeEditorAppSettings struct { + // Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + AppLifecycleManagement *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement `pulumi:"appLifecycleManagement"` + // The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + BuiltInLifecycleConfigArn *string `pulumi:"builtInLifecycleConfigArn"` // A list of custom SageMaker images that are configured to run as a CodeEditor app. see `customImage` Block below. CustomImages []DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. @@ -9601,6 +10365,10 @@ type DomainDefaultUserSettingsCodeEditorAppSettingsInput interface { } type DomainDefaultUserSettingsCodeEditorAppSettingsArgs struct { + // Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + AppLifecycleManagement DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput `pulumi:"appLifecycleManagement"` + // The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + BuiltInLifecycleConfigArn pulumi.StringPtrInput `pulumi:"builtInLifecycleConfigArn"` // A list of custom SageMaker images that are configured to run as a CodeEditor app. see `customImage` Block below. CustomImages DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArrayInput `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. @@ -9686,6 +10454,18 @@ func (o DomainDefaultUserSettingsCodeEditorAppSettingsOutput) ToDomainDefaultUse }).(DomainDefaultUserSettingsCodeEditorAppSettingsPtrOutput) } +// Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsOutput) AppLifecycleManagement() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsCodeEditorAppSettings) *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + return v.AppLifecycleManagement + }).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) +} + +// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsOutput) BuiltInLifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsCodeEditorAppSettings) *string { return v.BuiltInLifecycleConfigArn }).(pulumi.StringPtrOutput) +} + // A list of custom SageMaker images that are configured to run as a CodeEditor app. see `customImage` Block below. func (o DomainDefaultUserSettingsCodeEditorAppSettingsOutput) CustomImages() DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { return o.ApplyT(func(v DomainDefaultUserSettingsCodeEditorAppSettings) []DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage { @@ -9729,18 +10509,38 @@ func (o DomainDefaultUserSettingsCodeEditorAppSettingsPtrOutput) Elem() DomainDe }).(DomainDefaultUserSettingsCodeEditorAppSettingsOutput) } -// A list of custom SageMaker images that are configured to run as a CodeEditor app. see `customImage` Block below. -func (o DomainDefaultUserSettingsCodeEditorAppSettingsPtrOutput) CustomImages() DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { - return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettings) []DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage { +// Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsPtrOutput) AppLifecycleManagement() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettings) *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement { if v == nil { return nil } - return v.CustomImages - }).(DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) + return v.AppLifecycleManagement + }).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. -func (o DomainDefaultUserSettingsCodeEditorAppSettingsPtrOutput) DefaultResourceSpec() DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { +// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsPtrOutput) BuiltInLifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettings) *string { + if v == nil { + return nil + } + return v.BuiltInLifecycleConfigArn + }).(pulumi.StringPtrOutput) +} + +// A list of custom SageMaker images that are configured to run as a CodeEditor app. see `customImage` Block below. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsPtrOutput) CustomImages() DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettings) []DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage { + if v == nil { + return nil + } + return v.CustomImages + }).(DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) +} + +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsPtrOutput) DefaultResourceSpec() DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettings) *DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpec { if v == nil { return nil @@ -9759,6 +10559,347 @@ func (o DomainDefaultUserSettingsCodeEditorAppSettingsPtrOutput) LifecycleConfig }).(pulumi.StringArrayOutput) } +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement struct { + // Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + IdleSettings *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings `pulumi:"idleSettings"` +} + +// DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementInput is an input type that accepts DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs and DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementInput` via: +// +// DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{...} +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput + ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput +} + +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs struct { + // Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + IdleSettings DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput `pulumi:"idleSettings"` +} + +func (DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return i.ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) +} + +func (i DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return i.ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput).ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput is an input type that accepts DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs, DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtr and DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput` via: +// +// DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput + ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput +} + +type domainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs + +func DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtr(v *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput { + return (*domainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType)(v) +} + +func (*domainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return i.ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) +} + +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return o +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return o +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement) *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + return &v + }).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) +} + +// Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) IdleSettings() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement) *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + return v.IdleSettings + }).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) Elem() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + if v != nil { + return *v + } + var ret DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement + return ret + }).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) +} + +// Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) IdleSettings() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement) *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + if v == nil { + return nil + } + return v.IdleSettings + }).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` + // Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + LifecycleManagement *string `pulumi:"lifecycleManagement"` + // The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MaxIdleTimeoutInMinutes *int `pulumi:"maxIdleTimeoutInMinutes"` + // The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MinIdleTimeoutInMinutes *int `pulumi:"minIdleTimeoutInMinutes"` +} + +// DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput is an input type that accepts DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs and DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput` via: +// +// DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput + ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput +} + +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` + // Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + LifecycleManagement pulumi.StringPtrInput `pulumi:"lifecycleManagement"` + // The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MaxIdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"maxIdleTimeoutInMinutes"` + // The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MinIdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"minIdleTimeoutInMinutes"` +} + +func (DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return i.ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +func (i DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput).ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs, DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtr and DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput` via: +// +// DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput + ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput +} + +type domainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs + +func DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtr(v *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput { + return (*domainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType)(v) +} + +func (*domainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + return &v + }).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) LifecycleManagement() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *string { + return v.LifecycleManagement + }).(pulumi.StringPtrOutput) +} + +// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) MaxIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.MaxIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) MinIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.MinIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +type DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToDomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) Elem() DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + if v != nil { + return *v + } + var ret DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings + return ret + }).(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) LifecycleManagement() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *string { + if v == nil { + return nil + } + return v.LifecycleManagement + }).(pulumi.StringPtrOutput) +} + +// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) MaxIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.MaxIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) MinIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.MinIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + type DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage struct { // The name of the App Image Config. AppImageConfigName string `pulumi:"appImageConfigName"` @@ -10513,12 +11654,18 @@ func (o DomainDefaultUserSettingsCustomPosixUserConfigPtrOutput) Uid() pulumi.In } type DomainDefaultUserSettingsJupyterLabAppSettings struct { + // Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + AppLifecycleManagement *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement `pulumi:"appLifecycleManagement"` + // The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + BuiltInLifecycleConfigArn *string `pulumi:"builtInLifecycleConfigArn"` // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. CodeRepositories []DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository `pulumi:"codeRepositories"` // A list of custom SageMaker images that are configured to run as a JupyterLab app. see `customImage` Block below. CustomImages []DomainDefaultUserSettingsJupyterLabAppSettingsCustomImage `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. DefaultResourceSpec *DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` + // The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + EmrSettings *DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings `pulumi:"emrSettings"` // The Amazon Resource Name (ARN) of the Lifecycle Configurations. LifecycleConfigArns []string `pulumi:"lifecycleConfigArns"` } @@ -10535,12 +11682,18 @@ type DomainDefaultUserSettingsJupyterLabAppSettingsInput interface { } type DomainDefaultUserSettingsJupyterLabAppSettingsArgs struct { + // Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + AppLifecycleManagement DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput `pulumi:"appLifecycleManagement"` + // The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + BuiltInLifecycleConfigArn pulumi.StringPtrInput `pulumi:"builtInLifecycleConfigArn"` // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. CodeRepositories DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` // A list of custom SageMaker images that are configured to run as a JupyterLab app. see `customImage` Block below. CustomImages DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArrayInput `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. DefaultResourceSpec DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrInput `pulumi:"defaultResourceSpec"` + // The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + EmrSettings DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput `pulumi:"emrSettings"` // The Amazon Resource Name (ARN) of the Lifecycle Configurations. LifecycleConfigArns pulumi.StringArrayInput `pulumi:"lifecycleConfigArns"` } @@ -10622,6 +11775,18 @@ func (o DomainDefaultUserSettingsJupyterLabAppSettingsOutput) ToDomainDefaultUse }).(DomainDefaultUserSettingsJupyterLabAppSettingsPtrOutput) } +// Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsOutput) AppLifecycleManagement() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettings) *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + return v.AppLifecycleManagement + }).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsOutput) BuiltInLifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettings) *string { return v.BuiltInLifecycleConfigArn }).(pulumi.StringPtrOutput) +} + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. func (o DomainDefaultUserSettingsJupyterLabAppSettingsOutput) CodeRepositories() DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettings) []DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository { @@ -10643,6 +11808,13 @@ func (o DomainDefaultUserSettingsJupyterLabAppSettingsOutput) DefaultResourceSpe }).(DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput) } +// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsOutput) EmrSettings() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettings) *DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings { + return v.EmrSettings + }).(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) +} + // The Amazon Resource Name (ARN) of the Lifecycle Configurations. func (o DomainDefaultUserSettingsJupyterLabAppSettingsOutput) LifecycleConfigArns() pulumi.StringArrayOutput { return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettings) []string { return v.LifecycleConfigArns }).(pulumi.StringArrayOutput) @@ -10672,6 +11844,26 @@ func (o DomainDefaultUserSettingsJupyterLabAppSettingsPtrOutput) Elem() DomainDe }).(DomainDefaultUserSettingsJupyterLabAppSettingsOutput) } +// Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsPtrOutput) AppLifecycleManagement() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettings) *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + if v == nil { + return nil + } + return v.AppLifecycleManagement + }).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsPtrOutput) BuiltInLifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettings) *string { + if v == nil { + return nil + } + return v.BuiltInLifecycleConfigArn + }).(pulumi.StringPtrOutput) +} + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. func (o DomainDefaultUserSettingsJupyterLabAppSettingsPtrOutput) CodeRepositories() DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettings) []DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository { @@ -10702,6 +11894,16 @@ func (o DomainDefaultUserSettingsJupyterLabAppSettingsPtrOutput) DefaultResource }).(DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput) } +// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsPtrOutput) EmrSettings() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettings) *DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings { + if v == nil { + return nil + } + return v.EmrSettings + }).(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) +} + // The Amazon Resource Name (ARN) of the Lifecycle Configurations. func (o DomainDefaultUserSettingsJupyterLabAppSettingsPtrOutput) LifecycleConfigArns() pulumi.StringArrayOutput { return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettings) []string { @@ -10712,65 +11914,406 @@ func (o DomainDefaultUserSettingsJupyterLabAppSettingsPtrOutput) LifecycleConfig }).(pulumi.StringArrayOutput) } -type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository struct { - // The URL of the Git repository. - RepositoryUrl string `pulumi:"repositoryUrl"` +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement struct { + // Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + IdleSettings *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings `pulumi:"idleSettings"` } -// DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryInput is an input type that accepts DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs and DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput values. -// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryInput` via: +// DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementInput is an input type that accepts DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs and DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementInput` via: // -// DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs{...} -type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryInput interface { +// DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{...} +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementInput interface { pulumi.Input - ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput() DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput - ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput } -type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs struct { - // The URL of the Git repository. - RepositoryUrl pulumi.StringInput `pulumi:"repositoryUrl"` +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs struct { + // Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + IdleSettings DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput `pulumi:"idleSettings"` } -func (DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs) ElementType() reflect.Type { - return reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository)(nil)).Elem() +func (DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (i DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput() DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput { - return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(context.Background()) +func (i DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(context.Background()) } -func (i DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput) +func (i DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) } -// DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput is an input type that accepts DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray and DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput values. -// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput` via: +func (i DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput).ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput is an input type that accepts DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs, DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtr and DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput` via: // -// DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray{ DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs{...} } -type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput interface { +// DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput interface { pulumi.Input - ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput() DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput - ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput } -type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray []DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryInput +type domainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs -func (DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository)(nil)).Elem() +func DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtr(v *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput { + return (*domainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType)(v) } -func (i DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray) ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput() DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { - return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutputWithContext(context.Background()) +func (*domainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (i DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray) ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput) +func (i *domainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) } -type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput struct{ *pulumi.OutputState } +func (i *domainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement) *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + return &v + }).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +// Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) IdleSettings() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement) *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + return v.IdleSettings + }).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) Elem() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + if v != nil { + return *v + } + var ret DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement + return ret + }).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) +} + +// Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) IdleSettings() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement) *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + if v == nil { + return nil + } + return v.IdleSettings + }).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` + // Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + LifecycleManagement *string `pulumi:"lifecycleManagement"` + // The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MaxIdleTimeoutInMinutes *int `pulumi:"maxIdleTimeoutInMinutes"` + // The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MinIdleTimeoutInMinutes *int `pulumi:"minIdleTimeoutInMinutes"` +} + +// DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput is an input type that accepts DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs and DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput` via: +// +// DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` + // Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + LifecycleManagement pulumi.StringPtrInput `pulumi:"lifecycleManagement"` + // The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MaxIdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"maxIdleTimeoutInMinutes"` + // The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MinIdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"minIdleTimeoutInMinutes"` +} + +func (DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +func (i DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput).ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs, DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtr and DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput` via: +// +// DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput +} + +type domainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs + +func DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtr(v *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput { + return (*domainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType)(v) +} + +func (*domainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + return &v + }).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) LifecycleManagement() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *string { + return v.LifecycleManagement + }).(pulumi.StringPtrOutput) +} + +// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) MaxIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.MaxIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) MinIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.MinIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) Elem() DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + if v != nil { + return *v + } + var ret DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings + return ret + }).(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) LifecycleManagement() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *string { + if v == nil { + return nil + } + return v.LifecycleManagement + }).(pulumi.StringPtrOutput) +} + +// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) MaxIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.MaxIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) MinIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.MinIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository struct { + // The URL of the Git repository. + RepositoryUrl string `pulumi:"repositoryUrl"` +} + +// DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryInput is an input type that accepts DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs and DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryInput` via: +// +// DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs{...} +type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput() DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs struct { + // The URL of the Git repository. + RepositoryUrl pulumi.StringInput `pulumi:"repositoryUrl"` +} + +func (DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput() DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput) +} + +// DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput is an input type that accepts DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray and DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput` via: +// +// DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray{ DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs{...} } +type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput() DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray []DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryInput + +func (DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray) ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput() DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray) ToDomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput) +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput struct{ *pulumi.OutputState } func (DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput) ElementType() reflect.Type { return reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository)(nil)).Elem() @@ -11147,115 +12690,271 @@ func (o DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutp }).(pulumi.StringPtrOutput) } -type DomainDefaultUserSettingsJupyterServerAppSettings struct { - // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. - CodeRepositories []DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepository `pulumi:"codeRepositories"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. - DefaultResourceSpec *DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` - // The Amazon Resource Name (ARN) of the Lifecycle Configurations. - LifecycleConfigArns []string `pulumi:"lifecycleConfigArns"` +type DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings struct { + // An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + AssumableRoleArns []string `pulumi:"assumableRoleArns"` + // An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + ExecutionRoleArns []string `pulumi:"executionRoleArns"` } -// DomainDefaultUserSettingsJupyterServerAppSettingsInput is an input type that accepts DomainDefaultUserSettingsJupyterServerAppSettingsArgs and DomainDefaultUserSettingsJupyterServerAppSettingsOutput values. -// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterServerAppSettingsInput` via: +// DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsInput is an input type that accepts DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs and DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsInput` via: // -// DomainDefaultUserSettingsJupyterServerAppSettingsArgs{...} -type DomainDefaultUserSettingsJupyterServerAppSettingsInput interface { +// DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs{...} +type DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsInput interface { pulumi.Input - ToDomainDefaultUserSettingsJupyterServerAppSettingsOutput() DomainDefaultUserSettingsJupyterServerAppSettingsOutput - ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput } -type DomainDefaultUserSettingsJupyterServerAppSettingsArgs struct { - // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. - CodeRepositories DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. - DefaultResourceSpec DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrInput `pulumi:"defaultResourceSpec"` - // The Amazon Resource Name (ARN) of the Lifecycle Configurations. - LifecycleConfigArns pulumi.StringArrayInput `pulumi:"lifecycleConfigArns"` +type DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs struct { + // An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + AssumableRoleArns pulumi.StringArrayInput `pulumi:"assumableRoleArns"` + // An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + ExecutionRoleArns pulumi.StringArrayInput `pulumi:"executionRoleArns"` } -func (DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettings)(nil)).Elem() +func (DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() } -func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutput() DomainDefaultUserSettingsJupyterServerAppSettingsOutput { - return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(context.Background()) +func (i DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(context.Background()) } -func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsOutput) +func (i DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput) } -func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { - return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +func (i DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Background()) } -func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsOutput).ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx) +func (i DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput).ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx) } -// DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsJupyterServerAppSettingsArgs, DomainDefaultUserSettingsJupyterServerAppSettingsPtr and DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput values. -// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput` via: +// DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs, DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtr and DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput` via: // -// DomainDefaultUserSettingsJupyterServerAppSettingsArgs{...} +// DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs{...} // // or: // // nil -type DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput interface { +type DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput interface { pulumi.Input - ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput - ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput + ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput } -type domainDefaultUserSettingsJupyterServerAppSettingsPtrType DomainDefaultUserSettingsJupyterServerAppSettingsArgs +type domainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrType DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs -func DomainDefaultUserSettingsJupyterServerAppSettingsPtr(v *DomainDefaultUserSettingsJupyterServerAppSettingsArgs) DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput { - return (*domainDefaultUserSettingsJupyterServerAppSettingsPtrType)(v) +func DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtr(v *DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs) DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput { + return (*domainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrType)(v) } -func (*domainDefaultUserSettingsJupyterServerAppSettingsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**DomainDefaultUserSettingsJupyterServerAppSettings)(nil)).Elem() +func (*domainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() } -func (i *domainDefaultUserSettingsJupyterServerAppSettingsPtrType) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { - return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +func (i *domainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrType) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Background()) } -func (i *domainDefaultUserSettingsJupyterServerAppSettingsPtrType) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) +func (i *domainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrType) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) } -type DomainDefaultUserSettingsJupyterServerAppSettingsOutput struct{ *pulumi.OutputState } +type DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput struct{ *pulumi.OutputState } -func (DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettings)(nil)).Elem() +func (DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() } -func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutput() DomainDefaultUserSettingsJupyterServerAppSettingsOutput { +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput { return o } -func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsOutput { +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput { return o } -func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { - return o.ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Background()) } -func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultUserSettingsJupyterServerAppSettings) *DomainDefaultUserSettingsJupyterServerAppSettings { +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings) *DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings { return &v - }).(DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) + }).(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) } -// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. -func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) CodeRepositories() DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryArrayOutput { - return o.ApplyT(func(v DomainDefaultUserSettingsJupyterServerAppSettings) []DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepository { +// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput) AssumableRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings) []string { return v.AssumableRoleArns }).(pulumi.StringArrayOutput) +} + +// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ExecutionRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings) []string { return v.ExecutionRoleArns }).(pulumi.StringArrayOutput) +} + +type DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ToDomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) Elem() DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings) DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings { + if v != nil { + return *v + } + var ret DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings + return ret + }).(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput) +} + +// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) AssumableRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings) []string { + if v == nil { + return nil + } + return v.AssumableRoleArns + }).(pulumi.StringArrayOutput) +} + +// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. +func (o DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ExecutionRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings) []string { + if v == nil { + return nil + } + return v.ExecutionRoleArns + }).(pulumi.StringArrayOutput) +} + +type DomainDefaultUserSettingsJupyterServerAppSettings struct { + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. + CodeRepositories []DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepository `pulumi:"codeRepositories"` + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. + DefaultResourceSpec *DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` + // The Amazon Resource Name (ARN) of the Lifecycle Configurations. + LifecycleConfigArns []string `pulumi:"lifecycleConfigArns"` +} + +// DomainDefaultUserSettingsJupyterServerAppSettingsInput is an input type that accepts DomainDefaultUserSettingsJupyterServerAppSettingsArgs and DomainDefaultUserSettingsJupyterServerAppSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterServerAppSettingsInput` via: +// +// DomainDefaultUserSettingsJupyterServerAppSettingsArgs{...} +type DomainDefaultUserSettingsJupyterServerAppSettingsInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsJupyterServerAppSettingsOutput() DomainDefaultUserSettingsJupyterServerAppSettingsOutput + ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsOutput +} + +type DomainDefaultUserSettingsJupyterServerAppSettingsArgs struct { + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. + CodeRepositories DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. + DefaultResourceSpec DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrInput `pulumi:"defaultResourceSpec"` + // The Amazon Resource Name (ARN) of the Lifecycle Configurations. + LifecycleConfigArns pulumi.StringArrayInput `pulumi:"lifecycleConfigArns"` +} + +func (DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettings)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutput() DomainDefaultUserSettingsJupyterServerAppSettingsOutput { + return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsOutput) +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsOutput).ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsJupyterServerAppSettingsArgs, DomainDefaultUserSettingsJupyterServerAppSettingsPtr and DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput` via: +// +// DomainDefaultUserSettingsJupyterServerAppSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput + ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput +} + +type domainDefaultUserSettingsJupyterServerAppSettingsPtrType DomainDefaultUserSettingsJupyterServerAppSettingsArgs + +func DomainDefaultUserSettingsJupyterServerAppSettingsPtr(v *DomainDefaultUserSettingsJupyterServerAppSettingsArgs) DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput { + return (*domainDefaultUserSettingsJupyterServerAppSettingsPtrType)(v) +} + +func (*domainDefaultUserSettingsJupyterServerAppSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterServerAppSettings)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsJupyterServerAppSettingsPtrType) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsJupyterServerAppSettingsPtrType) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) +} + +type DomainDefaultUserSettingsJupyterServerAppSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutput() DomainDefaultUserSettingsJupyterServerAppSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return o.ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DomainDefaultUserSettingsJupyterServerAppSettings) *DomainDefaultUserSettingsJupyterServerAppSettings { + return &v + }).(DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) +} + +// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. +func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) CodeRepositories() DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryArrayOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterServerAppSettings) []DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepository { return v.CodeRepositories }).(DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryArrayOutput) } @@ -13294,6 +14993,8 @@ func (o DomainDefaultUserSettingsSpaceStorageSettingsDefaultEbsStorageSettingsPt type DomainDefaultUserSettingsStudioWebPortalSettings struct { // The Applications supported in Studio that are hidden from the Studio left navigation pane. HiddenAppTypes []string `pulumi:"hiddenAppTypes"` + // The instance types you are hiding from the Studio user interface. + HiddenInstanceTypes []string `pulumi:"hiddenInstanceTypes"` // The machine learning tools that are hidden from the Studio left navigation pane. HiddenMlTools []string `pulumi:"hiddenMlTools"` } @@ -13312,6 +15013,8 @@ type DomainDefaultUserSettingsStudioWebPortalSettingsInput interface { type DomainDefaultUserSettingsStudioWebPortalSettingsArgs struct { // The Applications supported in Studio that are hidden from the Studio left navigation pane. HiddenAppTypes pulumi.StringArrayInput `pulumi:"hiddenAppTypes"` + // The instance types you are hiding from the Studio user interface. + HiddenInstanceTypes pulumi.StringArrayInput `pulumi:"hiddenInstanceTypes"` // The machine learning tools that are hidden from the Studio left navigation pane. HiddenMlTools pulumi.StringArrayInput `pulumi:"hiddenMlTools"` } @@ -13398,6 +15101,11 @@ func (o DomainDefaultUserSettingsStudioWebPortalSettingsOutput) HiddenAppTypes() return o.ApplyT(func(v DomainDefaultUserSettingsStudioWebPortalSettings) []string { return v.HiddenAppTypes }).(pulumi.StringArrayOutput) } +// The instance types you are hiding from the Studio user interface. +func (o DomainDefaultUserSettingsStudioWebPortalSettingsOutput) HiddenInstanceTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsStudioWebPortalSettings) []string { return v.HiddenInstanceTypes }).(pulumi.StringArrayOutput) +} + // The machine learning tools that are hidden from the Studio left navigation pane. func (o DomainDefaultUserSettingsStudioWebPortalSettingsOutput) HiddenMlTools() pulumi.StringArrayOutput { return o.ApplyT(func(v DomainDefaultUserSettingsStudioWebPortalSettings) []string { return v.HiddenMlTools }).(pulumi.StringArrayOutput) @@ -13437,6 +15145,16 @@ func (o DomainDefaultUserSettingsStudioWebPortalSettingsPtrOutput) HiddenAppType }).(pulumi.StringArrayOutput) } +// The instance types you are hiding from the Studio user interface. +func (o DomainDefaultUserSettingsStudioWebPortalSettingsPtrOutput) HiddenInstanceTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsStudioWebPortalSettings) []string { + if v == nil { + return nil + } + return v.HiddenInstanceTypes + }).(pulumi.StringArrayOutput) +} + // The machine learning tools that are hidden from the Studio left navigation pane. func (o DomainDefaultUserSettingsStudioWebPortalSettingsPtrOutput) HiddenMlTools() pulumi.StringArrayOutput { return o.ApplyT(func(v *DomainDefaultUserSettingsStudioWebPortalSettings) []string { @@ -19185,6 +20903,8 @@ func (o EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSizePtrOu } type FeatureGroupFeatureDefinition struct { + CollectionConfig *FeatureGroupFeatureDefinitionCollectionConfig `pulumi:"collectionConfig"` + CollectionType *string `pulumi:"collectionType"` // The name of a feature. `featureName` cannot be any of the following: `isDeleted`, `writeTime`, `apiInvocationTime`. FeatureName *string `pulumi:"featureName"` // The value type of a feature. Valid values are `Integral`, `Fractional`, or `String`. @@ -19203,6 +20923,8 @@ type FeatureGroupFeatureDefinitionInput interface { } type FeatureGroupFeatureDefinitionArgs struct { + CollectionConfig FeatureGroupFeatureDefinitionCollectionConfigPtrInput `pulumi:"collectionConfig"` + CollectionType pulumi.StringPtrInput `pulumi:"collectionType"` // The name of a feature. `featureName` cannot be any of the following: `isDeleted`, `writeTime`, `apiInvocationTime`. FeatureName pulumi.StringPtrInput `pulumi:"featureName"` // The value type of a feature. Valid values are `Integral`, `Fractional`, or `String`. @@ -19260,6 +20982,16 @@ func (o FeatureGroupFeatureDefinitionOutput) ToFeatureGroupFeatureDefinitionOutp return o } +func (o FeatureGroupFeatureDefinitionOutput) CollectionConfig() FeatureGroupFeatureDefinitionCollectionConfigPtrOutput { + return o.ApplyT(func(v FeatureGroupFeatureDefinition) *FeatureGroupFeatureDefinitionCollectionConfig { + return v.CollectionConfig + }).(FeatureGroupFeatureDefinitionCollectionConfigPtrOutput) +} + +func (o FeatureGroupFeatureDefinitionOutput) CollectionType() pulumi.StringPtrOutput { + return o.ApplyT(func(v FeatureGroupFeatureDefinition) *string { return v.CollectionType }).(pulumi.StringPtrOutput) +} + // The name of a feature. `featureName` cannot be any of the following: `isDeleted`, `writeTime`, `apiInvocationTime`. func (o FeatureGroupFeatureDefinitionOutput) FeatureName() pulumi.StringPtrOutput { return o.ApplyT(func(v FeatureGroupFeatureDefinition) *string { return v.FeatureName }).(pulumi.StringPtrOutput) @@ -19290,182 +21022,450 @@ func (o FeatureGroupFeatureDefinitionArrayOutput) Index(i pulumi.IntInput) Featu }).(FeatureGroupFeatureDefinitionOutput) } -type FeatureGroupOfflineStoreConfig struct { - // The meta data of the Glue table that is autogenerated when an OfflineStore is created. See Data Catalog Config Below. - DataCatalogConfig *FeatureGroupOfflineStoreConfigDataCatalogConfig `pulumi:"dataCatalogConfig"` - // Set to `true` to turn Online Store On. - DisableGlueTableCreation *bool `pulumi:"disableGlueTableCreation"` - // The Amazon Simple Storage (Amazon S3) location of OfflineStore. See S3 Storage Config Below. - S3StorageConfig FeatureGroupOfflineStoreConfigS3StorageConfig `pulumi:"s3StorageConfig"` - // Format for the offline store table. Supported formats are `Glue` (Default) and Apache `Iceberg` (https://iceberg.apache.org/). - TableFormat *string `pulumi:"tableFormat"` +type FeatureGroupFeatureDefinitionCollectionConfig struct { + VectorConfig *FeatureGroupFeatureDefinitionCollectionConfigVectorConfig `pulumi:"vectorConfig"` } -// FeatureGroupOfflineStoreConfigInput is an input type that accepts FeatureGroupOfflineStoreConfigArgs and FeatureGroupOfflineStoreConfigOutput values. -// You can construct a concrete instance of `FeatureGroupOfflineStoreConfigInput` via: +// FeatureGroupFeatureDefinitionCollectionConfigInput is an input type that accepts FeatureGroupFeatureDefinitionCollectionConfigArgs and FeatureGroupFeatureDefinitionCollectionConfigOutput values. +// You can construct a concrete instance of `FeatureGroupFeatureDefinitionCollectionConfigInput` via: // -// FeatureGroupOfflineStoreConfigArgs{...} -type FeatureGroupOfflineStoreConfigInput interface { +// FeatureGroupFeatureDefinitionCollectionConfigArgs{...} +type FeatureGroupFeatureDefinitionCollectionConfigInput interface { pulumi.Input - ToFeatureGroupOfflineStoreConfigOutput() FeatureGroupOfflineStoreConfigOutput - ToFeatureGroupOfflineStoreConfigOutputWithContext(context.Context) FeatureGroupOfflineStoreConfigOutput + ToFeatureGroupFeatureDefinitionCollectionConfigOutput() FeatureGroupFeatureDefinitionCollectionConfigOutput + ToFeatureGroupFeatureDefinitionCollectionConfigOutputWithContext(context.Context) FeatureGroupFeatureDefinitionCollectionConfigOutput } -type FeatureGroupOfflineStoreConfigArgs struct { - // The meta data of the Glue table that is autogenerated when an OfflineStore is created. See Data Catalog Config Below. - DataCatalogConfig FeatureGroupOfflineStoreConfigDataCatalogConfigPtrInput `pulumi:"dataCatalogConfig"` - // Set to `true` to turn Online Store On. - DisableGlueTableCreation pulumi.BoolPtrInput `pulumi:"disableGlueTableCreation"` - // The Amazon Simple Storage (Amazon S3) location of OfflineStore. See S3 Storage Config Below. - S3StorageConfig FeatureGroupOfflineStoreConfigS3StorageConfigInput `pulumi:"s3StorageConfig"` - // Format for the offline store table. Supported formats are `Glue` (Default) and Apache `Iceberg` (https://iceberg.apache.org/). - TableFormat pulumi.StringPtrInput `pulumi:"tableFormat"` +type FeatureGroupFeatureDefinitionCollectionConfigArgs struct { + VectorConfig FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrInput `pulumi:"vectorConfig"` } -func (FeatureGroupOfflineStoreConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*FeatureGroupOfflineStoreConfig)(nil)).Elem() +func (FeatureGroupFeatureDefinitionCollectionConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FeatureGroupFeatureDefinitionCollectionConfig)(nil)).Elem() } -func (i FeatureGroupOfflineStoreConfigArgs) ToFeatureGroupOfflineStoreConfigOutput() FeatureGroupOfflineStoreConfigOutput { - return i.ToFeatureGroupOfflineStoreConfigOutputWithContext(context.Background()) +func (i FeatureGroupFeatureDefinitionCollectionConfigArgs) ToFeatureGroupFeatureDefinitionCollectionConfigOutput() FeatureGroupFeatureDefinitionCollectionConfigOutput { + return i.ToFeatureGroupFeatureDefinitionCollectionConfigOutputWithContext(context.Background()) } -func (i FeatureGroupOfflineStoreConfigArgs) ToFeatureGroupOfflineStoreConfigOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupOfflineStoreConfigOutput) +func (i FeatureGroupFeatureDefinitionCollectionConfigArgs) ToFeatureGroupFeatureDefinitionCollectionConfigOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupFeatureDefinitionCollectionConfigOutput) } -func (i FeatureGroupOfflineStoreConfigArgs) ToFeatureGroupOfflineStoreConfigPtrOutput() FeatureGroupOfflineStoreConfigPtrOutput { - return i.ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(context.Background()) +func (i FeatureGroupFeatureDefinitionCollectionConfigArgs) ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutput() FeatureGroupFeatureDefinitionCollectionConfigPtrOutput { + return i.ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutputWithContext(context.Background()) } -func (i FeatureGroupOfflineStoreConfigArgs) ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupOfflineStoreConfigOutput).ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(ctx) +func (i FeatureGroupFeatureDefinitionCollectionConfigArgs) ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupFeatureDefinitionCollectionConfigOutput).ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutputWithContext(ctx) } -// FeatureGroupOfflineStoreConfigPtrInput is an input type that accepts FeatureGroupOfflineStoreConfigArgs, FeatureGroupOfflineStoreConfigPtr and FeatureGroupOfflineStoreConfigPtrOutput values. -// You can construct a concrete instance of `FeatureGroupOfflineStoreConfigPtrInput` via: +// FeatureGroupFeatureDefinitionCollectionConfigPtrInput is an input type that accepts FeatureGroupFeatureDefinitionCollectionConfigArgs, FeatureGroupFeatureDefinitionCollectionConfigPtr and FeatureGroupFeatureDefinitionCollectionConfigPtrOutput values. +// You can construct a concrete instance of `FeatureGroupFeatureDefinitionCollectionConfigPtrInput` via: // -// FeatureGroupOfflineStoreConfigArgs{...} +// FeatureGroupFeatureDefinitionCollectionConfigArgs{...} // // or: // // nil -type FeatureGroupOfflineStoreConfigPtrInput interface { +type FeatureGroupFeatureDefinitionCollectionConfigPtrInput interface { pulumi.Input - ToFeatureGroupOfflineStoreConfigPtrOutput() FeatureGroupOfflineStoreConfigPtrOutput - ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(context.Context) FeatureGroupOfflineStoreConfigPtrOutput + ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutput() FeatureGroupFeatureDefinitionCollectionConfigPtrOutput + ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutputWithContext(context.Context) FeatureGroupFeatureDefinitionCollectionConfigPtrOutput } -type featureGroupOfflineStoreConfigPtrType FeatureGroupOfflineStoreConfigArgs +type featureGroupFeatureDefinitionCollectionConfigPtrType FeatureGroupFeatureDefinitionCollectionConfigArgs -func FeatureGroupOfflineStoreConfigPtr(v *FeatureGroupOfflineStoreConfigArgs) FeatureGroupOfflineStoreConfigPtrInput { - return (*featureGroupOfflineStoreConfigPtrType)(v) +func FeatureGroupFeatureDefinitionCollectionConfigPtr(v *FeatureGroupFeatureDefinitionCollectionConfigArgs) FeatureGroupFeatureDefinitionCollectionConfigPtrInput { + return (*featureGroupFeatureDefinitionCollectionConfigPtrType)(v) } -func (*featureGroupOfflineStoreConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**FeatureGroupOfflineStoreConfig)(nil)).Elem() +func (*featureGroupFeatureDefinitionCollectionConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FeatureGroupFeatureDefinitionCollectionConfig)(nil)).Elem() } -func (i *featureGroupOfflineStoreConfigPtrType) ToFeatureGroupOfflineStoreConfigPtrOutput() FeatureGroupOfflineStoreConfigPtrOutput { - return i.ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(context.Background()) +func (i *featureGroupFeatureDefinitionCollectionConfigPtrType) ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutput() FeatureGroupFeatureDefinitionCollectionConfigPtrOutput { + return i.ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutputWithContext(context.Background()) } -func (i *featureGroupOfflineStoreConfigPtrType) ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupOfflineStoreConfigPtrOutput) +func (i *featureGroupFeatureDefinitionCollectionConfigPtrType) ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupFeatureDefinitionCollectionConfigPtrOutput) } -type FeatureGroupOfflineStoreConfigOutput struct{ *pulumi.OutputState } +type FeatureGroupFeatureDefinitionCollectionConfigOutput struct{ *pulumi.OutputState } -func (FeatureGroupOfflineStoreConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*FeatureGroupOfflineStoreConfig)(nil)).Elem() +func (FeatureGroupFeatureDefinitionCollectionConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FeatureGroupFeatureDefinitionCollectionConfig)(nil)).Elem() } -func (o FeatureGroupOfflineStoreConfigOutput) ToFeatureGroupOfflineStoreConfigOutput() FeatureGroupOfflineStoreConfigOutput { +func (o FeatureGroupFeatureDefinitionCollectionConfigOutput) ToFeatureGroupFeatureDefinitionCollectionConfigOutput() FeatureGroupFeatureDefinitionCollectionConfigOutput { return o } -func (o FeatureGroupOfflineStoreConfigOutput) ToFeatureGroupOfflineStoreConfigOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigOutput { +func (o FeatureGroupFeatureDefinitionCollectionConfigOutput) ToFeatureGroupFeatureDefinitionCollectionConfigOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigOutput { return o } -func (o FeatureGroupOfflineStoreConfigOutput) ToFeatureGroupOfflineStoreConfigPtrOutput() FeatureGroupOfflineStoreConfigPtrOutput { - return o.ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(context.Background()) +func (o FeatureGroupFeatureDefinitionCollectionConfigOutput) ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutput() FeatureGroupFeatureDefinitionCollectionConfigPtrOutput { + return o.ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutputWithContext(context.Background()) } -func (o FeatureGroupOfflineStoreConfigOutput) ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v FeatureGroupOfflineStoreConfig) *FeatureGroupOfflineStoreConfig { +func (o FeatureGroupFeatureDefinitionCollectionConfigOutput) ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FeatureGroupFeatureDefinitionCollectionConfig) *FeatureGroupFeatureDefinitionCollectionConfig { return &v - }).(FeatureGroupOfflineStoreConfigPtrOutput) -} - -// The meta data of the Glue table that is autogenerated when an OfflineStore is created. See Data Catalog Config Below. -func (o FeatureGroupOfflineStoreConfigOutput) DataCatalogConfig() FeatureGroupOfflineStoreConfigDataCatalogConfigPtrOutput { - return o.ApplyT(func(v FeatureGroupOfflineStoreConfig) *FeatureGroupOfflineStoreConfigDataCatalogConfig { - return v.DataCatalogConfig - }).(FeatureGroupOfflineStoreConfigDataCatalogConfigPtrOutput) -} - -// Set to `true` to turn Online Store On. -func (o FeatureGroupOfflineStoreConfigOutput) DisableGlueTableCreation() pulumi.BoolPtrOutput { - return o.ApplyT(func(v FeatureGroupOfflineStoreConfig) *bool { return v.DisableGlueTableCreation }).(pulumi.BoolPtrOutput) + }).(FeatureGroupFeatureDefinitionCollectionConfigPtrOutput) } -// The Amazon Simple Storage (Amazon S3) location of OfflineStore. See S3 Storage Config Below. -func (o FeatureGroupOfflineStoreConfigOutput) S3StorageConfig() FeatureGroupOfflineStoreConfigS3StorageConfigOutput { - return o.ApplyT(func(v FeatureGroupOfflineStoreConfig) FeatureGroupOfflineStoreConfigS3StorageConfig { - return v.S3StorageConfig - }).(FeatureGroupOfflineStoreConfigS3StorageConfigOutput) -} - -// Format for the offline store table. Supported formats are `Glue` (Default) and Apache `Iceberg` (https://iceberg.apache.org/). -func (o FeatureGroupOfflineStoreConfigOutput) TableFormat() pulumi.StringPtrOutput { - return o.ApplyT(func(v FeatureGroupOfflineStoreConfig) *string { return v.TableFormat }).(pulumi.StringPtrOutput) +func (o FeatureGroupFeatureDefinitionCollectionConfigOutput) VectorConfig() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput { + return o.ApplyT(func(v FeatureGroupFeatureDefinitionCollectionConfig) *FeatureGroupFeatureDefinitionCollectionConfigVectorConfig { + return v.VectorConfig + }).(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput) } -type FeatureGroupOfflineStoreConfigPtrOutput struct{ *pulumi.OutputState } +type FeatureGroupFeatureDefinitionCollectionConfigPtrOutput struct{ *pulumi.OutputState } -func (FeatureGroupOfflineStoreConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**FeatureGroupOfflineStoreConfig)(nil)).Elem() +func (FeatureGroupFeatureDefinitionCollectionConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FeatureGroupFeatureDefinitionCollectionConfig)(nil)).Elem() } -func (o FeatureGroupOfflineStoreConfigPtrOutput) ToFeatureGroupOfflineStoreConfigPtrOutput() FeatureGroupOfflineStoreConfigPtrOutput { +func (o FeatureGroupFeatureDefinitionCollectionConfigPtrOutput) ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutput() FeatureGroupFeatureDefinitionCollectionConfigPtrOutput { return o } -func (o FeatureGroupOfflineStoreConfigPtrOutput) ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigPtrOutput { +func (o FeatureGroupFeatureDefinitionCollectionConfigPtrOutput) ToFeatureGroupFeatureDefinitionCollectionConfigPtrOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigPtrOutput { return o } -func (o FeatureGroupOfflineStoreConfigPtrOutput) Elem() FeatureGroupOfflineStoreConfigOutput { - return o.ApplyT(func(v *FeatureGroupOfflineStoreConfig) FeatureGroupOfflineStoreConfig { +func (o FeatureGroupFeatureDefinitionCollectionConfigPtrOutput) Elem() FeatureGroupFeatureDefinitionCollectionConfigOutput { + return o.ApplyT(func(v *FeatureGroupFeatureDefinitionCollectionConfig) FeatureGroupFeatureDefinitionCollectionConfig { if v != nil { return *v } - var ret FeatureGroupOfflineStoreConfig + var ret FeatureGroupFeatureDefinitionCollectionConfig return ret - }).(FeatureGroupOfflineStoreConfigOutput) + }).(FeatureGroupFeatureDefinitionCollectionConfigOutput) } -// The meta data of the Glue table that is autogenerated when an OfflineStore is created. See Data Catalog Config Below. -func (o FeatureGroupOfflineStoreConfigPtrOutput) DataCatalogConfig() FeatureGroupOfflineStoreConfigDataCatalogConfigPtrOutput { - return o.ApplyT(func(v *FeatureGroupOfflineStoreConfig) *FeatureGroupOfflineStoreConfigDataCatalogConfig { +func (o FeatureGroupFeatureDefinitionCollectionConfigPtrOutput) VectorConfig() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput { + return o.ApplyT(func(v *FeatureGroupFeatureDefinitionCollectionConfig) *FeatureGroupFeatureDefinitionCollectionConfigVectorConfig { if v == nil { return nil } - return v.DataCatalogConfig - }).(FeatureGroupOfflineStoreConfigDataCatalogConfigPtrOutput) + return v.VectorConfig + }).(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput) } -// Set to `true` to turn Online Store On. -func (o FeatureGroupOfflineStoreConfigPtrOutput) DisableGlueTableCreation() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *FeatureGroupOfflineStoreConfig) *bool { - if v == nil { - return nil - } - return v.DisableGlueTableCreation - }).(pulumi.BoolPtrOutput) +type FeatureGroupFeatureDefinitionCollectionConfigVectorConfig struct { + Dimension *int `pulumi:"dimension"` +} + +// FeatureGroupFeatureDefinitionCollectionConfigVectorConfigInput is an input type that accepts FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs and FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput values. +// You can construct a concrete instance of `FeatureGroupFeatureDefinitionCollectionConfigVectorConfigInput` via: +// +// FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs{...} +type FeatureGroupFeatureDefinitionCollectionConfigVectorConfigInput interface { + pulumi.Input + + ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput + ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutputWithContext(context.Context) FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput +} + +type FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs struct { + Dimension pulumi.IntPtrInput `pulumi:"dimension"` +} + +func (FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FeatureGroupFeatureDefinitionCollectionConfigVectorConfig)(nil)).Elem() +} + +func (i FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput { + return i.ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutputWithContext(context.Background()) +} + +func (i FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput) +} + +func (i FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput { + return i.ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutputWithContext(context.Background()) +} + +func (i FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput).ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutputWithContext(ctx) +} + +// FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrInput is an input type that accepts FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs, FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtr and FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput values. +// You can construct a concrete instance of `FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrInput` via: +// +// FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs{...} +// +// or: +// +// nil +type FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrInput interface { + pulumi.Input + + ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput + ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutputWithContext(context.Context) FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput +} + +type featureGroupFeatureDefinitionCollectionConfigVectorConfigPtrType FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs + +func FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtr(v *FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs) FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrInput { + return (*featureGroupFeatureDefinitionCollectionConfigVectorConfigPtrType)(v) +} + +func (*featureGroupFeatureDefinitionCollectionConfigVectorConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FeatureGroupFeatureDefinitionCollectionConfigVectorConfig)(nil)).Elem() +} + +func (i *featureGroupFeatureDefinitionCollectionConfigVectorConfigPtrType) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput { + return i.ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutputWithContext(context.Background()) +} + +func (i *featureGroupFeatureDefinitionCollectionConfigVectorConfigPtrType) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput) +} + +type FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput struct{ *pulumi.OutputState } + +func (FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FeatureGroupFeatureDefinitionCollectionConfigVectorConfig)(nil)).Elem() +} + +func (o FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput { + return o +} + +func (o FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput { + return o +} + +func (o FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput { + return o.ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutputWithContext(context.Background()) +} + +func (o FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FeatureGroupFeatureDefinitionCollectionConfigVectorConfig) *FeatureGroupFeatureDefinitionCollectionConfigVectorConfig { + return &v + }).(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput) +} + +func (o FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput) Dimension() pulumi.IntPtrOutput { + return o.ApplyT(func(v FeatureGroupFeatureDefinitionCollectionConfigVectorConfig) *int { return v.Dimension }).(pulumi.IntPtrOutput) +} + +type FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput struct{ *pulumi.OutputState } + +func (FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FeatureGroupFeatureDefinitionCollectionConfigVectorConfig)(nil)).Elem() +} + +func (o FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput { + return o +} + +func (o FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput) ToFeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutputWithContext(ctx context.Context) FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput { + return o +} + +func (o FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput) Elem() FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput { + return o.ApplyT(func(v *FeatureGroupFeatureDefinitionCollectionConfigVectorConfig) FeatureGroupFeatureDefinitionCollectionConfigVectorConfig { + if v != nil { + return *v + } + var ret FeatureGroupFeatureDefinitionCollectionConfigVectorConfig + return ret + }).(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput) +} + +func (o FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput) Dimension() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FeatureGroupFeatureDefinitionCollectionConfigVectorConfig) *int { + if v == nil { + return nil + } + return v.Dimension + }).(pulumi.IntPtrOutput) +} + +type FeatureGroupOfflineStoreConfig struct { + // The meta data of the Glue table that is autogenerated when an OfflineStore is created. See Data Catalog Config Below. + DataCatalogConfig *FeatureGroupOfflineStoreConfigDataCatalogConfig `pulumi:"dataCatalogConfig"` + // Set to `true` to turn Online Store On. + DisableGlueTableCreation *bool `pulumi:"disableGlueTableCreation"` + // The Amazon Simple Storage (Amazon S3) location of OfflineStore. See S3 Storage Config Below. + S3StorageConfig FeatureGroupOfflineStoreConfigS3StorageConfig `pulumi:"s3StorageConfig"` + // Format for the offline store table. Supported formats are `Glue` (Default) and Apache `Iceberg` (https://iceberg.apache.org/). + TableFormat *string `pulumi:"tableFormat"` +} + +// FeatureGroupOfflineStoreConfigInput is an input type that accepts FeatureGroupOfflineStoreConfigArgs and FeatureGroupOfflineStoreConfigOutput values. +// You can construct a concrete instance of `FeatureGroupOfflineStoreConfigInput` via: +// +// FeatureGroupOfflineStoreConfigArgs{...} +type FeatureGroupOfflineStoreConfigInput interface { + pulumi.Input + + ToFeatureGroupOfflineStoreConfigOutput() FeatureGroupOfflineStoreConfigOutput + ToFeatureGroupOfflineStoreConfigOutputWithContext(context.Context) FeatureGroupOfflineStoreConfigOutput +} + +type FeatureGroupOfflineStoreConfigArgs struct { + // The meta data of the Glue table that is autogenerated when an OfflineStore is created. See Data Catalog Config Below. + DataCatalogConfig FeatureGroupOfflineStoreConfigDataCatalogConfigPtrInput `pulumi:"dataCatalogConfig"` + // Set to `true` to turn Online Store On. + DisableGlueTableCreation pulumi.BoolPtrInput `pulumi:"disableGlueTableCreation"` + // The Amazon Simple Storage (Amazon S3) location of OfflineStore. See S3 Storage Config Below. + S3StorageConfig FeatureGroupOfflineStoreConfigS3StorageConfigInput `pulumi:"s3StorageConfig"` + // Format for the offline store table. Supported formats are `Glue` (Default) and Apache `Iceberg` (https://iceberg.apache.org/). + TableFormat pulumi.StringPtrInput `pulumi:"tableFormat"` +} + +func (FeatureGroupOfflineStoreConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FeatureGroupOfflineStoreConfig)(nil)).Elem() +} + +func (i FeatureGroupOfflineStoreConfigArgs) ToFeatureGroupOfflineStoreConfigOutput() FeatureGroupOfflineStoreConfigOutput { + return i.ToFeatureGroupOfflineStoreConfigOutputWithContext(context.Background()) +} + +func (i FeatureGroupOfflineStoreConfigArgs) ToFeatureGroupOfflineStoreConfigOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupOfflineStoreConfigOutput) +} + +func (i FeatureGroupOfflineStoreConfigArgs) ToFeatureGroupOfflineStoreConfigPtrOutput() FeatureGroupOfflineStoreConfigPtrOutput { + return i.ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(context.Background()) +} + +func (i FeatureGroupOfflineStoreConfigArgs) ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupOfflineStoreConfigOutput).ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(ctx) +} + +// FeatureGroupOfflineStoreConfigPtrInput is an input type that accepts FeatureGroupOfflineStoreConfigArgs, FeatureGroupOfflineStoreConfigPtr and FeatureGroupOfflineStoreConfigPtrOutput values. +// You can construct a concrete instance of `FeatureGroupOfflineStoreConfigPtrInput` via: +// +// FeatureGroupOfflineStoreConfigArgs{...} +// +// or: +// +// nil +type FeatureGroupOfflineStoreConfigPtrInput interface { + pulumi.Input + + ToFeatureGroupOfflineStoreConfigPtrOutput() FeatureGroupOfflineStoreConfigPtrOutput + ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(context.Context) FeatureGroupOfflineStoreConfigPtrOutput +} + +type featureGroupOfflineStoreConfigPtrType FeatureGroupOfflineStoreConfigArgs + +func FeatureGroupOfflineStoreConfigPtr(v *FeatureGroupOfflineStoreConfigArgs) FeatureGroupOfflineStoreConfigPtrInput { + return (*featureGroupOfflineStoreConfigPtrType)(v) +} + +func (*featureGroupOfflineStoreConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FeatureGroupOfflineStoreConfig)(nil)).Elem() +} + +func (i *featureGroupOfflineStoreConfigPtrType) ToFeatureGroupOfflineStoreConfigPtrOutput() FeatureGroupOfflineStoreConfigPtrOutput { + return i.ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(context.Background()) +} + +func (i *featureGroupOfflineStoreConfigPtrType) ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupOfflineStoreConfigPtrOutput) +} + +type FeatureGroupOfflineStoreConfigOutput struct{ *pulumi.OutputState } + +func (FeatureGroupOfflineStoreConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FeatureGroupOfflineStoreConfig)(nil)).Elem() +} + +func (o FeatureGroupOfflineStoreConfigOutput) ToFeatureGroupOfflineStoreConfigOutput() FeatureGroupOfflineStoreConfigOutput { + return o +} + +func (o FeatureGroupOfflineStoreConfigOutput) ToFeatureGroupOfflineStoreConfigOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigOutput { + return o +} + +func (o FeatureGroupOfflineStoreConfigOutput) ToFeatureGroupOfflineStoreConfigPtrOutput() FeatureGroupOfflineStoreConfigPtrOutput { + return o.ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(context.Background()) +} + +func (o FeatureGroupOfflineStoreConfigOutput) ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FeatureGroupOfflineStoreConfig) *FeatureGroupOfflineStoreConfig { + return &v + }).(FeatureGroupOfflineStoreConfigPtrOutput) +} + +// The meta data of the Glue table that is autogenerated when an OfflineStore is created. See Data Catalog Config Below. +func (o FeatureGroupOfflineStoreConfigOutput) DataCatalogConfig() FeatureGroupOfflineStoreConfigDataCatalogConfigPtrOutput { + return o.ApplyT(func(v FeatureGroupOfflineStoreConfig) *FeatureGroupOfflineStoreConfigDataCatalogConfig { + return v.DataCatalogConfig + }).(FeatureGroupOfflineStoreConfigDataCatalogConfigPtrOutput) +} + +// Set to `true` to turn Online Store On. +func (o FeatureGroupOfflineStoreConfigOutput) DisableGlueTableCreation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FeatureGroupOfflineStoreConfig) *bool { return v.DisableGlueTableCreation }).(pulumi.BoolPtrOutput) +} + +// The Amazon Simple Storage (Amazon S3) location of OfflineStore. See S3 Storage Config Below. +func (o FeatureGroupOfflineStoreConfigOutput) S3StorageConfig() FeatureGroupOfflineStoreConfigS3StorageConfigOutput { + return o.ApplyT(func(v FeatureGroupOfflineStoreConfig) FeatureGroupOfflineStoreConfigS3StorageConfig { + return v.S3StorageConfig + }).(FeatureGroupOfflineStoreConfigS3StorageConfigOutput) +} + +// Format for the offline store table. Supported formats are `Glue` (Default) and Apache `Iceberg` (https://iceberg.apache.org/). +func (o FeatureGroupOfflineStoreConfigOutput) TableFormat() pulumi.StringPtrOutput { + return o.ApplyT(func(v FeatureGroupOfflineStoreConfig) *string { return v.TableFormat }).(pulumi.StringPtrOutput) +} + +type FeatureGroupOfflineStoreConfigPtrOutput struct{ *pulumi.OutputState } + +func (FeatureGroupOfflineStoreConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FeatureGroupOfflineStoreConfig)(nil)).Elem() +} + +func (o FeatureGroupOfflineStoreConfigPtrOutput) ToFeatureGroupOfflineStoreConfigPtrOutput() FeatureGroupOfflineStoreConfigPtrOutput { + return o +} + +func (o FeatureGroupOfflineStoreConfigPtrOutput) ToFeatureGroupOfflineStoreConfigPtrOutputWithContext(ctx context.Context) FeatureGroupOfflineStoreConfigPtrOutput { + return o +} + +func (o FeatureGroupOfflineStoreConfigPtrOutput) Elem() FeatureGroupOfflineStoreConfigOutput { + return o.ApplyT(func(v *FeatureGroupOfflineStoreConfig) FeatureGroupOfflineStoreConfig { + if v != nil { + return *v + } + var ret FeatureGroupOfflineStoreConfig + return ret + }).(FeatureGroupOfflineStoreConfigOutput) +} + +// The meta data of the Glue table that is autogenerated when an OfflineStore is created. See Data Catalog Config Below. +func (o FeatureGroupOfflineStoreConfigPtrOutput) DataCatalogConfig() FeatureGroupOfflineStoreConfigDataCatalogConfigPtrOutput { + return o.ApplyT(func(v *FeatureGroupOfflineStoreConfig) *FeatureGroupOfflineStoreConfigDataCatalogConfig { + if v == nil { + return nil + } + return v.DataCatalogConfig + }).(FeatureGroupOfflineStoreConfigDataCatalogConfigPtrOutput) +} + +// Set to `true` to turn Online Store On. +func (o FeatureGroupOfflineStoreConfigPtrOutput) DisableGlueTableCreation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FeatureGroupOfflineStoreConfig) *bool { + if v == nil { + return nil + } + return v.DisableGlueTableCreation + }).(pulumi.BoolPtrOutput) } // The Amazon Simple Storage (Amazon S3) location of OfflineStore. See S3 Storage Config Below. @@ -20327,15 +22327,178 @@ func (o FeatureGroupOnlineStoreConfigTtlDurationPtrOutput) Value() pulumi.IntPtr }).(pulumi.IntPtrOutput) } -type FlowDefinitionHumanLoopActivationConfig struct { - // defines under what conditions SageMaker creates a human loop. See Human Loop Activation Conditions Config details below. - HumanLoopActivationConditionsConfig *FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfig `pulumi:"humanLoopActivationConditionsConfig"` +type FeatureGroupThroughputConfig struct { + ProvisionedReadCapacityUnits *int `pulumi:"provisionedReadCapacityUnits"` + ProvisionedWriteCapacityUnits *int `pulumi:"provisionedWriteCapacityUnits"` + ThroughputMode *string `pulumi:"throughputMode"` } -// FlowDefinitionHumanLoopActivationConfigInput is an input type that accepts FlowDefinitionHumanLoopActivationConfigArgs and FlowDefinitionHumanLoopActivationConfigOutput values. -// You can construct a concrete instance of `FlowDefinitionHumanLoopActivationConfigInput` via: +// FeatureGroupThroughputConfigInput is an input type that accepts FeatureGroupThroughputConfigArgs and FeatureGroupThroughputConfigOutput values. +// You can construct a concrete instance of `FeatureGroupThroughputConfigInput` via: // -// FlowDefinitionHumanLoopActivationConfigArgs{...} +// FeatureGroupThroughputConfigArgs{...} +type FeatureGroupThroughputConfigInput interface { + pulumi.Input + + ToFeatureGroupThroughputConfigOutput() FeatureGroupThroughputConfigOutput + ToFeatureGroupThroughputConfigOutputWithContext(context.Context) FeatureGroupThroughputConfigOutput +} + +type FeatureGroupThroughputConfigArgs struct { + ProvisionedReadCapacityUnits pulumi.IntPtrInput `pulumi:"provisionedReadCapacityUnits"` + ProvisionedWriteCapacityUnits pulumi.IntPtrInput `pulumi:"provisionedWriteCapacityUnits"` + ThroughputMode pulumi.StringPtrInput `pulumi:"throughputMode"` +} + +func (FeatureGroupThroughputConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FeatureGroupThroughputConfig)(nil)).Elem() +} + +func (i FeatureGroupThroughputConfigArgs) ToFeatureGroupThroughputConfigOutput() FeatureGroupThroughputConfigOutput { + return i.ToFeatureGroupThroughputConfigOutputWithContext(context.Background()) +} + +func (i FeatureGroupThroughputConfigArgs) ToFeatureGroupThroughputConfigOutputWithContext(ctx context.Context) FeatureGroupThroughputConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupThroughputConfigOutput) +} + +func (i FeatureGroupThroughputConfigArgs) ToFeatureGroupThroughputConfigPtrOutput() FeatureGroupThroughputConfigPtrOutput { + return i.ToFeatureGroupThroughputConfigPtrOutputWithContext(context.Background()) +} + +func (i FeatureGroupThroughputConfigArgs) ToFeatureGroupThroughputConfigPtrOutputWithContext(ctx context.Context) FeatureGroupThroughputConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupThroughputConfigOutput).ToFeatureGroupThroughputConfigPtrOutputWithContext(ctx) +} + +// FeatureGroupThroughputConfigPtrInput is an input type that accepts FeatureGroupThroughputConfigArgs, FeatureGroupThroughputConfigPtr and FeatureGroupThroughputConfigPtrOutput values. +// You can construct a concrete instance of `FeatureGroupThroughputConfigPtrInput` via: +// +// FeatureGroupThroughputConfigArgs{...} +// +// or: +// +// nil +type FeatureGroupThroughputConfigPtrInput interface { + pulumi.Input + + ToFeatureGroupThroughputConfigPtrOutput() FeatureGroupThroughputConfigPtrOutput + ToFeatureGroupThroughputConfigPtrOutputWithContext(context.Context) FeatureGroupThroughputConfigPtrOutput +} + +type featureGroupThroughputConfigPtrType FeatureGroupThroughputConfigArgs + +func FeatureGroupThroughputConfigPtr(v *FeatureGroupThroughputConfigArgs) FeatureGroupThroughputConfigPtrInput { + return (*featureGroupThroughputConfigPtrType)(v) +} + +func (*featureGroupThroughputConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FeatureGroupThroughputConfig)(nil)).Elem() +} + +func (i *featureGroupThroughputConfigPtrType) ToFeatureGroupThroughputConfigPtrOutput() FeatureGroupThroughputConfigPtrOutput { + return i.ToFeatureGroupThroughputConfigPtrOutputWithContext(context.Background()) +} + +func (i *featureGroupThroughputConfigPtrType) ToFeatureGroupThroughputConfigPtrOutputWithContext(ctx context.Context) FeatureGroupThroughputConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeatureGroupThroughputConfigPtrOutput) +} + +type FeatureGroupThroughputConfigOutput struct{ *pulumi.OutputState } + +func (FeatureGroupThroughputConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FeatureGroupThroughputConfig)(nil)).Elem() +} + +func (o FeatureGroupThroughputConfigOutput) ToFeatureGroupThroughputConfigOutput() FeatureGroupThroughputConfigOutput { + return o +} + +func (o FeatureGroupThroughputConfigOutput) ToFeatureGroupThroughputConfigOutputWithContext(ctx context.Context) FeatureGroupThroughputConfigOutput { + return o +} + +func (o FeatureGroupThroughputConfigOutput) ToFeatureGroupThroughputConfigPtrOutput() FeatureGroupThroughputConfigPtrOutput { + return o.ToFeatureGroupThroughputConfigPtrOutputWithContext(context.Background()) +} + +func (o FeatureGroupThroughputConfigOutput) ToFeatureGroupThroughputConfigPtrOutputWithContext(ctx context.Context) FeatureGroupThroughputConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FeatureGroupThroughputConfig) *FeatureGroupThroughputConfig { + return &v + }).(FeatureGroupThroughputConfigPtrOutput) +} + +func (o FeatureGroupThroughputConfigOutput) ProvisionedReadCapacityUnits() pulumi.IntPtrOutput { + return o.ApplyT(func(v FeatureGroupThroughputConfig) *int { return v.ProvisionedReadCapacityUnits }).(pulumi.IntPtrOutput) +} + +func (o FeatureGroupThroughputConfigOutput) ProvisionedWriteCapacityUnits() pulumi.IntPtrOutput { + return o.ApplyT(func(v FeatureGroupThroughputConfig) *int { return v.ProvisionedWriteCapacityUnits }).(pulumi.IntPtrOutput) +} + +func (o FeatureGroupThroughputConfigOutput) ThroughputMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v FeatureGroupThroughputConfig) *string { return v.ThroughputMode }).(pulumi.StringPtrOutput) +} + +type FeatureGroupThroughputConfigPtrOutput struct{ *pulumi.OutputState } + +func (FeatureGroupThroughputConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FeatureGroupThroughputConfig)(nil)).Elem() +} + +func (o FeatureGroupThroughputConfigPtrOutput) ToFeatureGroupThroughputConfigPtrOutput() FeatureGroupThroughputConfigPtrOutput { + return o +} + +func (o FeatureGroupThroughputConfigPtrOutput) ToFeatureGroupThroughputConfigPtrOutputWithContext(ctx context.Context) FeatureGroupThroughputConfigPtrOutput { + return o +} + +func (o FeatureGroupThroughputConfigPtrOutput) Elem() FeatureGroupThroughputConfigOutput { + return o.ApplyT(func(v *FeatureGroupThroughputConfig) FeatureGroupThroughputConfig { + if v != nil { + return *v + } + var ret FeatureGroupThroughputConfig + return ret + }).(FeatureGroupThroughputConfigOutput) +} + +func (o FeatureGroupThroughputConfigPtrOutput) ProvisionedReadCapacityUnits() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FeatureGroupThroughputConfig) *int { + if v == nil { + return nil + } + return v.ProvisionedReadCapacityUnits + }).(pulumi.IntPtrOutput) +} + +func (o FeatureGroupThroughputConfigPtrOutput) ProvisionedWriteCapacityUnits() pulumi.IntPtrOutput { + return o.ApplyT(func(v *FeatureGroupThroughputConfig) *int { + if v == nil { + return nil + } + return v.ProvisionedWriteCapacityUnits + }).(pulumi.IntPtrOutput) +} + +func (o FeatureGroupThroughputConfigPtrOutput) ThroughputMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FeatureGroupThroughputConfig) *string { + if v == nil { + return nil + } + return v.ThroughputMode + }).(pulumi.StringPtrOutput) +} + +type FlowDefinitionHumanLoopActivationConfig struct { + // defines under what conditions SageMaker creates a human loop. See Human Loop Activation Conditions Config details below. + HumanLoopActivationConditionsConfig *FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfig `pulumi:"humanLoopActivationConditionsConfig"` +} + +// FlowDefinitionHumanLoopActivationConfigInput is an input type that accepts FlowDefinitionHumanLoopActivationConfigArgs and FlowDefinitionHumanLoopActivationConfigOutput values. +// You can construct a concrete instance of `FlowDefinitionHumanLoopActivationConfigInput` via: +// +// FlowDefinitionHumanLoopActivationConfigArgs{...} type FlowDefinitionHumanLoopActivationConfigInput interface { pulumi.Input @@ -21505,6 +23668,143 @@ func (o FlowDefinitionOutputConfigPtrOutput) S3OutputPath() pulumi.StringPtrOutp }).(pulumi.StringPtrOutput) } +type HubS3StorageConfig struct { + // The Amazon S3 bucket prefix for hosting hub content.interface. + S3OutputPath *string `pulumi:"s3OutputPath"` +} + +// HubS3StorageConfigInput is an input type that accepts HubS3StorageConfigArgs and HubS3StorageConfigOutput values. +// You can construct a concrete instance of `HubS3StorageConfigInput` via: +// +// HubS3StorageConfigArgs{...} +type HubS3StorageConfigInput interface { + pulumi.Input + + ToHubS3StorageConfigOutput() HubS3StorageConfigOutput + ToHubS3StorageConfigOutputWithContext(context.Context) HubS3StorageConfigOutput +} + +type HubS3StorageConfigArgs struct { + // The Amazon S3 bucket prefix for hosting hub content.interface. + S3OutputPath pulumi.StringPtrInput `pulumi:"s3OutputPath"` +} + +func (HubS3StorageConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*HubS3StorageConfig)(nil)).Elem() +} + +func (i HubS3StorageConfigArgs) ToHubS3StorageConfigOutput() HubS3StorageConfigOutput { + return i.ToHubS3StorageConfigOutputWithContext(context.Background()) +} + +func (i HubS3StorageConfigArgs) ToHubS3StorageConfigOutputWithContext(ctx context.Context) HubS3StorageConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(HubS3StorageConfigOutput) +} + +func (i HubS3StorageConfigArgs) ToHubS3StorageConfigPtrOutput() HubS3StorageConfigPtrOutput { + return i.ToHubS3StorageConfigPtrOutputWithContext(context.Background()) +} + +func (i HubS3StorageConfigArgs) ToHubS3StorageConfigPtrOutputWithContext(ctx context.Context) HubS3StorageConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(HubS3StorageConfigOutput).ToHubS3StorageConfigPtrOutputWithContext(ctx) +} + +// HubS3StorageConfigPtrInput is an input type that accepts HubS3StorageConfigArgs, HubS3StorageConfigPtr and HubS3StorageConfigPtrOutput values. +// You can construct a concrete instance of `HubS3StorageConfigPtrInput` via: +// +// HubS3StorageConfigArgs{...} +// +// or: +// +// nil +type HubS3StorageConfigPtrInput interface { + pulumi.Input + + ToHubS3StorageConfigPtrOutput() HubS3StorageConfigPtrOutput + ToHubS3StorageConfigPtrOutputWithContext(context.Context) HubS3StorageConfigPtrOutput +} + +type hubS3StorageConfigPtrType HubS3StorageConfigArgs + +func HubS3StorageConfigPtr(v *HubS3StorageConfigArgs) HubS3StorageConfigPtrInput { + return (*hubS3StorageConfigPtrType)(v) +} + +func (*hubS3StorageConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**HubS3StorageConfig)(nil)).Elem() +} + +func (i *hubS3StorageConfigPtrType) ToHubS3StorageConfigPtrOutput() HubS3StorageConfigPtrOutput { + return i.ToHubS3StorageConfigPtrOutputWithContext(context.Background()) +} + +func (i *hubS3StorageConfigPtrType) ToHubS3StorageConfigPtrOutputWithContext(ctx context.Context) HubS3StorageConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(HubS3StorageConfigPtrOutput) +} + +type HubS3StorageConfigOutput struct{ *pulumi.OutputState } + +func (HubS3StorageConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*HubS3StorageConfig)(nil)).Elem() +} + +func (o HubS3StorageConfigOutput) ToHubS3StorageConfigOutput() HubS3StorageConfigOutput { + return o +} + +func (o HubS3StorageConfigOutput) ToHubS3StorageConfigOutputWithContext(ctx context.Context) HubS3StorageConfigOutput { + return o +} + +func (o HubS3StorageConfigOutput) ToHubS3StorageConfigPtrOutput() HubS3StorageConfigPtrOutput { + return o.ToHubS3StorageConfigPtrOutputWithContext(context.Background()) +} + +func (o HubS3StorageConfigOutput) ToHubS3StorageConfigPtrOutputWithContext(ctx context.Context) HubS3StorageConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v HubS3StorageConfig) *HubS3StorageConfig { + return &v + }).(HubS3StorageConfigPtrOutput) +} + +// The Amazon S3 bucket prefix for hosting hub content.interface. +func (o HubS3StorageConfigOutput) S3OutputPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v HubS3StorageConfig) *string { return v.S3OutputPath }).(pulumi.StringPtrOutput) +} + +type HubS3StorageConfigPtrOutput struct{ *pulumi.OutputState } + +func (HubS3StorageConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**HubS3StorageConfig)(nil)).Elem() +} + +func (o HubS3StorageConfigPtrOutput) ToHubS3StorageConfigPtrOutput() HubS3StorageConfigPtrOutput { + return o +} + +func (o HubS3StorageConfigPtrOutput) ToHubS3StorageConfigPtrOutputWithContext(ctx context.Context) HubS3StorageConfigPtrOutput { + return o +} + +func (o HubS3StorageConfigPtrOutput) Elem() HubS3StorageConfigOutput { + return o.ApplyT(func(v *HubS3StorageConfig) HubS3StorageConfig { + if v != nil { + return *v + } + var ret HubS3StorageConfig + return ret + }).(HubS3StorageConfigOutput) +} + +// The Amazon S3 bucket prefix for hosting hub content.interface. +func (o HubS3StorageConfigPtrOutput) S3OutputPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *HubS3StorageConfig) *string { + if v == nil { + return nil + } + return v.S3OutputPath + }).(pulumi.StringPtrOutput) +} + type HumanTaskUIUiTemplate struct { // The content of the Liquid template for the worker user interface. Content *string `pulumi:"content"` @@ -25590,6 +27890,8 @@ func (o SpaceSpaceSettingsPtrOutput) SpaceStorageSettings() SpaceSpaceSettingsSp } type SpaceSpaceSettingsCodeEditorAppSettings struct { + // Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. + AppLifecycleManagement *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement `pulumi:"appLifecycleManagement"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. DefaultResourceSpec SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` } @@ -25606,6 +27908,8 @@ type SpaceSpaceSettingsCodeEditorAppSettingsInput interface { } type SpaceSpaceSettingsCodeEditorAppSettingsArgs struct { + // Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. + AppLifecycleManagement SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput `pulumi:"appLifecycleManagement"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. DefaultResourceSpec SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecInput `pulumi:"defaultResourceSpec"` } @@ -25687,6 +27991,13 @@ func (o SpaceSpaceSettingsCodeEditorAppSettingsOutput) ToSpaceSpaceSettingsCodeE }).(SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput) } +// Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. +func (o SpaceSpaceSettingsCodeEditorAppSettingsOutput) AppLifecycleManagement() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettings) *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement { + return v.AppLifecycleManagement + }).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) +} + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. func (o SpaceSpaceSettingsCodeEditorAppSettingsOutput) DefaultResourceSpec() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput { return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettings) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec { @@ -25718,6 +28029,16 @@ func (o SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput) Elem() SpaceSpaceSetti }).(SpaceSpaceSettingsCodeEditorAppSettingsOutput) } +// Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. +func (o SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput) AppLifecycleManagement() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v *SpaceSpaceSettingsCodeEditorAppSettings) *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement { + if v == nil { + return nil + } + return v.AppLifecycleManagement + }).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) +} + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. func (o SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput) DefaultResourceSpec() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { return o.ApplyT(func(v *SpaceSpaceSettingsCodeEditorAppSettings) *SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec { @@ -25728,135 +28049,413 @@ func (o SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput) DefaultResourceSpec() }).(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput) } -type SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec struct { - // The instance type. - InstanceType *string `pulumi:"instanceType"` - // The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource. - LifecycleConfigArn *string `pulumi:"lifecycleConfigArn"` - // The Amazon Resource Name (ARN) of the SageMaker image created on the instance. - SagemakerImageArn *string `pulumi:"sagemakerImageArn"` - // The SageMaker Image Version Alias. - SagemakerImageVersionAlias *string `pulumi:"sagemakerImageVersionAlias"` - // The ARN of the image version created on the instance. - SagemakerImageVersionArn *string `pulumi:"sagemakerImageVersionArn"` +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement struct { + // Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. + IdleSettings *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings `pulumi:"idleSettings"` } -// SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecInput is an input type that accepts SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs and SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput values. -// You can construct a concrete instance of `SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecInput` via: +// SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementInput is an input type that accepts SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs and SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementInput` via: // -// SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs{...} -type SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecInput interface { +// SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{...} +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementInput interface { pulumi.Input - ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput - ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutputWithContext(context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput + ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput + ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput } -type SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs struct { - // The instance type. - InstanceType pulumi.StringPtrInput `pulumi:"instanceType"` - // The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource. - LifecycleConfigArn pulumi.StringPtrInput `pulumi:"lifecycleConfigArn"` - // The Amazon Resource Name (ARN) of the SageMaker image created on the instance. - SagemakerImageArn pulumi.StringPtrInput `pulumi:"sagemakerImageArn"` - // The SageMaker Image Version Alias. - SagemakerImageVersionAlias pulumi.StringPtrInput `pulumi:"sagemakerImageVersionAlias"` - // The ARN of the image version created on the instance. - SagemakerImageVersionArn pulumi.StringPtrInput `pulumi:"sagemakerImageVersionArn"` +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs struct { + // Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. + IdleSettings SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput `pulumi:"idleSettings"` } -func (SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec)(nil)).Elem() +func (SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (i SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput { - return i.ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutputWithContext(context.Background()) +func (i SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return i.ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(context.Background()) } -func (i SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput { - return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) +func (i SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) } -func (i SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { - return i.ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +func (i SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return i.ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) } -func (i SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput).ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx) +func (i SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput).ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx) } -// SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrInput is an input type that accepts SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs, SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtr and SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput values. -// You can construct a concrete instance of `SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrInput` via: +// SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput is an input type that accepts SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs, SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtr and SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput` via: // -// SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs{...} +// SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{...} // // or: // // nil -type SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrInput interface { +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput interface { pulumi.Input - ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput - ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput + ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput + ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput } -type spaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrType SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs +type spaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs -func SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtr(v *SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrInput { - return (*spaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrType)(v) +func SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtr(v *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput { + return (*spaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType)(v) } -func (*spaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec)(nil)).Elem() +func (*spaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (i *spaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrType) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { - return i.ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +func (i *spaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return i.ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) } -func (i *spaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrType) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput) +func (i *spaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) } -type SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput struct{ *pulumi.OutputState } +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput struct{ *pulumi.OutputState } -func (SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec)(nil)).Elem() +func (SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput { +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { return o } -func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput { +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { return o } -func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { - return o.ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) } -func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec) *SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec { +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement) *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement { return &v - }).(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput) + }).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) } -// The instance type. -func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) InstanceType() pulumi.StringPtrOutput { - return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec) *string { return v.InstanceType }).(pulumi.StringPtrOutput) +// Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) IdleSettings() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement) *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + return v.IdleSettings + }).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) } -// The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource. -func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) LifecycleConfigArn() pulumi.StringPtrOutput { - return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec) *string { - return v.LifecycleConfigArn - }).(pulumi.StringPtrOutput) +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput struct{ *pulumi.OutputState } + +func (SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() } -// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. -func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) SagemakerImageArn() pulumi.StringPtrOutput { - return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec) *string { return v.SagemakerImageArn }).(pulumi.StringPtrOutput) +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) Elem() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return o.ApplyT(func(v *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement { + if v != nil { + return *v + } + var ret SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement + return ret + }).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) +} + +// Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) IdleSettings() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement) *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + if v == nil { + return nil + } + return v.IdleSettings + }).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` +} + +// SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput is an input type that accepts SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs and SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput` via: +// +// SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput interface { + pulumi.Input + + ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput + ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput +} + +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` +} + +func (SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return i.ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Background()) +} + +func (i SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +func (i SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput).ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx) +} + +// SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput is an input type that accepts SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs, SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtr and SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput` via: +// +// SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +// +// or: +// +// nil +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput interface { + pulumi.Input + + ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput + ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput +} + +type spaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs + +func SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtr(v *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput { + return (*spaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType)(v) +} + +func (*spaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i *spaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i *spaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput struct{ *pulumi.OutputState } + +func (SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + return &v + }).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +type SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput struct{ *pulumi.OutputState } + +func (SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) Elem() SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o.ApplyT(func(v *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + if v != nil { + return *v + } + var ret SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings + return ret + }).(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +type SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec struct { + // The instance type. + InstanceType *string `pulumi:"instanceType"` + // The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource. + LifecycleConfigArn *string `pulumi:"lifecycleConfigArn"` + // The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + SagemakerImageArn *string `pulumi:"sagemakerImageArn"` + // The SageMaker Image Version Alias. + SagemakerImageVersionAlias *string `pulumi:"sagemakerImageVersionAlias"` + // The ARN of the image version created on the instance. + SagemakerImageVersionArn *string `pulumi:"sagemakerImageVersionArn"` +} + +// SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecInput is an input type that accepts SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs and SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecInput` via: +// +// SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs{...} +type SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecInput interface { + pulumi.Input + + ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput + ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutputWithContext(context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput +} + +type SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs struct { + // The instance type. + InstanceType pulumi.StringPtrInput `pulumi:"instanceType"` + // The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource. + LifecycleConfigArn pulumi.StringPtrInput `pulumi:"lifecycleConfigArn"` + // The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + SagemakerImageArn pulumi.StringPtrInput `pulumi:"sagemakerImageArn"` + // The SageMaker Image Version Alias. + SagemakerImageVersionAlias pulumi.StringPtrInput `pulumi:"sagemakerImageVersionAlias"` + // The ARN of the image version created on the instance. + SagemakerImageVersionArn pulumi.StringPtrInput `pulumi:"sagemakerImageVersionArn"` +} + +func (SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (i SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput { + return i.ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutputWithContext(context.Background()) +} + +func (i SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) +} + +func (i SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { + return i.ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (i SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput).ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx) +} + +// SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrInput is an input type that accepts SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs, SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtr and SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrInput` via: +// +// SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs{...} +// +// or: +// +// nil +type SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrInput interface { + pulumi.Input + + ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput + ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput +} + +type spaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrType SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs + +func SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtr(v *SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrInput { + return (*spaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrType)(v) +} + +func (*spaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (i *spaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrType) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { + return i.ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (i *spaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrType) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput) +} + +type SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput struct{ *pulumi.OutputState } + +func (SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput { + return o +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput { + return o +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput() SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { + return o.ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) ToSpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec) *SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec { + return &v + }).(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput) +} + +// The instance type. +func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) InstanceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec) *string { return v.InstanceType }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource. +func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) LifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec) *string { + return v.LifecycleConfigArn + }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. +func (o SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput) SagemakerImageArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec) *string { return v.SagemakerImageArn }).(pulumi.StringPtrOutput) } // The SageMaker Image Version Alias. @@ -26099,6 +28698,8 @@ func (o SpaceSpaceSettingsCustomFileSystemEfsFileSystemOutput) FileSystemId() pu } type SpaceSpaceSettingsJupyterLabAppSettings struct { + // Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. + AppLifecycleManagement *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement `pulumi:"appLifecycleManagement"` // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. CodeRepositories []SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository `pulumi:"codeRepositories"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. @@ -26117,6 +28718,8 @@ type SpaceSpaceSettingsJupyterLabAppSettingsInput interface { } type SpaceSpaceSettingsJupyterLabAppSettingsArgs struct { + // Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. + AppLifecycleManagement SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput `pulumi:"appLifecycleManagement"` // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. CodeRepositories SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. @@ -26200,6 +28803,13 @@ func (o SpaceSpaceSettingsJupyterLabAppSettingsOutput) ToSpaceSpaceSettingsJupyt }).(SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) } +// Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. +func (o SpaceSpaceSettingsJupyterLabAppSettingsOutput) AppLifecycleManagement() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v SpaceSpaceSettingsJupyterLabAppSettings) *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + return v.AppLifecycleManagement + }).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. func (o SpaceSpaceSettingsJupyterLabAppSettingsOutput) CodeRepositories() SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { return o.ApplyT(func(v SpaceSpaceSettingsJupyterLabAppSettings) []SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository { @@ -26238,6 +28848,16 @@ func (o SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) Elem() SpaceSpaceSetti }).(SpaceSpaceSettingsJupyterLabAppSettingsOutput) } +// Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. +func (o SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) AppLifecycleManagement() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v *SpaceSpaceSettingsJupyterLabAppSettings) *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + if v == nil { + return nil + } + return v.AppLifecycleManagement + }).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. func (o SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) CodeRepositories() SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { return o.ApplyT(func(v *SpaceSpaceSettingsJupyterLabAppSettings) []SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository { @@ -26258,51 +28878,329 @@ func (o SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput) DefaultResourceSpec() }).(SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput) } -type SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository struct { - // The URL of the Git repository. - RepositoryUrl string `pulumi:"repositoryUrl"` +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement struct { + // Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. + IdleSettings *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings `pulumi:"idleSettings"` } -// SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryInput is an input type that accepts SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs and SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput values. -// You can construct a concrete instance of `SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryInput` via: +// SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementInput is an input type that accepts SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs and SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementInput` via: // -// SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs{...} -type SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryInput interface { +// SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{...} +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementInput interface { pulumi.Input - ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput() SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput - ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(context.Context) SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput + ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput + ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput } -type SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs struct { - // The URL of the Git repository. - RepositoryUrl pulumi.StringInput `pulumi:"repositoryUrl"` +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs struct { + // Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. + IdleSettings SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput `pulumi:"idleSettings"` } -func (SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository)(nil)).Elem() +func (SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (i SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput() SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput { - return i.ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(context.Background()) +func (i SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return i.ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(context.Background()) } -func (i SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput { - return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput) +func (i SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) } -// SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput is an input type that accepts SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArray and SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput values. -// You can construct a concrete instance of `SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput` via: -// -// SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArray{ SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs{...} } -type SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput interface { - pulumi.Input - - ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput() SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput - ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutputWithContext(context.Context) SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput +func (i SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return i.ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) } -type SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArray []SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryInput +func (i SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput).ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx) +} + +// SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput is an input type that accepts SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs, SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtr and SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput` via: +// +// SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{...} +// +// or: +// +// nil +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput interface { + pulumi.Input + + ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput + ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput +} + +type spaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs + +func SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtr(v *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput { + return (*spaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType)(v) +} + +func (*spaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (i *spaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return i.ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (i *spaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput struct{ *pulumi.OutputState } + +func (SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return o +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return o +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement) *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + return &v + }).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +// Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) IdleSettings() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement) *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + return v.IdleSettings + }).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput struct{ *pulumi.OutputState } + +func (SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) Elem() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return o.ApplyT(func(v *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + if v != nil { + return *v + } + var ret SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement + return ret + }).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) +} + +// Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) IdleSettings() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement) *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + if v == nil { + return nil + } + return v.IdleSettings + }).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` +} + +// SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput is an input type that accepts SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs and SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput` via: +// +// SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput interface { + pulumi.Input + + ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput + ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput +} + +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` +} + +func (SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return i.ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Background()) +} + +func (i SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +func (i SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput).ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx) +} + +// SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput is an input type that accepts SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs, SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtr and SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput` via: +// +// SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +// +// or: +// +// nil +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput interface { + pulumi.Input + + ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput + ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput +} + +type spaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs + +func SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtr(v *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput { + return (*spaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType)(v) +} + +func (*spaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i *spaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i *spaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput struct{ *pulumi.OutputState } + +func (SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + return &v + }).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +type SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput struct{ *pulumi.OutputState } + +func (SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToSpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) Elem() SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o.ApplyT(func(v *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + if v != nil { + return *v + } + var ret SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings + return ret + }).(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +type SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository struct { + // The URL of the Git repository. + RepositoryUrl string `pulumi:"repositoryUrl"` +} + +// SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryInput is an input type that accepts SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs and SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryInput` via: +// +// SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs{...} +type SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryInput interface { + pulumi.Input + + ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput() SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput + ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(context.Context) SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput +} + +type SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs struct { + // The URL of the Git repository. + RepositoryUrl pulumi.StringInput `pulumi:"repositoryUrl"` +} + +func (SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository)(nil)).Elem() +} + +func (i SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput() SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput { + return i.ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(context.Background()) +} + +func (i SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs) ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutputWithContext(ctx context.Context) SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput) +} + +// SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput is an input type that accepts SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArray and SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput values. +// You can construct a concrete instance of `SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput` via: +// +// SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArray{ SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs{...} } +type SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput interface { + pulumi.Input + + ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput() SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput + ToSpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutputWithContext(context.Context) SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput +} + +type SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArray []SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryInput func (SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArray) ElementType() reflect.Type { return reflect.TypeOf((*[]SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository)(nil)).Elem() @@ -28000,6 +30898,8 @@ func (o SpaceSpaceSharingSettingsPtrOutput) SharingType() pulumi.StringPtrOutput } type UserProfileUserSettings struct { + // Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + AutoMountHomeEfs *string `pulumi:"autoMountHomeEfs"` // The Canvas app settings. See Canvas App Settings below. CanvasAppSettings *UserProfileUserSettingsCanvasAppSettings `pulumi:"canvasAppSettings"` // The Code Editor application settings. See Code Editor App Settings below. @@ -28048,6 +30948,8 @@ type UserProfileUserSettingsInput interface { } type UserProfileUserSettingsArgs struct { + // Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + AutoMountHomeEfs pulumi.StringPtrInput `pulumi:"autoMountHomeEfs"` // The Canvas app settings. See Canvas App Settings below. CanvasAppSettings UserProfileUserSettingsCanvasAppSettingsPtrInput `pulumi:"canvasAppSettings"` // The Code Editor application settings. See Code Editor App Settings below. @@ -28161,6 +31063,11 @@ func (o UserProfileUserSettingsOutput) ToUserProfileUserSettingsPtrOutputWithCon }).(UserProfileUserSettingsPtrOutput) } +// Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. +func (o UserProfileUserSettingsOutput) AutoMountHomeEfs() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserProfileUserSettings) *string { return v.AutoMountHomeEfs }).(pulumi.StringPtrOutput) +} + // The Canvas app settings. See Canvas App Settings below. func (o UserProfileUserSettingsOutput) CanvasAppSettings() UserProfileUserSettingsCanvasAppSettingsPtrOutput { return o.ApplyT(func(v UserProfileUserSettings) *UserProfileUserSettingsCanvasAppSettings { return v.CanvasAppSettings }).(UserProfileUserSettingsCanvasAppSettingsPtrOutput) @@ -28292,6 +31199,16 @@ func (o UserProfileUserSettingsPtrOutput) Elem() UserProfileUserSettingsOutput { }).(UserProfileUserSettingsOutput) } +// Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. +func (o UserProfileUserSettingsPtrOutput) AutoMountHomeEfs() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettings) *string { + if v == nil { + return nil + } + return v.AutoMountHomeEfs + }).(pulumi.StringPtrOutput) +} + // The Canvas app settings. See Canvas App Settings below. func (o UserProfileUserSettingsPtrOutput) CanvasAppSettings() UserProfileUserSettingsCanvasAppSettingsPtrOutput { return o.ApplyT(func(v *UserProfileUserSettings) *UserProfileUserSettingsCanvasAppSettings { @@ -28465,7 +31382,9 @@ func (o UserProfileUserSettingsPtrOutput) TensorBoardAppSettings() UserProfileUs type UserProfileUserSettingsCanvasAppSettings struct { // The model deployment settings for the SageMaker Canvas application. See Direct Deploy Settings below. DirectDeploySettings *UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings `pulumi:"directDeploySettings"` - GenerativeAiSettings *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings `pulumi:"generativeAiSettings"` + // The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. + EmrServerlessSettings *UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings `pulumi:"emrServerlessSettings"` + GenerativeAiSettings *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings `pulumi:"generativeAiSettings"` // The settings for connecting to an external data source with OAuth. See Identity Provider OAuth Settings below. IdentityProviderOauthSettings []UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSetting `pulumi:"identityProviderOauthSettings"` // The settings for document querying. See Kendra Settings below. @@ -28492,7 +31411,9 @@ type UserProfileUserSettingsCanvasAppSettingsInput interface { type UserProfileUserSettingsCanvasAppSettingsArgs struct { // The model deployment settings for the SageMaker Canvas application. See Direct Deploy Settings below. DirectDeploySettings UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsPtrInput `pulumi:"directDeploySettings"` - GenerativeAiSettings UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput `pulumi:"generativeAiSettings"` + // The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. + EmrServerlessSettings UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput `pulumi:"emrServerlessSettings"` + GenerativeAiSettings UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput `pulumi:"generativeAiSettings"` // The settings for connecting to an external data source with OAuth. See Identity Provider OAuth Settings below. IdentityProviderOauthSettings UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArrayInput `pulumi:"identityProviderOauthSettings"` // The settings for document querying. See Kendra Settings below. @@ -28589,6 +31510,13 @@ func (o UserProfileUserSettingsCanvasAppSettingsOutput) DirectDeploySettings() U }).(UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsPtrOutput) } +// The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. +func (o UserProfileUserSettingsCanvasAppSettingsOutput) EmrServerlessSettings() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCanvasAppSettings) *UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings { + return v.EmrServerlessSettings + }).(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) +} + func (o UserProfileUserSettingsCanvasAppSettingsOutput) GenerativeAiSettings() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { return o.ApplyT(func(v UserProfileUserSettingsCanvasAppSettings) *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings { return v.GenerativeAiSettings @@ -28664,6 +31592,16 @@ func (o UserProfileUserSettingsCanvasAppSettingsPtrOutput) DirectDeploySettings( }).(UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsPtrOutput) } +// The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. +func (o UserProfileUserSettingsCanvasAppSettingsPtrOutput) EmrServerlessSettings() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCanvasAppSettings) *UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings { + if v == nil { + return nil + } + return v.EmrServerlessSettings + }).(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) +} + func (o UserProfileUserSettingsCanvasAppSettingsPtrOutput) GenerativeAiSettings() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { return o.ApplyT(func(v *UserProfileUserSettingsCanvasAppSettings) *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings { if v == nil { @@ -28860,142 +31798,300 @@ func (o UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsPtrOutput) S }).(pulumi.StringPtrOutput) } -type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings struct { - AmazonBedrockRoleArn *string `pulumi:"amazonBedrockRoleArn"` +type UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings struct { + // The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + ExecutionRoleArn *string `pulumi:"executionRoleArn"` + // Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + Status *string `pulumi:"status"` } -// UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsInput is an input type that accepts UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs and UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput values. -// You can construct a concrete instance of `UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsInput` via: +// UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsInput is an input type that accepts UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs and UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsInput` via: // -// UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs{...} -type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsInput interface { +// UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs{...} +type UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsInput interface { pulumi.Input - ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput - ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutputWithContext(context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput + ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput + ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutputWithContext(context.Context) UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput } -type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs struct { - AmazonBedrockRoleArn pulumi.StringPtrInput `pulumi:"amazonBedrockRoleArn"` +type UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs struct { + // The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + ExecutionRoleArn pulumi.StringPtrInput `pulumi:"executionRoleArn"` + // Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + Status pulumi.StringPtrInput `pulumi:"status"` } -func (UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings)(nil)).Elem() +func (UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings)(nil)).Elem() } -func (i UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput { - return i.ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutputWithContext(context.Background()) +func (i UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput { + return i.ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutputWithContext(context.Background()) } -func (i UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput { - return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) +func (i UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) } -func (i UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { - return i.ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(context.Background()) +func (i UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return i.ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(context.Background()) } -func (i UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput).ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(ctx) +func (i UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput).ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(ctx) } -// UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput is an input type that accepts UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs, UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtr and UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput values. -// You can construct a concrete instance of `UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput` via: +// UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput is an input type that accepts UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs, UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtr and UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput` via: // -// UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs{...} +// UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs{...} // // or: // // nil -type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput interface { +type UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput interface { pulumi.Input - ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput - ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput + ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput + ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(context.Context) UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput } -type userProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrType UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs +type userProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrType UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs -func UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtr(v *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput { - return (*userProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrType)(v) +func UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtr(v *UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs) UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput { + return (*userProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrType)(v) } -func (*userProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings)(nil)).Elem() +func (*userProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings)(nil)).Elem() } -func (i *userProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrType) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { - return i.ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(context.Background()) +func (i *userProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrType) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return i.ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(context.Background()) } -func (i *userProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrType) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) +func (i *userProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrType) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) } -type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput struct{ *pulumi.OutputState } +type UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput struct{ *pulumi.OutputState } -func (UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings)(nil)).Elem() +func (UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings)(nil)).Elem() } -func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput { +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput { return o } -func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput { +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput { return o } -func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { - return o.ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(context.Background()) +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return o.ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(context.Background()) } -func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings) *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings { +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings) *UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings { return &v - }).(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) + }).(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) } -func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) AmazonBedrockRoleArn() pulumi.StringPtrOutput { - return o.ApplyT(func(v UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings) *string { - return v.AmazonBedrockRoleArn +// The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) ExecutionRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings) *string { + return v.ExecutionRoleArn }).(pulumi.StringPtrOutput) } -type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput struct{ *pulumi.OutputState } +// Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings) *string { return v.Status }).(pulumi.StringPtrOutput) +} -func (UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings)(nil)).Elem() +type UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings)(nil)).Elem() } -func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { return o } -func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) ToUserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput { return o } -func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) Elem() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput { - return o.ApplyT(func(v *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings { +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) Elem() UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings) UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings { if v != nil { return *v } - var ret UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings + var ret UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings return ret - }).(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) + }).(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput) } -func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) AmazonBedrockRoleArn() pulumi.StringPtrOutput { - return o.ApplyT(func(v *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings) *string { +// The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) ExecutionRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings) *string { if v == nil { return nil } - return v.AmazonBedrockRoleArn + return v.ExecutionRoleArn }).(pulumi.StringPtrOutput) } -type UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSetting struct { +// Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. +func (o UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings) *string { + if v == nil { + return nil + } + return v.Status + }).(pulumi.StringPtrOutput) +} + +type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings struct { + AmazonBedrockRoleArn *string `pulumi:"amazonBedrockRoleArn"` +} + +// UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsInput is an input type that accepts UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs and UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsInput` via: +// +// UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs{...} +type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsInput interface { + pulumi.Input + + ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput + ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutputWithContext(context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput +} + +type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs struct { + AmazonBedrockRoleArn pulumi.StringPtrInput `pulumi:"amazonBedrockRoleArn"` +} + +func (UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings)(nil)).Elem() +} + +func (i UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput { + return i.ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) +} + +func (i UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { + return i.ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput).ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(ctx) +} + +// UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput is an input type that accepts UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs, UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtr and UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput` via: +// +// UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs{...} +// +// or: +// +// nil +type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput interface { + pulumi.Input + + ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput + ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput +} + +type userProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrType UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs + +func UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtr(v *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput { + return (*userProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrType)(v) +} + +func (*userProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings)(nil)).Elem() +} + +func (i *userProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrType) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { + return i.ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(context.Background()) +} + +func (i *userProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrType) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) +} + +type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings)(nil)).Elem() +} + +func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput { + return o +} + +func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput { + return o +} + +func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { + return o.ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(context.Background()) +} + +func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings) *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings { + return &v + }).(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) +} + +func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) AmazonBedrockRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings) *string { + return v.AmazonBedrockRoleArn + }).(pulumi.StringPtrOutput) +} + +type UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings)(nil)).Elem() +} + +func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { + return o +} + +func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) ToUserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput { + return o +} + +func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) Elem() UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings) UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings { + if v != nil { + return *v + } + var ret UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings + return ret + }).(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput) +} + +func (o UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput) AmazonBedrockRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings) *string { + if v == nil { + return nil + } + return v.AmazonBedrockRoleArn + }).(pulumi.StringPtrOutput) +} + +type UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSetting struct { // The name of the data source that you're connecting to. Canvas currently supports OAuth for Snowflake and Salesforce Data Cloud. Valid values are `SalesforceGenie` and `Snowflake`. DataSourceName *string `pulumi:"dataSourceName"` // The ARN of an Amazon Web Services Secrets Manager secret that stores the credentials from your identity provider, such as the client ID and secret, authorization URL, and token URL. @@ -29724,6 +32820,10 @@ func (o UserProfileUserSettingsCanvasAppSettingsWorkspaceSettingsPtrOutput) S3Km } type UserProfileUserSettingsCodeEditorAppSettings struct { + // Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + AppLifecycleManagement *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement `pulumi:"appLifecycleManagement"` + // The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + BuiltInLifecycleConfigArn *string `pulumi:"builtInLifecycleConfigArn"` // A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. CustomImages []UserProfileUserSettingsCodeEditorAppSettingsCustomImage `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. @@ -29744,6 +32844,10 @@ type UserProfileUserSettingsCodeEditorAppSettingsInput interface { } type UserProfileUserSettingsCodeEditorAppSettingsArgs struct { + // Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + AppLifecycleManagement UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput `pulumi:"appLifecycleManagement"` + // The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + BuiltInLifecycleConfigArn pulumi.StringPtrInput `pulumi:"builtInLifecycleConfigArn"` // A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. CustomImages UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayInput `pulumi:"customImages"` // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. @@ -29829,6 +32933,18 @@ func (o UserProfileUserSettingsCodeEditorAppSettingsOutput) ToUserProfileUserSet }).(UserProfileUserSettingsCodeEditorAppSettingsPtrOutput) } +// Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. +func (o UserProfileUserSettingsCodeEditorAppSettingsOutput) AppLifecycleManagement() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettings) *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + return v.AppLifecycleManagement + }).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) +} + +// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. +func (o UserProfileUserSettingsCodeEditorAppSettingsOutput) BuiltInLifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettings) *string { return v.BuiltInLifecycleConfigArn }).(pulumi.StringPtrOutput) +} + // A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. func (o UserProfileUserSettingsCodeEditorAppSettingsOutput) CustomImages() UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettings) []UserProfileUserSettingsCodeEditorAppSettingsCustomImage { @@ -29872,6 +32988,26 @@ func (o UserProfileUserSettingsCodeEditorAppSettingsPtrOutput) Elem() UserProfil }).(UserProfileUserSettingsCodeEditorAppSettingsOutput) } +// Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. +func (o UserProfileUserSettingsCodeEditorAppSettingsPtrOutput) AppLifecycleManagement() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCodeEditorAppSettings) *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + if v == nil { + return nil + } + return v.AppLifecycleManagement + }).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) +} + +// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. +func (o UserProfileUserSettingsCodeEditorAppSettingsPtrOutput) BuiltInLifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCodeEditorAppSettings) *string { + if v == nil { + return nil + } + return v.BuiltInLifecycleConfigArn + }).(pulumi.StringPtrOutput) +} + // A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. func (o UserProfileUserSettingsCodeEditorAppSettingsPtrOutput) CustomImages() UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { return o.ApplyT(func(v *UserProfileUserSettingsCodeEditorAppSettings) []UserProfileUserSettingsCodeEditorAppSettingsCustomImage { @@ -29902,142 +33038,483 @@ func (o UserProfileUserSettingsCodeEditorAppSettingsPtrOutput) LifecycleConfigAr }).(pulumi.StringArrayOutput) } -type UserProfileUserSettingsCodeEditorAppSettingsCustomImage struct { - // The name of the App Image Config. - AppImageConfigName string `pulumi:"appImageConfigName"` - // The name of the Custom Image. - ImageName string `pulumi:"imageName"` - // The version number of the Custom Image. - ImageVersionNumber *int `pulumi:"imageVersionNumber"` +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement struct { + // Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + IdleSettings *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings `pulumi:"idleSettings"` } -// UserProfileUserSettingsCodeEditorAppSettingsCustomImageInput is an input type that accepts UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs and UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput values. -// You can construct a concrete instance of `UserProfileUserSettingsCodeEditorAppSettingsCustomImageInput` via: +// UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementInput is an input type that accepts UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs and UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementInput` via: // -// UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs{...} -type UserProfileUserSettingsCodeEditorAppSettingsCustomImageInput interface { +// UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{...} +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementInput interface { pulumi.Input - ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput - ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutputWithContext(context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput + ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput + ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput } -type UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs struct { - // The name of the App Image Config. - AppImageConfigName pulumi.StringInput `pulumi:"appImageConfigName"` - // The name of the Custom Image. - ImageName pulumi.StringInput `pulumi:"imageName"` - // The version number of the Custom Image. - ImageVersionNumber pulumi.IntPtrInput `pulumi:"imageVersionNumber"` +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs struct { + // Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + IdleSettings UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput `pulumi:"idleSettings"` } -func (UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs) ElementType() reflect.Type { - return reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsCustomImage)(nil)).Elem() +func (UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (i UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput { - return i.ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutputWithContext(context.Background()) +func (i UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return i.ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(context.Background()) } -func (i UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput { - return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) +func (i UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) } -// UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayInput is an input type that accepts UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray and UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput values. -// You can construct a concrete instance of `UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayInput` via: +func (i UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return i.ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput).ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx) +} + +// UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput is an input type that accepts UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs, UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtr and UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput` via: // -// UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray{ UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs{...} } -type UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayInput interface { +// UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{...} +// +// or: +// +// nil +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput interface { pulumi.Input - ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput - ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutputWithContext(context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput + ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput + ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput } -type UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray []UserProfileUserSettingsCodeEditorAppSettingsCustomImageInput +type userProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs -func (UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]UserProfileUserSettingsCodeEditorAppSettingsCustomImage)(nil)).Elem() +func UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtr(v *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput { + return (*userProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType)(v) } -func (i UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { - return i.ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutputWithContext(context.Background()) +func (*userProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (i UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) +func (i *userProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return i.ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) } -type UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput struct{ *pulumi.OutputState } +func (i *userProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrType) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) +} -func (UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) ElementType() reflect.Type { - return reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsCustomImage)(nil)).Elem() +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput { +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { return o } -func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput { +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { return o } -// The name of the App Image Config. -func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) AppImageConfigName() pulumi.StringOutput { - return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsCustomImage) string { return v.AppImageConfigName }).(pulumi.StringOutput) +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) } -// The name of the Custom Image. -func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) ImageName() pulumi.StringOutput { - return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsCustomImage) string { return v.ImageName }).(pulumi.StringOutput) +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement) *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + return &v + }).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) } -// The version number of the Custom Image. -func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) ImageVersionNumber() pulumi.IntPtrOutput { - return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsCustomImage) *int { return v.ImageVersionNumber }).(pulumi.IntPtrOutput) +// Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) IdleSettings() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement) *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + return v.IdleSettings + }).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) } -type UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput struct{ *pulumi.OutputState } +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput struct{ *pulumi.OutputState } -func (UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]UserProfileUserSettingsCodeEditorAppSettingsCustomImage)(nil)).Elem() +func (UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { return o } -func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput { return o } -func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) Index(i pulumi.IntInput) UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) UserProfileUserSettingsCodeEditorAppSettingsCustomImage { - return vs[0].([]UserProfileUserSettingsCodeEditorAppSettingsCustomImage)[vs[1].(int)] - }).(UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) Elem() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + if v != nil { + return *v + } + var ret UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement + return ret + }).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput) } -type UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpec struct { - // The instance type that the image version runs on.. For valid values see [SageMaker Instance Types](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-available-instance-types.html). - InstanceType *string `pulumi:"instanceType"` - // The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource. - LifecycleConfigArn *string `pulumi:"lifecycleConfigArn"` - // The ARN of the SageMaker image that the image version belongs to. - SagemakerImageArn *string `pulumi:"sagemakerImageArn"` - // The SageMaker Image Version Alias. - SagemakerImageVersionAlias *string `pulumi:"sagemakerImageVersionAlias"` - // The ARN of the image version created on the instance. - SagemakerImageVersionArn *string `pulumi:"sagemakerImageVersionArn"` +// Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput) IdleSettings() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement) *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + if v == nil { + return nil + } + return v.IdleSettings + }).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) } -// UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecInput is an input type that accepts UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs and UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecOutput values. -// You can construct a concrete instance of `UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecInput` via: +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` + // Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + LifecycleManagement *string `pulumi:"lifecycleManagement"` + // The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MaxIdleTimeoutInMinutes *int `pulumi:"maxIdleTimeoutInMinutes"` + // The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MinIdleTimeoutInMinutes *int `pulumi:"minIdleTimeoutInMinutes"` +} + +// UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput is an input type that accepts UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs and UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput` via: // -// UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs{...} -type UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecInput interface { +// UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput interface { pulumi.Input - ToUserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecOutput() UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecOutput + ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput + ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput +} + +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` + // Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + LifecycleManagement pulumi.StringPtrInput `pulumi:"lifecycleManagement"` + // The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MaxIdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"maxIdleTimeoutInMinutes"` + // The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MinIdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"minIdleTimeoutInMinutes"` +} + +func (UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return i.ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +func (i UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput).ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx) +} + +// UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput is an input type that accepts UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs, UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtr and UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput` via: +// +// UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +// +// or: +// +// nil +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput interface { + pulumi.Input + + ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput + ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput +} + +type userProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs + +func UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtr(v *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput { + return (*userProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType)(v) +} + +func (*userProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (i *userProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (i *userProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + return &v + }).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) LifecycleManagement() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *string { + return v.LifecycleManagement + }).(pulumi.StringPtrOutput) +} + +// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) MaxIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.MaxIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) MinIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.MinIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +type UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToUserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) Elem() UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + if v != nil { + return *v + } + var ret UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings + return ret + }).(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput) +} + +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) LifecycleManagement() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *string { + if v == nil { + return nil + } + return v.LifecycleManagement + }).(pulumi.StringPtrOutput) +} + +// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) MaxIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.MaxIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) MinIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings) *int { + if v == nil { + return nil + } + return v.MinIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) +} + +type UserProfileUserSettingsCodeEditorAppSettingsCustomImage struct { + // The name of the App Image Config. + AppImageConfigName string `pulumi:"appImageConfigName"` + // The name of the Custom Image. + ImageName string `pulumi:"imageName"` + // The version number of the Custom Image. + ImageVersionNumber *int `pulumi:"imageVersionNumber"` +} + +// UserProfileUserSettingsCodeEditorAppSettingsCustomImageInput is an input type that accepts UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs and UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCodeEditorAppSettingsCustomImageInput` via: +// +// UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs{...} +type UserProfileUserSettingsCodeEditorAppSettingsCustomImageInput interface { + pulumi.Input + + ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput + ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutputWithContext(context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput +} + +type UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs struct { + // The name of the App Image Config. + AppImageConfigName pulumi.StringInput `pulumi:"appImageConfigName"` + // The name of the Custom Image. + ImageName pulumi.StringInput `pulumi:"imageName"` + // The version number of the Custom Image. + ImageVersionNumber pulumi.IntPtrInput `pulumi:"imageVersionNumber"` +} + +func (UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsCustomImage)(nil)).Elem() +} + +func (i UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput { + return i.ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) +} + +// UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayInput is an input type that accepts UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray and UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayInput` via: +// +// UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray{ UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs{...} } +type UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayInput interface { + pulumi.Input + + ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput + ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutputWithContext(context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput +} + +type UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray []UserProfileUserSettingsCodeEditorAppSettingsCustomImageInput + +func (UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]UserProfileUserSettingsCodeEditorAppSettingsCustomImage)(nil)).Elem() +} + +func (i UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { + return i.ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) +} + +type UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsCustomImage)(nil)).Elem() +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput { + return o +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput { + return o +} + +// The name of the App Image Config. +func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) AppImageConfigName() pulumi.StringOutput { + return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsCustomImage) string { return v.AppImageConfigName }).(pulumi.StringOutput) +} + +// The name of the Custom Image. +func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) ImageName() pulumi.StringOutput { + return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsCustomImage) string { return v.ImageName }).(pulumi.StringOutput) +} + +// The version number of the Custom Image. +func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) ImageVersionNumber() pulumi.IntPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsCodeEditorAppSettingsCustomImage) *int { return v.ImageVersionNumber }).(pulumi.IntPtrOutput) +} + +type UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]UserProfileUserSettingsCodeEditorAppSettingsCustomImage)(nil)).Elem() +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput() UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { + return o +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) ToUserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutputWithContext(ctx context.Context) UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput { + return o +} + +func (o UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput) Index(i pulumi.IntInput) UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) UserProfileUserSettingsCodeEditorAppSettingsCustomImage { + return vs[0].([]UserProfileUserSettingsCodeEditorAppSettingsCustomImage)[vs[1].(int)] + }).(UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput) +} + +type UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpec struct { + // The instance type that the image version runs on.. For valid values see [SageMaker Instance Types](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-available-instance-types.html). + InstanceType *string `pulumi:"instanceType"` + // The Amazon Resource Name (ARN) of the Lifecycle Configuration attached to the Resource. + LifecycleConfigArn *string `pulumi:"lifecycleConfigArn"` + // The ARN of the SageMaker image that the image version belongs to. + SagemakerImageArn *string `pulumi:"sagemakerImageArn"` + // The SageMaker Image Version Alias. + SagemakerImageVersionAlias *string `pulumi:"sagemakerImageVersionAlias"` + // The ARN of the image version created on the instance. + SagemakerImageVersionArn *string `pulumi:"sagemakerImageVersionArn"` +} + +// UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecInput is an input type that accepts UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs and UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecInput` via: +// +// UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs{...} +type UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecInput interface { + pulumi.Input + + ToUserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecOutput() UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecOutput ToUserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecOutputWithContext(context.Context) UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecOutput } @@ -30493,308 +33970,710 @@ func (i UserProfileUserSettingsCustomPosixUserConfigArgs) ToUserProfileUserSetti // UserProfileUserSettingsCustomPosixUserConfigPtrInput is an input type that accepts UserProfileUserSettingsCustomPosixUserConfigArgs, UserProfileUserSettingsCustomPosixUserConfigPtr and UserProfileUserSettingsCustomPosixUserConfigPtrOutput values. // You can construct a concrete instance of `UserProfileUserSettingsCustomPosixUserConfigPtrInput` via: // -// UserProfileUserSettingsCustomPosixUserConfigArgs{...} +// UserProfileUserSettingsCustomPosixUserConfigArgs{...} +// +// or: +// +// nil +type UserProfileUserSettingsCustomPosixUserConfigPtrInput interface { + pulumi.Input + + ToUserProfileUserSettingsCustomPosixUserConfigPtrOutput() UserProfileUserSettingsCustomPosixUserConfigPtrOutput + ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(context.Context) UserProfileUserSettingsCustomPosixUserConfigPtrOutput +} + +type userProfileUserSettingsCustomPosixUserConfigPtrType UserProfileUserSettingsCustomPosixUserConfigArgs + +func UserProfileUserSettingsCustomPosixUserConfigPtr(v *UserProfileUserSettingsCustomPosixUserConfigArgs) UserProfileUserSettingsCustomPosixUserConfigPtrInput { + return (*userProfileUserSettingsCustomPosixUserConfigPtrType)(v) +} + +func (*userProfileUserSettingsCustomPosixUserConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsCustomPosixUserConfig)(nil)).Elem() +} + +func (i *userProfileUserSettingsCustomPosixUserConfigPtrType) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutput() UserProfileUserSettingsCustomPosixUserConfigPtrOutput { + return i.ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(context.Background()) +} + +func (i *userProfileUserSettingsCustomPosixUserConfigPtrType) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCustomPosixUserConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCustomPosixUserConfigPtrOutput) +} + +type UserProfileUserSettingsCustomPosixUserConfigOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsCustomPosixUserConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsCustomPosixUserConfig)(nil)).Elem() +} + +func (o UserProfileUserSettingsCustomPosixUserConfigOutput) ToUserProfileUserSettingsCustomPosixUserConfigOutput() UserProfileUserSettingsCustomPosixUserConfigOutput { + return o +} + +func (o UserProfileUserSettingsCustomPosixUserConfigOutput) ToUserProfileUserSettingsCustomPosixUserConfigOutputWithContext(ctx context.Context) UserProfileUserSettingsCustomPosixUserConfigOutput { + return o +} + +func (o UserProfileUserSettingsCustomPosixUserConfigOutput) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutput() UserProfileUserSettingsCustomPosixUserConfigPtrOutput { + return o.ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(context.Background()) +} + +func (o UserProfileUserSettingsCustomPosixUserConfigOutput) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCustomPosixUserConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsCustomPosixUserConfig) *UserProfileUserSettingsCustomPosixUserConfig { + return &v + }).(UserProfileUserSettingsCustomPosixUserConfigPtrOutput) +} + +// The POSIX group ID. +func (o UserProfileUserSettingsCustomPosixUserConfigOutput) Gid() pulumi.IntOutput { + return o.ApplyT(func(v UserProfileUserSettingsCustomPosixUserConfig) int { return v.Gid }).(pulumi.IntOutput) +} + +// The POSIX user ID. +func (o UserProfileUserSettingsCustomPosixUserConfigOutput) Uid() pulumi.IntOutput { + return o.ApplyT(func(v UserProfileUserSettingsCustomPosixUserConfig) int { return v.Uid }).(pulumi.IntOutput) +} + +type UserProfileUserSettingsCustomPosixUserConfigPtrOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsCustomPosixUserConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsCustomPosixUserConfig)(nil)).Elem() +} + +func (o UserProfileUserSettingsCustomPosixUserConfigPtrOutput) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutput() UserProfileUserSettingsCustomPosixUserConfigPtrOutput { + return o +} + +func (o UserProfileUserSettingsCustomPosixUserConfigPtrOutput) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCustomPosixUserConfigPtrOutput { + return o +} + +func (o UserProfileUserSettingsCustomPosixUserConfigPtrOutput) Elem() UserProfileUserSettingsCustomPosixUserConfigOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCustomPosixUserConfig) UserProfileUserSettingsCustomPosixUserConfig { + if v != nil { + return *v + } + var ret UserProfileUserSettingsCustomPosixUserConfig + return ret + }).(UserProfileUserSettingsCustomPosixUserConfigOutput) +} + +// The POSIX group ID. +func (o UserProfileUserSettingsCustomPosixUserConfigPtrOutput) Gid() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCustomPosixUserConfig) *int { + if v == nil { + return nil + } + return &v.Gid + }).(pulumi.IntPtrOutput) +} + +// The POSIX user ID. +func (o UserProfileUserSettingsCustomPosixUserConfigPtrOutput) Uid() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsCustomPosixUserConfig) *int { + if v == nil { + return nil + } + return &v.Uid + }).(pulumi.IntPtrOutput) +} + +type UserProfileUserSettingsJupyterLabAppSettings struct { + // Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + AppLifecycleManagement *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement `pulumi:"appLifecycleManagement"` + // The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + BuiltInLifecycleConfigArn *string `pulumi:"builtInLifecycleConfigArn"` + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + CodeRepositories []UserProfileUserSettingsJupyterLabAppSettingsCodeRepository `pulumi:"codeRepositories"` + CustomImages []UserProfileUserSettingsJupyterLabAppSettingsCustomImage `pulumi:"customImages"` + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + DefaultResourceSpec *UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` + // The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + EmrSettings *UserProfileUserSettingsJupyterLabAppSettingsEmrSettings `pulumi:"emrSettings"` + // The Amazon Resource Name (ARN) of the Lifecycle Configurations. + LifecycleConfigArns []string `pulumi:"lifecycleConfigArns"` +} + +// UserProfileUserSettingsJupyterLabAppSettingsInput is an input type that accepts UserProfileUserSettingsJupyterLabAppSettingsArgs and UserProfileUserSettingsJupyterLabAppSettingsOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsJupyterLabAppSettingsInput` via: +// +// UserProfileUserSettingsJupyterLabAppSettingsArgs{...} +type UserProfileUserSettingsJupyterLabAppSettingsInput interface { + pulumi.Input + + ToUserProfileUserSettingsJupyterLabAppSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsOutput + ToUserProfileUserSettingsJupyterLabAppSettingsOutputWithContext(context.Context) UserProfileUserSettingsJupyterLabAppSettingsOutput +} + +type UserProfileUserSettingsJupyterLabAppSettingsArgs struct { + // Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + AppLifecycleManagement UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput `pulumi:"appLifecycleManagement"` + // The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + BuiltInLifecycleConfigArn pulumi.StringPtrInput `pulumi:"builtInLifecycleConfigArn"` + // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. + CodeRepositories UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` + CustomImages UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayInput `pulumi:"customImages"` + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + DefaultResourceSpec UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrInput `pulumi:"defaultResourceSpec"` + // The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + EmrSettings UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput `pulumi:"emrSettings"` + // The Amazon Resource Name (ARN) of the Lifecycle Configurations. + LifecycleConfigArns pulumi.StringArrayInput `pulumi:"lifecycleConfigArns"` +} + +func (UserProfileUserSettingsJupyterLabAppSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettings)(nil)).Elem() +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsOutput) +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsOutput).ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(ctx) +} + +// UserProfileUserSettingsJupyterLabAppSettingsPtrInput is an input type that accepts UserProfileUserSettingsJupyterLabAppSettingsArgs, UserProfileUserSettingsJupyterLabAppSettingsPtr and UserProfileUserSettingsJupyterLabAppSettingsPtrOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsJupyterLabAppSettingsPtrInput` via: +// +// UserProfileUserSettingsJupyterLabAppSettingsArgs{...} +// +// or: +// +// nil +type UserProfileUserSettingsJupyterLabAppSettingsPtrInput interface { + pulumi.Input + + ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsPtrOutput + ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(context.Context) UserProfileUserSettingsJupyterLabAppSettingsPtrOutput +} + +type userProfileUserSettingsJupyterLabAppSettingsPtrType UserProfileUserSettingsJupyterLabAppSettingsArgs + +func UserProfileUserSettingsJupyterLabAppSettingsPtr(v *UserProfileUserSettingsJupyterLabAppSettingsArgs) UserProfileUserSettingsJupyterLabAppSettingsPtrInput { + return (*userProfileUserSettingsJupyterLabAppSettingsPtrType)(v) +} + +func (*userProfileUserSettingsJupyterLabAppSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsJupyterLabAppSettings)(nil)).Elem() +} + +func (i *userProfileUserSettingsJupyterLabAppSettingsPtrType) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i *userProfileUserSettingsJupyterLabAppSettingsPtrType) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) +} + +type UserProfileUserSettingsJupyterLabAppSettingsOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsJupyterLabAppSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettings)(nil)).Elem() +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsOutput { + return o +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsOutput { + return o +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { + return o.ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(context.Background()) +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsJupyterLabAppSettings) *UserProfileUserSettingsJupyterLabAppSettings { + return &v + }).(UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) +} + +// Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) AppLifecycleManagement() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + return v.AppLifecycleManagement + }).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) BuiltInLifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) *string { return v.BuiltInLifecycleConfigArn }).(pulumi.StringPtrOutput) +} + +// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) CodeRepositories() UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) []UserProfileUserSettingsJupyterLabAppSettingsCodeRepository { + return v.CodeRepositories + }).(UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput) +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) CustomImages() UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) []UserProfileUserSettingsJupyterLabAppSettingsCustomImage { + return v.CustomImages + }).(UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayOutput) +} + +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) DefaultResourceSpec() UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) *UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec { + return v.DefaultResourceSpec + }).(UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput) +} + +// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) EmrSettings() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) *UserProfileUserSettingsJupyterLabAppSettingsEmrSettings { + return v.EmrSettings + }).(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) +} + +// The Amazon Resource Name (ARN) of the Lifecycle Configurations. +func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) LifecycleConfigArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) []string { return v.LifecycleConfigArns }).(pulumi.StringArrayOutput) +} + +type UserProfileUserSettingsJupyterLabAppSettingsPtrOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsJupyterLabAppSettings)(nil)).Elem() +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { + return o +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { + return o +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) Elem() UserProfileUserSettingsJupyterLabAppSettingsOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) UserProfileUserSettingsJupyterLabAppSettings { + if v != nil { + return *v + } + var ret UserProfileUserSettingsJupyterLabAppSettings + return ret + }).(UserProfileUserSettingsJupyterLabAppSettingsOutput) +} + +// Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. +func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) AppLifecycleManagement() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + if v == nil { + return nil + } + return v.AppLifecycleManagement + }).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) +} + +// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. +func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) BuiltInLifecycleConfigArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) *string { + if v == nil { + return nil + } + return v.BuiltInLifecycleConfigArn + }).(pulumi.StringPtrOutput) +} + +// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. +func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) CodeRepositories() UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) []UserProfileUserSettingsJupyterLabAppSettingsCodeRepository { + if v == nil { + return nil + } + return v.CodeRepositories + }).(UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput) +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) CustomImages() UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) []UserProfileUserSettingsJupyterLabAppSettingsCustomImage { + if v == nil { + return nil + } + return v.CustomImages + }).(UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayOutput) +} + +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) DefaultResourceSpec() UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) *UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec { + if v == nil { + return nil + } + return v.DefaultResourceSpec + }).(UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput) +} + +// The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. +func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) EmrSettings() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) *UserProfileUserSettingsJupyterLabAppSettingsEmrSettings { + if v == nil { + return nil + } + return v.EmrSettings + }).(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) +} + +// The Amazon Resource Name (ARN) of the Lifecycle Configurations. +func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) LifecycleConfigArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) []string { + if v == nil { + return nil + } + return v.LifecycleConfigArns + }).(pulumi.StringArrayOutput) +} + +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement struct { + // Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + IdleSettings *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings `pulumi:"idleSettings"` +} + +// UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementInput is an input type that accepts UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs and UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementInput` via: +// +// UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{...} +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementInput interface { + pulumi.Input + + ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput + ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput +} + +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs struct { + // Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + IdleSettings UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput `pulumi:"idleSettings"` +} + +func (UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput).ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx) +} + +// UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput is an input type that accepts UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs, UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtr and UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput` via: +// +// UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{...} // // or: // // nil -type UserProfileUserSettingsCustomPosixUserConfigPtrInput interface { +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput interface { pulumi.Input - ToUserProfileUserSettingsCustomPosixUserConfigPtrOutput() UserProfileUserSettingsCustomPosixUserConfigPtrOutput - ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(context.Context) UserProfileUserSettingsCustomPosixUserConfigPtrOutput + ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput + ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput } -type userProfileUserSettingsCustomPosixUserConfigPtrType UserProfileUserSettingsCustomPosixUserConfigArgs +type userProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs -func UserProfileUserSettingsCustomPosixUserConfigPtr(v *UserProfileUserSettingsCustomPosixUserConfigArgs) UserProfileUserSettingsCustomPosixUserConfigPtrInput { - return (*userProfileUserSettingsCustomPosixUserConfigPtrType)(v) +func UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtr(v *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput { + return (*userProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType)(v) } -func (*userProfileUserSettingsCustomPosixUserConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**UserProfileUserSettingsCustomPosixUserConfig)(nil)).Elem() +func (*userProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (i *userProfileUserSettingsCustomPosixUserConfigPtrType) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutput() UserProfileUserSettingsCustomPosixUserConfigPtrOutput { - return i.ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(context.Background()) +func (i *userProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) } -func (i *userProfileUserSettingsCustomPosixUserConfigPtrType) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCustomPosixUserConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsCustomPosixUserConfigPtrOutput) +func (i *userProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrType) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) } -type UserProfileUserSettingsCustomPosixUserConfigOutput struct{ *pulumi.OutputState } +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput struct{ *pulumi.OutputState } -func (UserProfileUserSettingsCustomPosixUserConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*UserProfileUserSettingsCustomPosixUserConfig)(nil)).Elem() +func (UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (o UserProfileUserSettingsCustomPosixUserConfigOutput) ToUserProfileUserSettingsCustomPosixUserConfigOutput() UserProfileUserSettingsCustomPosixUserConfigOutput { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { return o } -func (o UserProfileUserSettingsCustomPosixUserConfigOutput) ToUserProfileUserSettingsCustomPosixUserConfigOutputWithContext(ctx context.Context) UserProfileUserSettingsCustomPosixUserConfigOutput { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { return o } -func (o UserProfileUserSettingsCustomPosixUserConfigOutput) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutput() UserProfileUserSettingsCustomPosixUserConfigPtrOutput { - return o.ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(context.Background()) +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(context.Background()) } -func (o UserProfileUserSettingsCustomPosixUserConfigOutput) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCustomPosixUserConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsCustomPosixUserConfig) *UserProfileUserSettingsCustomPosixUserConfig { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement) *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement { return &v - }).(UserProfileUserSettingsCustomPosixUserConfigPtrOutput) -} - -// The POSIX group ID. -func (o UserProfileUserSettingsCustomPosixUserConfigOutput) Gid() pulumi.IntOutput { - return o.ApplyT(func(v UserProfileUserSettingsCustomPosixUserConfig) int { return v.Gid }).(pulumi.IntOutput) + }).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) } -// The POSIX user ID. -func (o UserProfileUserSettingsCustomPosixUserConfigOutput) Uid() pulumi.IntOutput { - return o.ApplyT(func(v UserProfileUserSettingsCustomPosixUserConfig) int { return v.Uid }).(pulumi.IntOutput) +// Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) IdleSettings() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement) *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + return v.IdleSettings + }).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) } -type UserProfileUserSettingsCustomPosixUserConfigPtrOutput struct{ *pulumi.OutputState } +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput struct{ *pulumi.OutputState } -func (UserProfileUserSettingsCustomPosixUserConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**UserProfileUserSettingsCustomPosixUserConfig)(nil)).Elem() +func (UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement)(nil)).Elem() } -func (o UserProfileUserSettingsCustomPosixUserConfigPtrOutput) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutput() UserProfileUserSettingsCustomPosixUserConfigPtrOutput { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { return o } -func (o UserProfileUserSettingsCustomPosixUserConfigPtrOutput) ToUserProfileUserSettingsCustomPosixUserConfigPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsCustomPosixUserConfigPtrOutput { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput { return o } -func (o UserProfileUserSettingsCustomPosixUserConfigPtrOutput) Elem() UserProfileUserSettingsCustomPosixUserConfigOutput { - return o.ApplyT(func(v *UserProfileUserSettingsCustomPosixUserConfig) UserProfileUserSettingsCustomPosixUserConfig { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) Elem() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement { if v != nil { return *v } - var ret UserProfileUserSettingsCustomPosixUserConfig + var ret UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement return ret - }).(UserProfileUserSettingsCustomPosixUserConfigOutput) -} - -// The POSIX group ID. -func (o UserProfileUserSettingsCustomPosixUserConfigPtrOutput) Gid() pulumi.IntPtrOutput { - return o.ApplyT(func(v *UserProfileUserSettingsCustomPosixUserConfig) *int { - if v == nil { - return nil - } - return &v.Gid - }).(pulumi.IntPtrOutput) + }).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput) } -// The POSIX user ID. -func (o UserProfileUserSettingsCustomPosixUserConfigPtrOutput) Uid() pulumi.IntPtrOutput { - return o.ApplyT(func(v *UserProfileUserSettingsCustomPosixUserConfig) *int { +// Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput) IdleSettings() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement) *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { if v == nil { return nil } - return &v.Uid - }).(pulumi.IntPtrOutput) + return v.IdleSettings + }).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) } -type UserProfileUserSettingsJupyterLabAppSettings struct { - // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. - CodeRepositories []UserProfileUserSettingsJupyterLabAppSettingsCodeRepository `pulumi:"codeRepositories"` - CustomImages []UserProfileUserSettingsJupyterLabAppSettingsCustomImage `pulumi:"customImages"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. - DefaultResourceSpec *UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` - // The Amazon Resource Name (ARN) of the Lifecycle Configurations. - LifecycleConfigArns []string `pulumi:"lifecycleConfigArns"` +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` + // Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + LifecycleManagement *string `pulumi:"lifecycleManagement"` + // The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MaxIdleTimeoutInMinutes *int `pulumi:"maxIdleTimeoutInMinutes"` + // The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MinIdleTimeoutInMinutes *int `pulumi:"minIdleTimeoutInMinutes"` } -// UserProfileUserSettingsJupyterLabAppSettingsInput is an input type that accepts UserProfileUserSettingsJupyterLabAppSettingsArgs and UserProfileUserSettingsJupyterLabAppSettingsOutput values. -// You can construct a concrete instance of `UserProfileUserSettingsJupyterLabAppSettingsInput` via: +// UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput is an input type that accepts UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs and UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput` via: // -// UserProfileUserSettingsJupyterLabAppSettingsArgs{...} -type UserProfileUserSettingsJupyterLabAppSettingsInput interface { +// UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{...} +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput interface { pulumi.Input - ToUserProfileUserSettingsJupyterLabAppSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsOutput - ToUserProfileUserSettingsJupyterLabAppSettingsOutputWithContext(context.Context) UserProfileUserSettingsJupyterLabAppSettingsOutput + ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput + ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput } -type UserProfileUserSettingsJupyterLabAppSettingsArgs struct { - // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. - CodeRepositories UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput `pulumi:"codeRepositories"` - CustomImages UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayInput `pulumi:"customImages"` - // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. - DefaultResourceSpec UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrInput `pulumi:"defaultResourceSpec"` - // The Amazon Resource Name (ARN) of the Lifecycle Configurations. - LifecycleConfigArns pulumi.StringArrayInput `pulumi:"lifecycleConfigArns"` +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs struct { + // The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` + // Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + LifecycleManagement pulumi.StringPtrInput `pulumi:"lifecycleManagement"` + // The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MaxIdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"maxIdleTimeoutInMinutes"` + // The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + MinIdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"minIdleTimeoutInMinutes"` } -func (UserProfileUserSettingsJupyterLabAppSettingsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettings)(nil)).Elem() +func (UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() } -func (i UserProfileUserSettingsJupyterLabAppSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsOutput { - return i.ToUserProfileUserSettingsJupyterLabAppSettingsOutputWithContext(context.Background()) +func (i UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(context.Background()) } -func (i UserProfileUserSettingsJupyterLabAppSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsOutput { - return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsOutput) +func (i UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) } -func (i UserProfileUserSettingsJupyterLabAppSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { - return i.ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(context.Background()) +func (i UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) } -func (i UserProfileUserSettingsJupyterLabAppSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsOutput).ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(ctx) +func (i UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput).ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx) } -// UserProfileUserSettingsJupyterLabAppSettingsPtrInput is an input type that accepts UserProfileUserSettingsJupyterLabAppSettingsArgs, UserProfileUserSettingsJupyterLabAppSettingsPtr and UserProfileUserSettingsJupyterLabAppSettingsPtrOutput values. -// You can construct a concrete instance of `UserProfileUserSettingsJupyterLabAppSettingsPtrInput` via: +// UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput is an input type that accepts UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs, UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtr and UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput` via: // -// UserProfileUserSettingsJupyterLabAppSettingsArgs{...} +// UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{...} // // or: // // nil -type UserProfileUserSettingsJupyterLabAppSettingsPtrInput interface { +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput interface { pulumi.Input - ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsPtrOutput - ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(context.Context) UserProfileUserSettingsJupyterLabAppSettingsPtrOutput + ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput + ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput } -type userProfileUserSettingsJupyterLabAppSettingsPtrType UserProfileUserSettingsJupyterLabAppSettingsArgs +type userProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs -func UserProfileUserSettingsJupyterLabAppSettingsPtr(v *UserProfileUserSettingsJupyterLabAppSettingsArgs) UserProfileUserSettingsJupyterLabAppSettingsPtrInput { - return (*userProfileUserSettingsJupyterLabAppSettingsPtrType)(v) +func UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtr(v *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput { + return (*userProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType)(v) } -func (*userProfileUserSettingsJupyterLabAppSettingsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**UserProfileUserSettingsJupyterLabAppSettings)(nil)).Elem() +func (*userProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() } -func (i *userProfileUserSettingsJupyterLabAppSettingsPtrType) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { - return i.ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(context.Background()) +func (i *userProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) } -func (i *userProfileUserSettingsJupyterLabAppSettingsPtrType) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) +func (i *userProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrType) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) } -type UserProfileUserSettingsJupyterLabAppSettingsOutput struct{ *pulumi.OutputState } +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput struct{ *pulumi.OutputState } -func (UserProfileUserSettingsJupyterLabAppSettingsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettings)(nil)).Elem() +func (UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() } -func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsOutput { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { return o } -func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsOutput { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { return o } -func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { - return o.ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(context.Background()) +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(context.Background()) } -func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsJupyterLabAppSettings) *UserProfileUserSettingsJupyterLabAppSettings { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { return &v - }).(UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) + }).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) } -// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. -func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) CodeRepositories() UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { - return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) []UserProfileUserSettingsJupyterLabAppSettingsCodeRepository { - return v.CodeRepositories - }).(UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput) +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) } -func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) CustomImages() UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayOutput { - return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) []UserProfileUserSettingsJupyterLabAppSettingsCustomImage { - return v.CustomImages - }).(UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayOutput) +// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) LifecycleManagement() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *string { + return v.LifecycleManagement + }).(pulumi.StringPtrOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. -func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) DefaultResourceSpec() UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput { - return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) *UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec { - return v.DefaultResourceSpec - }).(UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput) +// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) MaxIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.MaxIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) } -// The Amazon Resource Name (ARN) of the Lifecycle Configurations. -func (o UserProfileUserSettingsJupyterLabAppSettingsOutput) LifecycleConfigArns() pulumi.StringArrayOutput { - return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettings) []string { return v.LifecycleConfigArns }).(pulumi.StringArrayOutput) +// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) MinIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { + return v.MinIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) } -type UserProfileUserSettingsJupyterLabAppSettingsPtrOutput struct{ *pulumi.OutputState } +type UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput struct{ *pulumi.OutputState } -func (UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**UserProfileUserSettingsJupyterLabAppSettings)(nil)).Elem() +func (UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings)(nil)).Elem() } -func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { return o } -func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) ToUserProfileUserSettingsJupyterLabAppSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsPtrOutput { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) ToUserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput { return o } -func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) Elem() UserProfileUserSettingsJupyterLabAppSettingsOutput { - return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) UserProfileUserSettingsJupyterLabAppSettings { +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) Elem() UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { if v != nil { return *v } - var ret UserProfileUserSettingsJupyterLabAppSettings + var ret UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings return ret - }).(UserProfileUserSettingsJupyterLabAppSettingsOutput) + }).(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput) } -// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. -func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) CodeRepositories() UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput { - return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) []UserProfileUserSettingsJupyterLabAppSettingsCodeRepository { +// The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { if v == nil { return nil } - return v.CodeRepositories - }).(UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput) + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) } -func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) CustomImages() UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayOutput { - return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) []UserProfileUserSettingsJupyterLabAppSettingsCustomImage { +// Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) LifecycleManagement() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *string { if v == nil { return nil } - return v.CustomImages - }).(UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayOutput) + return v.LifecycleManagement + }).(pulumi.StringPtrOutput) } -// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. -func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) DefaultResourceSpec() UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput { - return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) *UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec { +// The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) MaxIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { if v == nil { return nil } - return v.DefaultResourceSpec - }).(UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput) + return v.MaxIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) } -// The Amazon Resource Name (ARN) of the Lifecycle Configurations. -func (o UserProfileUserSettingsJupyterLabAppSettingsPtrOutput) LifecycleConfigArns() pulumi.StringArrayOutput { - return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettings) []string { +// The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. +func (o UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput) MinIdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings) *int { if v == nil { return nil } - return v.LifecycleConfigArns - }).(pulumi.StringArrayOutput) + return v.MinIdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) } type UserProfileUserSettingsJupyterLabAppSettingsCodeRepository struct { @@ -31230,6 +35109,162 @@ func (o UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput }).(pulumi.StringPtrOutput) } +type UserProfileUserSettingsJupyterLabAppSettingsEmrSettings struct { + // An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + AssumableRoleArns []string `pulumi:"assumableRoleArns"` + // An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + ExecutionRoleArns []string `pulumi:"executionRoleArns"` +} + +// UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsInput is an input type that accepts UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs and UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsInput` via: +// +// UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs{...} +type UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsInput interface { + pulumi.Input + + ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput + ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(context.Context) UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput +} + +type UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs struct { + // An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + AssumableRoleArns pulumi.StringArrayInput `pulumi:"assumableRoleArns"` + // An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + ExecutionRoleArns pulumi.StringArrayInput `pulumi:"executionRoleArns"` +} + +func (UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput) +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Background()) +} + +func (i UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput).ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx) +} + +// UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput is an input type that accepts UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs, UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtr and UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput values. +// You can construct a concrete instance of `UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput` via: +// +// UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs{...} +// +// or: +// +// nil +type UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput interface { + pulumi.Input + + ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput + ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Context) UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput +} + +type userProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrType UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs + +func UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtr(v *UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs) UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput { + return (*userProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrType)(v) +} + +func (*userProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() +} + +func (i *userProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrType) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return i.ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Background()) +} + +func (i *userProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrType) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) +} + +type UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput { + return o +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput { + return o +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(context.Background()) +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UserProfileUserSettingsJupyterLabAppSettingsEmrSettings) *UserProfileUserSettingsJupyterLabAppSettingsEmrSettings { + return &v + }).(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) +} + +// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput) AssumableRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettingsEmrSettings) []string { return v.AssumableRoleArns }).(pulumi.StringArrayOutput) +} + +// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput) ExecutionRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v UserProfileUserSettingsJupyterLabAppSettingsEmrSettings) []string { return v.ExecutionRoleArns }).(pulumi.StringArrayOutput) +} + +type UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput struct{ *pulumi.OutputState } + +func (UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserProfileUserSettingsJupyterLabAppSettingsEmrSettings)(nil)).Elem() +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ToUserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutputWithContext(ctx context.Context) UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput { + return o +} + +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) Elem() UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettingsEmrSettings) UserProfileUserSettingsJupyterLabAppSettingsEmrSettings { + if v != nil { + return *v + } + var ret UserProfileUserSettingsJupyterLabAppSettingsEmrSettings + return ret + }).(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput) +} + +// An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) AssumableRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettingsEmrSettings) []string { + if v == nil { + return nil + } + return v.AssumableRoleArns + }).(pulumi.StringArrayOutput) +} + +// An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. +func (o UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput) ExecutionRoleArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *UserProfileUserSettingsJupyterLabAppSettingsEmrSettings) []string { + if v == nil { + return nil + } + return v.ExecutionRoleArns + }).(pulumi.StringArrayOutput) +} + type UserProfileUserSettingsJupyterServerAppSettings struct { // A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. CodeRepositories []UserProfileUserSettingsJupyterServerAppSettingsCodeRepository `pulumi:"codeRepositories"` @@ -33375,6 +37410,8 @@ func (o UserProfileUserSettingsSpaceStorageSettingsDefaultEbsStorageSettingsPtrO type UserProfileUserSettingsStudioWebPortalSettings struct { // The Applications supported in Studio that are hidden from the Studio left navigation pane. HiddenAppTypes []string `pulumi:"hiddenAppTypes"` + // The instance types you are hiding from the Studio user interface. + HiddenInstanceTypes []string `pulumi:"hiddenInstanceTypes"` // The machine learning tools that are hidden from the Studio left navigation pane. HiddenMlTools []string `pulumi:"hiddenMlTools"` } @@ -33393,6 +37430,8 @@ type UserProfileUserSettingsStudioWebPortalSettingsInput interface { type UserProfileUserSettingsStudioWebPortalSettingsArgs struct { // The Applications supported in Studio that are hidden from the Studio left navigation pane. HiddenAppTypes pulumi.StringArrayInput `pulumi:"hiddenAppTypes"` + // The instance types you are hiding from the Studio user interface. + HiddenInstanceTypes pulumi.StringArrayInput `pulumi:"hiddenInstanceTypes"` // The machine learning tools that are hidden from the Studio left navigation pane. HiddenMlTools pulumi.StringArrayInput `pulumi:"hiddenMlTools"` } @@ -33479,6 +37518,11 @@ func (o UserProfileUserSettingsStudioWebPortalSettingsOutput) HiddenAppTypes() p return o.ApplyT(func(v UserProfileUserSettingsStudioWebPortalSettings) []string { return v.HiddenAppTypes }).(pulumi.StringArrayOutput) } +// The instance types you are hiding from the Studio user interface. +func (o UserProfileUserSettingsStudioWebPortalSettingsOutput) HiddenInstanceTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v UserProfileUserSettingsStudioWebPortalSettings) []string { return v.HiddenInstanceTypes }).(pulumi.StringArrayOutput) +} + // The machine learning tools that are hidden from the Studio left navigation pane. func (o UserProfileUserSettingsStudioWebPortalSettingsOutput) HiddenMlTools() pulumi.StringArrayOutput { return o.ApplyT(func(v UserProfileUserSettingsStudioWebPortalSettings) []string { return v.HiddenMlTools }).(pulumi.StringArrayOutput) @@ -33518,6 +37562,16 @@ func (o UserProfileUserSettingsStudioWebPortalSettingsPtrOutput) HiddenAppTypes( }).(pulumi.StringArrayOutput) } +// The instance types you are hiding from the Studio user interface. +func (o UserProfileUserSettingsStudioWebPortalSettingsPtrOutput) HiddenInstanceTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *UserProfileUserSettingsStudioWebPortalSettings) []string { + if v == nil { + return nil + } + return v.HiddenInstanceTypes + }).(pulumi.StringArrayOutput) +} + // The machine learning tools that are hidden from the Studio left navigation pane. func (o UserProfileUserSettingsStudioWebPortalSettingsPtrOutput) HiddenMlTools() pulumi.StringArrayOutput { return o.ApplyT(func(v *UserProfileUserSettingsStudioWebPortalSettings) []string { @@ -35751,12 +39805,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsCustomPosixUserConfigPtrInput)(nil)).Elem(), DomainDefaultSpaceSettingsCustomPosixUserConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArrayInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecPtrInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterServerAppSettingsInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryInput)(nil)).Elem(), DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs{}) @@ -35779,6 +39839,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsCanvasAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsInput)(nil)).Elem(), DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsInput)(nil)).Elem(), DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsInput)(nil)).Elem(), DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSettingInput)(nil)).Elem(), DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs{}) @@ -35793,6 +39855,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsInput)(nil)).Elem(), DomainDefaultUserSettingsCodeEditorAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsCodeEditorAppSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementInput)(nil)).Elem(), DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput)(nil)).Elem(), DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput)(nil)).Elem(), DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageInput)(nil)).Elem(), DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArrayInput)(nil)).Elem(), DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpecInput)(nil)).Elem(), DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs{}) @@ -35805,12 +39871,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsCustomPosixUserConfigPtrInput)(nil)).Elem(), DomainDefaultUserSettingsCustomPosixUserConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArrayInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettingsInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterServerAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterServerAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryInput)(nil)).Elem(), DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryArgs{}) @@ -35909,6 +39981,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSizePtrInput)(nil)).Elem(), EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSizeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupFeatureDefinitionInput)(nil)).Elem(), FeatureGroupFeatureDefinitionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupFeatureDefinitionArrayInput)(nil)).Elem(), FeatureGroupFeatureDefinitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupFeatureDefinitionCollectionConfigInput)(nil)).Elem(), FeatureGroupFeatureDefinitionCollectionConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupFeatureDefinitionCollectionConfigPtrInput)(nil)).Elem(), FeatureGroupFeatureDefinitionCollectionConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupFeatureDefinitionCollectionConfigVectorConfigInput)(nil)).Elem(), FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrInput)(nil)).Elem(), FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupOfflineStoreConfigInput)(nil)).Elem(), FeatureGroupOfflineStoreConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupOfflineStoreConfigPtrInput)(nil)).Elem(), FeatureGroupOfflineStoreConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupOfflineStoreConfigDataCatalogConfigInput)(nil)).Elem(), FeatureGroupOfflineStoreConfigDataCatalogConfigArgs{}) @@ -35921,6 +39997,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupOnlineStoreConfigSecurityConfigPtrInput)(nil)).Elem(), FeatureGroupOnlineStoreConfigSecurityConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupOnlineStoreConfigTtlDurationInput)(nil)).Elem(), FeatureGroupOnlineStoreConfigTtlDurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupOnlineStoreConfigTtlDurationPtrInput)(nil)).Elem(), FeatureGroupOnlineStoreConfigTtlDurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupThroughputConfigInput)(nil)).Elem(), FeatureGroupThroughputConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FeatureGroupThroughputConfigPtrInput)(nil)).Elem(), FeatureGroupThroughputConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FlowDefinitionHumanLoopActivationConfigInput)(nil)).Elem(), FlowDefinitionHumanLoopActivationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FlowDefinitionHumanLoopActivationConfigPtrInput)(nil)).Elem(), FlowDefinitionHumanLoopActivationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfigInput)(nil)).Elem(), FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfigArgs{}) @@ -35935,6 +40013,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FlowDefinitionHumanLoopRequestSourcePtrInput)(nil)).Elem(), FlowDefinitionHumanLoopRequestSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FlowDefinitionOutputConfigInput)(nil)).Elem(), FlowDefinitionOutputConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FlowDefinitionOutputConfigPtrInput)(nil)).Elem(), FlowDefinitionOutputConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*HubS3StorageConfigInput)(nil)).Elem(), HubS3StorageConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*HubS3StorageConfigPtrInput)(nil)).Elem(), HubS3StorageConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HumanTaskUIUiTemplateInput)(nil)).Elem(), HumanTaskUIUiTemplateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HumanTaskUIUiTemplatePtrInput)(nil)).Elem(), HumanTaskUIUiTemplateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ModelContainerInput)(nil)).Elem(), ModelContainerArgs{}) @@ -35989,6 +40069,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsPtrInput)(nil)).Elem(), SpaceSpaceSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsInput)(nil)).Elem(), SpaceSpaceSettingsCodeEditorAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsPtrInput)(nil)).Elem(), SpaceSpaceSettingsCodeEditorAppSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementInput)(nil)).Elem(), SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput)(nil)).Elem(), SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput)(nil)).Elem(), SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput)(nil)).Elem(), SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecInput)(nil)).Elem(), SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrInput)(nil)).Elem(), SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsCustomFileSystemInput)(nil)).Elem(), SpaceSpaceSettingsCustomFileSystemArgs{}) @@ -35996,6 +40080,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsCustomFileSystemEfsFileSystemInput)(nil)).Elem(), SpaceSpaceSettingsCustomFileSystemEfsFileSystemArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsInput)(nil)).Elem(), SpaceSpaceSettingsJupyterLabAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsPtrInput)(nil)).Elem(), SpaceSpaceSettingsJupyterLabAppSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementInput)(nil)).Elem(), SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput)(nil)).Elem(), SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput)(nil)).Elem(), SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput)(nil)).Elem(), SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryInput)(nil)).Elem(), SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayInput)(nil)).Elem(), SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecInput)(nil)).Elem(), SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs{}) @@ -36024,6 +40112,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsCanvasAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsInput)(nil)).Elem(), UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsInput)(nil)).Elem(), UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsInput)(nil)).Elem(), UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSettingInput)(nil)).Elem(), UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs{}) @@ -36038,6 +40128,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCanvasAppSettingsWorkspaceSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsCanvasAppSettingsWorkspaceSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsInput)(nil)).Elem(), UserProfileUserSettingsCodeEditorAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsCodeEditorAppSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementInput)(nil)).Elem(), UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrInput)(nil)).Elem(), UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsInput)(nil)).Elem(), UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsCustomImageInput)(nil)).Elem(), UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayInput)(nil)).Elem(), UserProfileUserSettingsCodeEditorAppSettingsCustomImageArray{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecInput)(nil)).Elem(), UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs{}) @@ -36050,12 +40144,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsCustomPosixUserConfigPtrInput)(nil)).Elem(), UserProfileUserSettingsCustomPosixUserConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArray{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsCustomImageInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsCustomImageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsCustomImageArray{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterServerAppSettingsInput)(nil)).Elem(), UserProfileUserSettingsJupyterServerAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterServerAppSettingsPtrInput)(nil)).Elem(), UserProfileUserSettingsJupyterServerAppSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserProfileUserSettingsJupyterServerAppSettingsCodeRepositoryInput)(nil)).Elem(), UserProfileUserSettingsJupyterServerAppSettingsCodeRepositoryArgs{}) @@ -36182,12 +40282,18 @@ func init() { pulumi.RegisterOutputType(DomainDefaultSpaceSettingsCustomPosixUserConfigPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput{}) + pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArrayOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterServerAppSettingsOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterServerAppSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryOutput{}) @@ -36210,6 +40316,8 @@ func init() { pulumi.RegisterOutputType(DomainDefaultUserSettingsCanvasAppSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSettingOutput{}) @@ -36224,6 +40332,10 @@ func init() { pulumi.RegisterOutputType(DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsCodeEditorAppSettingsOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsCodeEditorAppSettingsPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArrayOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpecOutput{}) @@ -36236,12 +40348,18 @@ func init() { pulumi.RegisterOutputType(DomainDefaultUserSettingsCustomPosixUserConfigPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArrayOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterServerAppSettingsOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryOutput{}) @@ -36340,6 +40458,10 @@ func init() { pulumi.RegisterOutputType(EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSizePtrOutput{}) pulumi.RegisterOutputType(FeatureGroupFeatureDefinitionOutput{}) pulumi.RegisterOutputType(FeatureGroupFeatureDefinitionArrayOutput{}) + pulumi.RegisterOutputType(FeatureGroupFeatureDefinitionCollectionConfigOutput{}) + pulumi.RegisterOutputType(FeatureGroupFeatureDefinitionCollectionConfigPtrOutput{}) + pulumi.RegisterOutputType(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigOutput{}) + pulumi.RegisterOutputType(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigPtrOutput{}) pulumi.RegisterOutputType(FeatureGroupOfflineStoreConfigOutput{}) pulumi.RegisterOutputType(FeatureGroupOfflineStoreConfigPtrOutput{}) pulumi.RegisterOutputType(FeatureGroupOfflineStoreConfigDataCatalogConfigOutput{}) @@ -36352,6 +40474,8 @@ func init() { pulumi.RegisterOutputType(FeatureGroupOnlineStoreConfigSecurityConfigPtrOutput{}) pulumi.RegisterOutputType(FeatureGroupOnlineStoreConfigTtlDurationOutput{}) pulumi.RegisterOutputType(FeatureGroupOnlineStoreConfigTtlDurationPtrOutput{}) + pulumi.RegisterOutputType(FeatureGroupThroughputConfigOutput{}) + pulumi.RegisterOutputType(FeatureGroupThroughputConfigPtrOutput{}) pulumi.RegisterOutputType(FlowDefinitionHumanLoopActivationConfigOutput{}) pulumi.RegisterOutputType(FlowDefinitionHumanLoopActivationConfigPtrOutput{}) pulumi.RegisterOutputType(FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfigOutput{}) @@ -36366,6 +40490,8 @@ func init() { pulumi.RegisterOutputType(FlowDefinitionHumanLoopRequestSourcePtrOutput{}) pulumi.RegisterOutputType(FlowDefinitionOutputConfigOutput{}) pulumi.RegisterOutputType(FlowDefinitionOutputConfigPtrOutput{}) + pulumi.RegisterOutputType(HubS3StorageConfigOutput{}) + pulumi.RegisterOutputType(HubS3StorageConfigPtrOutput{}) pulumi.RegisterOutputType(HumanTaskUIUiTemplateOutput{}) pulumi.RegisterOutputType(HumanTaskUIUiTemplatePtrOutput{}) pulumi.RegisterOutputType(ModelContainerOutput{}) @@ -36420,6 +40546,10 @@ func init() { pulumi.RegisterOutputType(SpaceSpaceSettingsPtrOutput{}) pulumi.RegisterOutputType(SpaceSpaceSettingsCodeEditorAppSettingsOutput{}) pulumi.RegisterOutputType(SpaceSpaceSettingsCodeEditorAppSettingsPtrOutput{}) + pulumi.RegisterOutputType(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementOutput{}) + pulumi.RegisterOutputType(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput{}) + pulumi.RegisterOutputType(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput{}) + pulumi.RegisterOutputType(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput{}) pulumi.RegisterOutputType(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecOutput{}) pulumi.RegisterOutputType(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecPtrOutput{}) pulumi.RegisterOutputType(SpaceSpaceSettingsCustomFileSystemOutput{}) @@ -36427,6 +40557,10 @@ func init() { pulumi.RegisterOutputType(SpaceSpaceSettingsCustomFileSystemEfsFileSystemOutput{}) pulumi.RegisterOutputType(SpaceSpaceSettingsJupyterLabAppSettingsOutput{}) pulumi.RegisterOutputType(SpaceSpaceSettingsJupyterLabAppSettingsPtrOutput{}) + pulumi.RegisterOutputType(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementOutput{}) + pulumi.RegisterOutputType(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput{}) + pulumi.RegisterOutputType(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput{}) + pulumi.RegisterOutputType(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput{}) pulumi.RegisterOutputType(SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryOutput{}) pulumi.RegisterOutputType(SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput{}) pulumi.RegisterOutputType(SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecOutput{}) @@ -36455,6 +40589,8 @@ func init() { pulumi.RegisterOutputType(UserProfileUserSettingsCanvasAppSettingsPtrOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsPtrOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsPtrOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsPtrOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSettingOutput{}) @@ -36469,6 +40605,10 @@ func init() { pulumi.RegisterOutputType(UserProfileUserSettingsCanvasAppSettingsWorkspaceSettingsPtrOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsCodeEditorAppSettingsOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsCodeEditorAppSettingsPtrOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementPtrOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsPtrOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsCodeEditorAppSettingsCustomImageOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsCodeEditorAppSettingsCustomImageArrayOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecOutput{}) @@ -36481,12 +40621,18 @@ func init() { pulumi.RegisterOutputType(UserProfileUserSettingsCustomPosixUserConfigPtrOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsPtrOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementPtrOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsPtrOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArrayOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsCustomImageOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsCustomImageArrayOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecPtrOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsOutput{}) + pulumi.RegisterOutputType(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsPtrOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterServerAppSettingsOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterServerAppSettingsPtrOutput{}) pulumi.RegisterOutputType(UserProfileUserSettingsJupyterServerAppSettingsCodeRepositoryOutput{}) diff --git a/sdk/go/aws/securityhub/standardsSubscription.go b/sdk/go/aws/securityhub/standardsSubscription.go index 9b92851839c..d78fe9678f8 100644 --- a/sdk/go/aws/securityhub/standardsSubscription.go +++ b/sdk/go/aws/securityhub/standardsSubscription.go @@ -87,6 +87,7 @@ type StandardsSubscription struct { // | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | // | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | // | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + // | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | // | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | // | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | StandardsArn pulumi.StringOutput `pulumi:"standardsArn"` @@ -135,6 +136,7 @@ type standardsSubscriptionState struct { // | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | // | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | // | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + // | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | // | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | // | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | StandardsArn *string `pulumi:"standardsArn"` @@ -151,6 +153,7 @@ type StandardsSubscriptionState struct { // | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | // | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | // | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + // | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | // | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | // | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | StandardsArn pulumi.StringPtrInput @@ -171,6 +174,7 @@ type standardsSubscriptionArgs struct { // | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | // | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | // | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + // | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | // | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | // | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | StandardsArn string `pulumi:"standardsArn"` @@ -188,6 +192,7 @@ type StandardsSubscriptionArgs struct { // | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | // | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | // | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + // | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | // | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | // | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | StandardsArn pulumi.StringInput @@ -290,6 +295,7 @@ func (o StandardsSubscriptionOutput) ToStandardsSubscriptionOutputWithContext(ct // | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | // | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | // | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | +// | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | // | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | // | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | func (o StandardsSubscriptionOutput) StandardsArn() pulumi.StringOutput { diff --git a/sdk/go/aws/ssm/getPatchBaselines.go b/sdk/go/aws/ssm/getPatchBaselines.go new file mode 100644 index 00000000000..21d621f3603 --- /dev/null +++ b/sdk/go/aws/ssm/getPatchBaselines.go @@ -0,0 +1,174 @@ +// 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 ssm + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ssm.GetPatchBaselines(ctx, &ssm.GetPatchBaselinesArgs{}, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### With Filters +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ssm.GetPatchBaselines(ctx, &ssm.GetPatchBaselinesArgs{ +// Filters: []ssm.GetPatchBaselinesFilter{ +// { +// Key: "OWNER", +// Values: []string{ +// "AWS", +// }, +// }, +// { +// Key: "OPERATING_SYSTEM", +// Values: []string{ +// "WINDOWS", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetPatchBaselines(ctx *pulumi.Context, args *GetPatchBaselinesArgs, opts ...pulumi.InvokeOption) (*GetPatchBaselinesResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetPatchBaselinesResult + err := ctx.Invoke("aws:ssm/getPatchBaselines:getPatchBaselines", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getPatchBaselines. +type GetPatchBaselinesArgs struct { + // Only return baseline identities where `defaultBaseline` is `true`. + DefaultBaselines *bool `pulumi:"defaultBaselines"` + // Key-value pairs used to filter the results. See `filter` below. + Filters []GetPatchBaselinesFilter `pulumi:"filters"` +} + +// A collection of values returned by getPatchBaselines. +type GetPatchBaselinesResult struct { + // List of baseline identities. See `baselineIdentities` below. + BaselineIdentities []GetPatchBaselinesBaselineIdentity `pulumi:"baselineIdentities"` + DefaultBaselines *bool `pulumi:"defaultBaselines"` + Filters []GetPatchBaselinesFilter `pulumi:"filters"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` +} + +func GetPatchBaselinesOutput(ctx *pulumi.Context, args GetPatchBaselinesOutputArgs, opts ...pulumi.InvokeOption) GetPatchBaselinesResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetPatchBaselinesResultOutput, error) { + args := v.(GetPatchBaselinesArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetPatchBaselinesResult + secret, err := ctx.InvokePackageRaw("aws:ssm/getPatchBaselines:getPatchBaselines", args, &rv, "", opts...) + if err != nil { + return GetPatchBaselinesResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(GetPatchBaselinesResultOutput) + if secret { + return pulumi.ToSecret(output).(GetPatchBaselinesResultOutput), nil + } + return output, nil + }).(GetPatchBaselinesResultOutput) +} + +// A collection of arguments for invoking getPatchBaselines. +type GetPatchBaselinesOutputArgs struct { + // Only return baseline identities where `defaultBaseline` is `true`. + DefaultBaselines pulumi.BoolPtrInput `pulumi:"defaultBaselines"` + // Key-value pairs used to filter the results. See `filter` below. + Filters GetPatchBaselinesFilterArrayInput `pulumi:"filters"` +} + +func (GetPatchBaselinesOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPatchBaselinesArgs)(nil)).Elem() +} + +// A collection of values returned by getPatchBaselines. +type GetPatchBaselinesResultOutput struct{ *pulumi.OutputState } + +func (GetPatchBaselinesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPatchBaselinesResult)(nil)).Elem() +} + +func (o GetPatchBaselinesResultOutput) ToGetPatchBaselinesResultOutput() GetPatchBaselinesResultOutput { + return o +} + +func (o GetPatchBaselinesResultOutput) ToGetPatchBaselinesResultOutputWithContext(ctx context.Context) GetPatchBaselinesResultOutput { + return o +} + +// List of baseline identities. See `baselineIdentities` below. +func (o GetPatchBaselinesResultOutput) BaselineIdentities() GetPatchBaselinesBaselineIdentityArrayOutput { + return o.ApplyT(func(v GetPatchBaselinesResult) []GetPatchBaselinesBaselineIdentity { return v.BaselineIdentities }).(GetPatchBaselinesBaselineIdentityArrayOutput) +} + +func (o GetPatchBaselinesResultOutput) DefaultBaselines() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetPatchBaselinesResult) *bool { return v.DefaultBaselines }).(pulumi.BoolPtrOutput) +} + +func (o GetPatchBaselinesResultOutput) Filters() GetPatchBaselinesFilterArrayOutput { + return o.ApplyT(func(v GetPatchBaselinesResult) []GetPatchBaselinesFilter { return v.Filters }).(GetPatchBaselinesFilterArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetPatchBaselinesResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetPatchBaselinesResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetPatchBaselinesResultOutput{}) +} diff --git a/sdk/go/aws/ssm/pulumiTypes.go b/sdk/go/aws/ssm/pulumiTypes.go index 0a63ecdd0d9..eb14b1d62b2 100644 --- a/sdk/go/aws/ssm/pulumiTypes.go +++ b/sdk/go/aws/ssm/pulumiTypes.go @@ -6111,6 +6111,245 @@ func (o GetPatchBaselineSourceArrayOutput) Index(i pulumi.IntInput) GetPatchBase }).(GetPatchBaselineSourceOutput) } +type GetPatchBaselinesBaselineIdentity struct { + // Description of the patch baseline. + BaselineDescription string `pulumi:"baselineDescription"` + // ID of the patch baseline. + BaselineId string `pulumi:"baselineId"` + // Name of the patch baseline. + BaselineName string `pulumi:"baselineName"` + // Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. + DefaultBaseline bool `pulumi:"defaultBaseline"` + // Operating system the patch baseline applies to. + OperatingSystem string `pulumi:"operatingSystem"` +} + +// GetPatchBaselinesBaselineIdentityInput is an input type that accepts GetPatchBaselinesBaselineIdentityArgs and GetPatchBaselinesBaselineIdentityOutput values. +// You can construct a concrete instance of `GetPatchBaselinesBaselineIdentityInput` via: +// +// GetPatchBaselinesBaselineIdentityArgs{...} +type GetPatchBaselinesBaselineIdentityInput interface { + pulumi.Input + + ToGetPatchBaselinesBaselineIdentityOutput() GetPatchBaselinesBaselineIdentityOutput + ToGetPatchBaselinesBaselineIdentityOutputWithContext(context.Context) GetPatchBaselinesBaselineIdentityOutput +} + +type GetPatchBaselinesBaselineIdentityArgs struct { + // Description of the patch baseline. + BaselineDescription pulumi.StringInput `pulumi:"baselineDescription"` + // ID of the patch baseline. + BaselineId pulumi.StringInput `pulumi:"baselineId"` + // Name of the patch baseline. + BaselineName pulumi.StringInput `pulumi:"baselineName"` + // Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. + DefaultBaseline pulumi.BoolInput `pulumi:"defaultBaseline"` + // Operating system the patch baseline applies to. + OperatingSystem pulumi.StringInput `pulumi:"operatingSystem"` +} + +func (GetPatchBaselinesBaselineIdentityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPatchBaselinesBaselineIdentity)(nil)).Elem() +} + +func (i GetPatchBaselinesBaselineIdentityArgs) ToGetPatchBaselinesBaselineIdentityOutput() GetPatchBaselinesBaselineIdentityOutput { + return i.ToGetPatchBaselinesBaselineIdentityOutputWithContext(context.Background()) +} + +func (i GetPatchBaselinesBaselineIdentityArgs) ToGetPatchBaselinesBaselineIdentityOutputWithContext(ctx context.Context) GetPatchBaselinesBaselineIdentityOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPatchBaselinesBaselineIdentityOutput) +} + +// GetPatchBaselinesBaselineIdentityArrayInput is an input type that accepts GetPatchBaselinesBaselineIdentityArray and GetPatchBaselinesBaselineIdentityArrayOutput values. +// You can construct a concrete instance of `GetPatchBaselinesBaselineIdentityArrayInput` via: +// +// GetPatchBaselinesBaselineIdentityArray{ GetPatchBaselinesBaselineIdentityArgs{...} } +type GetPatchBaselinesBaselineIdentityArrayInput interface { + pulumi.Input + + ToGetPatchBaselinesBaselineIdentityArrayOutput() GetPatchBaselinesBaselineIdentityArrayOutput + ToGetPatchBaselinesBaselineIdentityArrayOutputWithContext(context.Context) GetPatchBaselinesBaselineIdentityArrayOutput +} + +type GetPatchBaselinesBaselineIdentityArray []GetPatchBaselinesBaselineIdentityInput + +func (GetPatchBaselinesBaselineIdentityArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPatchBaselinesBaselineIdentity)(nil)).Elem() +} + +func (i GetPatchBaselinesBaselineIdentityArray) ToGetPatchBaselinesBaselineIdentityArrayOutput() GetPatchBaselinesBaselineIdentityArrayOutput { + return i.ToGetPatchBaselinesBaselineIdentityArrayOutputWithContext(context.Background()) +} + +func (i GetPatchBaselinesBaselineIdentityArray) ToGetPatchBaselinesBaselineIdentityArrayOutputWithContext(ctx context.Context) GetPatchBaselinesBaselineIdentityArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPatchBaselinesBaselineIdentityArrayOutput) +} + +type GetPatchBaselinesBaselineIdentityOutput struct{ *pulumi.OutputState } + +func (GetPatchBaselinesBaselineIdentityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPatchBaselinesBaselineIdentity)(nil)).Elem() +} + +func (o GetPatchBaselinesBaselineIdentityOutput) ToGetPatchBaselinesBaselineIdentityOutput() GetPatchBaselinesBaselineIdentityOutput { + return o +} + +func (o GetPatchBaselinesBaselineIdentityOutput) ToGetPatchBaselinesBaselineIdentityOutputWithContext(ctx context.Context) GetPatchBaselinesBaselineIdentityOutput { + return o +} + +// Description of the patch baseline. +func (o GetPatchBaselinesBaselineIdentityOutput) BaselineDescription() pulumi.StringOutput { + return o.ApplyT(func(v GetPatchBaselinesBaselineIdentity) string { return v.BaselineDescription }).(pulumi.StringOutput) +} + +// ID of the patch baseline. +func (o GetPatchBaselinesBaselineIdentityOutput) BaselineId() pulumi.StringOutput { + return o.ApplyT(func(v GetPatchBaselinesBaselineIdentity) string { return v.BaselineId }).(pulumi.StringOutput) +} + +// Name of the patch baseline. +func (o GetPatchBaselinesBaselineIdentityOutput) BaselineName() pulumi.StringOutput { + return o.ApplyT(func(v GetPatchBaselinesBaselineIdentity) string { return v.BaselineName }).(pulumi.StringOutput) +} + +// Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. +func (o GetPatchBaselinesBaselineIdentityOutput) DefaultBaseline() pulumi.BoolOutput { + return o.ApplyT(func(v GetPatchBaselinesBaselineIdentity) bool { return v.DefaultBaseline }).(pulumi.BoolOutput) +} + +// Operating system the patch baseline applies to. +func (o GetPatchBaselinesBaselineIdentityOutput) OperatingSystem() pulumi.StringOutput { + return o.ApplyT(func(v GetPatchBaselinesBaselineIdentity) string { return v.OperatingSystem }).(pulumi.StringOutput) +} + +type GetPatchBaselinesBaselineIdentityArrayOutput struct{ *pulumi.OutputState } + +func (GetPatchBaselinesBaselineIdentityArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPatchBaselinesBaselineIdentity)(nil)).Elem() +} + +func (o GetPatchBaselinesBaselineIdentityArrayOutput) ToGetPatchBaselinesBaselineIdentityArrayOutput() GetPatchBaselinesBaselineIdentityArrayOutput { + return o +} + +func (o GetPatchBaselinesBaselineIdentityArrayOutput) ToGetPatchBaselinesBaselineIdentityArrayOutputWithContext(ctx context.Context) GetPatchBaselinesBaselineIdentityArrayOutput { + return o +} + +func (o GetPatchBaselinesBaselineIdentityArrayOutput) Index(i pulumi.IntInput) GetPatchBaselinesBaselineIdentityOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetPatchBaselinesBaselineIdentity { + return vs[0].([]GetPatchBaselinesBaselineIdentity)[vs[1].(int)] + }).(GetPatchBaselinesBaselineIdentityOutput) +} + +type GetPatchBaselinesFilter struct { + // Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + Key string `pulumi:"key"` + // Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + Values []string `pulumi:"values"` +} + +// GetPatchBaselinesFilterInput is an input type that accepts GetPatchBaselinesFilterArgs and GetPatchBaselinesFilterOutput values. +// You can construct a concrete instance of `GetPatchBaselinesFilterInput` via: +// +// GetPatchBaselinesFilterArgs{...} +type GetPatchBaselinesFilterInput interface { + pulumi.Input + + ToGetPatchBaselinesFilterOutput() GetPatchBaselinesFilterOutput + ToGetPatchBaselinesFilterOutputWithContext(context.Context) GetPatchBaselinesFilterOutput +} + +type GetPatchBaselinesFilterArgs struct { + // Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + Key pulumi.StringInput `pulumi:"key"` + // Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + Values pulumi.StringArrayInput `pulumi:"values"` +} + +func (GetPatchBaselinesFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPatchBaselinesFilter)(nil)).Elem() +} + +func (i GetPatchBaselinesFilterArgs) ToGetPatchBaselinesFilterOutput() GetPatchBaselinesFilterOutput { + return i.ToGetPatchBaselinesFilterOutputWithContext(context.Background()) +} + +func (i GetPatchBaselinesFilterArgs) ToGetPatchBaselinesFilterOutputWithContext(ctx context.Context) GetPatchBaselinesFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPatchBaselinesFilterOutput) +} + +// GetPatchBaselinesFilterArrayInput is an input type that accepts GetPatchBaselinesFilterArray and GetPatchBaselinesFilterArrayOutput values. +// You can construct a concrete instance of `GetPatchBaselinesFilterArrayInput` via: +// +// GetPatchBaselinesFilterArray{ GetPatchBaselinesFilterArgs{...} } +type GetPatchBaselinesFilterArrayInput interface { + pulumi.Input + + ToGetPatchBaselinesFilterArrayOutput() GetPatchBaselinesFilterArrayOutput + ToGetPatchBaselinesFilterArrayOutputWithContext(context.Context) GetPatchBaselinesFilterArrayOutput +} + +type GetPatchBaselinesFilterArray []GetPatchBaselinesFilterInput + +func (GetPatchBaselinesFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPatchBaselinesFilter)(nil)).Elem() +} + +func (i GetPatchBaselinesFilterArray) ToGetPatchBaselinesFilterArrayOutput() GetPatchBaselinesFilterArrayOutput { + return i.ToGetPatchBaselinesFilterArrayOutputWithContext(context.Background()) +} + +func (i GetPatchBaselinesFilterArray) ToGetPatchBaselinesFilterArrayOutputWithContext(ctx context.Context) GetPatchBaselinesFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPatchBaselinesFilterArrayOutput) +} + +type GetPatchBaselinesFilterOutput struct{ *pulumi.OutputState } + +func (GetPatchBaselinesFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPatchBaselinesFilter)(nil)).Elem() +} + +func (o GetPatchBaselinesFilterOutput) ToGetPatchBaselinesFilterOutput() GetPatchBaselinesFilterOutput { + return o +} + +func (o GetPatchBaselinesFilterOutput) ToGetPatchBaselinesFilterOutputWithContext(ctx context.Context) GetPatchBaselinesFilterOutput { + return o +} + +// Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. +func (o GetPatchBaselinesFilterOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v GetPatchBaselinesFilter) string { return v.Key }).(pulumi.StringOutput) +} + +// Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. +func (o GetPatchBaselinesFilterOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPatchBaselinesFilter) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +type GetPatchBaselinesFilterArrayOutput struct{ *pulumi.OutputState } + +func (GetPatchBaselinesFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPatchBaselinesFilter)(nil)).Elem() +} + +func (o GetPatchBaselinesFilterArrayOutput) ToGetPatchBaselinesFilterArrayOutput() GetPatchBaselinesFilterArrayOutput { + return o +} + +func (o GetPatchBaselinesFilterArrayOutput) ToGetPatchBaselinesFilterArrayOutputWithContext(ctx context.Context) GetPatchBaselinesFilterArrayOutput { + return o +} + +func (o GetPatchBaselinesFilterArrayOutput) Index(i pulumi.IntInput) GetPatchBaselinesFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetPatchBaselinesFilter { + return vs[0].([]GetPatchBaselinesFilter)[vs[1].(int)] + }).(GetPatchBaselinesFilterOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*AssociationOutputLocationInput)(nil)).Elem(), AssociationOutputLocationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AssociationOutputLocationPtrInput)(nil)).Elem(), AssociationOutputLocationArgs{}) @@ -6204,6 +6443,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetPatchBaselineGlobalFilterArrayInput)(nil)).Elem(), GetPatchBaselineGlobalFilterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetPatchBaselineSourceInput)(nil)).Elem(), GetPatchBaselineSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetPatchBaselineSourceArrayInput)(nil)).Elem(), GetPatchBaselineSourceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPatchBaselinesBaselineIdentityInput)(nil)).Elem(), GetPatchBaselinesBaselineIdentityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPatchBaselinesBaselineIdentityArrayInput)(nil)).Elem(), GetPatchBaselinesBaselineIdentityArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPatchBaselinesFilterInput)(nil)).Elem(), GetPatchBaselinesFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPatchBaselinesFilterArrayInput)(nil)).Elem(), GetPatchBaselinesFilterArray{}) pulumi.RegisterOutputType(AssociationOutputLocationOutput{}) pulumi.RegisterOutputType(AssociationOutputLocationPtrOutput{}) pulumi.RegisterOutputType(AssociationTargetOutput{}) @@ -6296,4 +6539,8 @@ func init() { pulumi.RegisterOutputType(GetPatchBaselineGlobalFilterArrayOutput{}) pulumi.RegisterOutputType(GetPatchBaselineSourceOutput{}) pulumi.RegisterOutputType(GetPatchBaselineSourceArrayOutput{}) + pulumi.RegisterOutputType(GetPatchBaselinesBaselineIdentityOutput{}) + pulumi.RegisterOutputType(GetPatchBaselinesBaselineIdentityArrayOutput{}) + pulumi.RegisterOutputType(GetPatchBaselinesFilterOutput{}) + pulumi.RegisterOutputType(GetPatchBaselinesFilterArrayOutput{}) } diff --git a/sdk/go/aws/verifiedaccess/group.go b/sdk/go/aws/verifiedaccess/group.go index 6c4b426fc29..d9e5366e8b2 100644 --- a/sdk/go/aws/verifiedaccess/group.go +++ b/sdk/go/aws/verifiedaccess/group.go @@ -41,6 +41,42 @@ import ( // } // // ``` +// +// ### Usage with KMS Key +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testKey, err := kms.NewKey(ctx, "test_key", &kms.KeyArgs{ +// Description: pulumi.String("KMS key for Verified Access Group test"), +// }) +// if err != nil { +// return err +// } +// _, err = verifiedaccess.NewGroup(ctx, "test", &verifiedaccess.GroupArgs{ +// VerifiedaccessInstanceId: pulumi.Any(testAwsVerifiedaccessInstanceTrustProviderAttachment.VerifiedaccessInstanceId), +// SseConfiguration: &verifiedaccess.GroupSseConfigurationArgs{ +// KmsKeyArn: testKey.Arn, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` type Group struct { pulumi.CustomResourceState diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/Listener.java b/sdk/java/src/main/java/com/pulumi/aws/alb/Listener.java index 49a396e7a81..6f10e103ac2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/Listener.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/Listener.java @@ -642,6 +642,20 @@ public Output>> tags() { public Output> tagsAll() { return this.tagsAll; } + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + @Export(name="tcpIdleTimeoutSeconds", refs={Integer.class}, tree="[0]") + private Output tcpIdleTimeoutSeconds; + + /** + * @return TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + public Output> tcpIdleTimeoutSeconds() { + return Codegen.optional(this.tcpIdleTimeoutSeconds); + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/ListenerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/ListenerArgs.java index 0a1d233f20f..4e6a9b21890 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/ListenerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/ListenerArgs.java @@ -160,6 +160,21 @@ public Optional>> tags() { return Optional.ofNullable(this.tags); } + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + @Import(name="tcpIdleTimeoutSeconds") + private @Nullable Output tcpIdleTimeoutSeconds; + + /** + * @return TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + public Optional> tcpIdleTimeoutSeconds() { + return Optional.ofNullable(this.tcpIdleTimeoutSeconds); + } + private ListenerArgs() {} private ListenerArgs(ListenerArgs $) { @@ -172,6 +187,7 @@ private ListenerArgs(ListenerArgs $) { this.protocol = $.protocol; this.sslPolicy = $.sslPolicy; this.tags = $.tags; + this.tcpIdleTimeoutSeconds = $.tcpIdleTimeoutSeconds; } public static Builder builder() { @@ -395,6 +411,27 @@ public Builder tags(Map tags) { return tags(Output.of(tags)); } + /** + * @param tcpIdleTimeoutSeconds TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + * @return builder + * + */ + public Builder tcpIdleTimeoutSeconds(@Nullable Output tcpIdleTimeoutSeconds) { + $.tcpIdleTimeoutSeconds = tcpIdleTimeoutSeconds; + return this; + } + + /** + * @param tcpIdleTimeoutSeconds TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + * @return builder + * + */ + public Builder tcpIdleTimeoutSeconds(Integer tcpIdleTimeoutSeconds) { + return tcpIdleTimeoutSeconds(Output.of(tcpIdleTimeoutSeconds)); + } + public ListenerArgs build() { if ($.defaultActions == null) { throw new MissingRequiredPropertyException("ListenerArgs", "defaultActions"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/LoadBalancer.java b/sdk/java/src/main/java/com/pulumi/aws/alb/LoadBalancer.java index 110d2dbc31d..900898795b2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/LoadBalancer.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/LoadBalancer.java @@ -366,6 +366,20 @@ public Output> enableWafFailOpen() { public Output> enableXffClientPort() { return Codegen.optional(this.enableXffClientPort); } + /** + * Whether zonal shift is enabled. Defaults to `false`. + * + */ + @Export(name="enableZonalShift", refs={Boolean.class}, tree="[0]") + private Output enableZonalShift; + + /** + * @return Whether zonal shift is enabled. Defaults to `false`. + * + */ + public Output> enableZonalShift() { + return Codegen.optional(this.enableZonalShift); + } /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/LoadBalancerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/LoadBalancerArgs.java index cc61e918b42..09578cd7b0d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/LoadBalancerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/LoadBalancerArgs.java @@ -217,6 +217,21 @@ public Optional> enableXffClientPort() { return Optional.ofNullable(this.enableXffClientPort); } + /** + * Whether zonal shift is enabled. Defaults to `false`. + * + */ + @Import(name="enableZonalShift") + private @Nullable Output enableZonalShift; + + /** + * @return Whether zonal shift is enabled. Defaults to `false`. + * + */ + public Optional> enableZonalShift() { + return Optional.ofNullable(this.enableZonalShift); + } + /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. * @@ -428,6 +443,7 @@ private LoadBalancerArgs(LoadBalancerArgs $) { this.enableTlsVersionAndCipherSuiteHeaders = $.enableTlsVersionAndCipherSuiteHeaders; this.enableWafFailOpen = $.enableWafFailOpen; this.enableXffClientPort = $.enableXffClientPort; + this.enableZonalShift = $.enableZonalShift; this.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic = $.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; this.idleTimeout = $.idleTimeout; this.internal = $.internal; @@ -734,6 +750,27 @@ public Builder enableXffClientPort(Boolean enableXffClientPort) { return enableXffClientPort(Output.of(enableXffClientPort)); } + /** + * @param enableZonalShift Whether zonal shift is enabled. Defaults to `false`. + * + * @return builder + * + */ + public Builder enableZonalShift(@Nullable Output enableZonalShift) { + $.enableZonalShift = enableZonalShift; + return this; + } + + /** + * @param enableZonalShift Whether zonal shift is enabled. Defaults to `false`. + * + * @return builder + * + */ + public Builder enableZonalShift(Boolean enableZonalShift) { + return enableZonalShift(Output.of(enableZonalShift)); + } + /** * @param enforceSecurityGroupInboundRulesOnPrivateLinkTraffic Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerState.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerState.java index af002a67104..6097fa8259f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerState.java @@ -197,6 +197,21 @@ public Optional>> tagsAll() { return Optional.ofNullable(this.tagsAll); } + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + @Import(name="tcpIdleTimeoutSeconds") + private @Nullable Output tcpIdleTimeoutSeconds; + + /** + * @return TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + public Optional> tcpIdleTimeoutSeconds() { + return Optional.ofNullable(this.tcpIdleTimeoutSeconds); + } + private ListenerState() {} private ListenerState(ListenerState $) { @@ -211,6 +226,7 @@ private ListenerState(ListenerState $) { this.sslPolicy = $.sslPolicy; this.tags = $.tags; this.tagsAll = $.tagsAll; + this.tcpIdleTimeoutSeconds = $.tcpIdleTimeoutSeconds; } public static Builder builder() { @@ -484,6 +500,27 @@ public Builder tagsAll(Map tagsAll) { return tagsAll(Output.of(tagsAll)); } + /** + * @param tcpIdleTimeoutSeconds TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + * @return builder + * + */ + public Builder tcpIdleTimeoutSeconds(@Nullable Output tcpIdleTimeoutSeconds) { + $.tcpIdleTimeoutSeconds = tcpIdleTimeoutSeconds; + return this; + } + + /** + * @param tcpIdleTimeoutSeconds TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + * @return builder + * + */ + public Builder tcpIdleTimeoutSeconds(Integer tcpIdleTimeoutSeconds) { + return tcpIdleTimeoutSeconds(Output.of(tcpIdleTimeoutSeconds)); + } + public ListenerState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/LoadBalancerState.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/LoadBalancerState.java index ec30f9e93cc..56f9fc86e0a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/LoadBalancerState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/LoadBalancerState.java @@ -262,6 +262,21 @@ public Optional> enableXffClientPort() { return Optional.ofNullable(this.enableXffClientPort); } + /** + * Whether zonal shift is enabled. Defaults to `false`. + * + */ + @Import(name="enableZonalShift") + private @Nullable Output enableZonalShift; + + /** + * @return Whether zonal shift is enabled. Defaults to `false`. + * + */ + public Optional> enableZonalShift() { + return Optional.ofNullable(this.enableZonalShift); + } + /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. * @@ -521,6 +536,7 @@ private LoadBalancerState(LoadBalancerState $) { this.enableTlsVersionAndCipherSuiteHeaders = $.enableTlsVersionAndCipherSuiteHeaders; this.enableWafFailOpen = $.enableWafFailOpen; this.enableXffClientPort = $.enableXffClientPort; + this.enableZonalShift = $.enableZonalShift; this.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic = $.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; this.idleTimeout = $.idleTimeout; this.internal = $.internal; @@ -893,6 +909,27 @@ public Builder enableXffClientPort(Boolean enableXffClientPort) { return enableXffClientPort(Output.of(enableXffClientPort)); } + /** + * @param enableZonalShift Whether zonal shift is enabled. Defaults to `false`. + * + * @return builder + * + */ + public Builder enableZonalShift(@Nullable Output enableZonalShift) { + $.enableZonalShift = enableZonalShift; + return this; + } + + /** + * @param enableZonalShift Whether zonal shift is enabled. Defaults to `false`. + * + * @return builder + * + */ + public Builder enableZonalShift(Boolean enableZonalShift) { + return enableZonalShift(Output.of(enableZonalShift)); + } + /** * @param enforceSecurityGroupInboundRulesOnPrivateLinkTraffic Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/GetLoadBalancerResult.java b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/GetLoadBalancerResult.java index ea936022614..a4cf078c6f5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/GetLoadBalancerResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/outputs/GetLoadBalancerResult.java @@ -33,6 +33,7 @@ public final class GetLoadBalancerResult { private Boolean enableTlsVersionAndCipherSuiteHeaders; private Boolean enableWafFailOpen; private Boolean enableXffClientPort; + private Boolean enableZonalShift; private String enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; /** * @return The provider-assigned unique ID for this managed resource. @@ -102,6 +103,9 @@ public Boolean enableWafFailOpen() { public Boolean enableXffClientPort() { return this.enableXffClientPort; } + public Boolean enableZonalShift() { + return this.enableZonalShift; + } public String enforceSecurityGroupInboundRulesOnPrivateLinkTraffic() { return this.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; } @@ -177,6 +181,7 @@ public static final class Builder { private Boolean enableTlsVersionAndCipherSuiteHeaders; private Boolean enableWafFailOpen; private Boolean enableXffClientPort; + private Boolean enableZonalShift; private String enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; private String id; private Integer idleTimeout; @@ -211,6 +216,7 @@ public Builder(GetLoadBalancerResult defaults) { this.enableTlsVersionAndCipherSuiteHeaders = defaults.enableTlsVersionAndCipherSuiteHeaders; this.enableWafFailOpen = defaults.enableWafFailOpen; this.enableXffClientPort = defaults.enableXffClientPort; + this.enableZonalShift = defaults.enableZonalShift; this.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic = defaults.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; this.id = defaults.id; this.idleTimeout = defaults.idleTimeout; @@ -360,6 +366,14 @@ public Builder enableXffClientPort(Boolean enableXffClientPort) { return this; } @CustomType.Setter + public Builder enableZonalShift(Boolean enableZonalShift) { + if (enableZonalShift == null) { + throw new MissingRequiredPropertyException("GetLoadBalancerResult", "enableZonalShift"); + } + this.enableZonalShift = enableZonalShift; + return this; + } + @CustomType.Setter public Builder enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(String enforceSecurityGroupInboundRulesOnPrivateLinkTraffic) { if (enforceSecurityGroupInboundRulesOnPrivateLinkTraffic == null) { throw new MissingRequiredPropertyException("GetLoadBalancerResult", "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"); @@ -506,6 +520,7 @@ public GetLoadBalancerResult build() { _resultValue.enableTlsVersionAndCipherSuiteHeaders = enableTlsVersionAndCipherSuiteHeaders; _resultValue.enableWafFailOpen = enableWafFailOpen; _resultValue.enableXffClientPort = enableXffClientPort; + _resultValue.enableZonalShift = enableZonalShift; _resultValue.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic = enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; _resultValue.id = id; _resultValue.idleTimeout = idleTimeout; diff --git a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/DeploymentConfig.java b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/DeploymentConfig.java index c9231a4989b..b46f6cc4800 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/DeploymentConfig.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/DeploymentConfig.java @@ -8,6 +8,7 @@ import com.pulumi.aws.codedeploy.inputs.DeploymentConfigState; import com.pulumi.aws.codedeploy.outputs.DeploymentConfigMinimumHealthyHosts; import com.pulumi.aws.codedeploy.outputs.DeploymentConfigTrafficRoutingConfig; +import com.pulumi.aws.codedeploy.outputs.DeploymentConfigZonalConfig; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; @@ -251,6 +252,20 @@ public Output> minimumHealthyHosts public Output> trafficRoutingConfig() { return Codegen.optional(this.trafficRoutingConfig); } + /** + * A zonal_config block. Zonal Config is documented below. + * + */ + @Export(name="zonalConfig", refs={DeploymentConfigZonalConfig.class}, tree="[0]") + private Output zonalConfig; + + /** + * @return A zonal_config block. Zonal Config is documented below. + * + */ + public Output> zonalConfig() { + return Codegen.optional(this.zonalConfig); + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/DeploymentConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/DeploymentConfigArgs.java index 40276ff35cf..a80b81ed21a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/DeploymentConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/DeploymentConfigArgs.java @@ -5,6 +5,7 @@ import com.pulumi.aws.codedeploy.inputs.DeploymentConfigMinimumHealthyHostsArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentConfigTrafficRoutingConfigArgs; +import com.pulumi.aws.codedeploy.inputs.DeploymentConfigZonalConfigArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.String; @@ -77,6 +78,21 @@ public Optional> trafficRouting return Optional.ofNullable(this.trafficRoutingConfig); } + /** + * A zonal_config block. Zonal Config is documented below. + * + */ + @Import(name="zonalConfig") + private @Nullable Output zonalConfig; + + /** + * @return A zonal_config block. Zonal Config is documented below. + * + */ + public Optional> zonalConfig() { + return Optional.ofNullable(this.zonalConfig); + } + private DeploymentConfigArgs() {} private DeploymentConfigArgs(DeploymentConfigArgs $) { @@ -84,6 +100,7 @@ private DeploymentConfigArgs(DeploymentConfigArgs $) { this.deploymentConfigName = $.deploymentConfigName; this.minimumHealthyHosts = $.minimumHealthyHosts; this.trafficRoutingConfig = $.trafficRoutingConfig; + this.zonalConfig = $.zonalConfig; } public static Builder builder() { @@ -188,6 +205,27 @@ public Builder trafficRoutingConfig(DeploymentConfigTrafficRoutingConfigArgs tra return trafficRoutingConfig(Output.of(trafficRoutingConfig)); } + /** + * @param zonalConfig A zonal_config block. Zonal Config is documented below. + * + * @return builder + * + */ + public Builder zonalConfig(@Nullable Output zonalConfig) { + $.zonalConfig = zonalConfig; + return this; + } + + /** + * @param zonalConfig A zonal_config block. Zonal Config is documented below. + * + * @return builder + * + */ + public Builder zonalConfig(DeploymentConfigZonalConfigArgs zonalConfig) { + return zonalConfig(Output.of(zonalConfig)); + } + public DeploymentConfigArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentConfigState.java b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentConfigState.java index 5d47a4515cb..4c46d365150 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentConfigState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentConfigState.java @@ -5,6 +5,7 @@ import com.pulumi.aws.codedeploy.inputs.DeploymentConfigMinimumHealthyHostsArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentConfigTrafficRoutingConfigArgs; +import com.pulumi.aws.codedeploy.inputs.DeploymentConfigZonalConfigArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.String; @@ -107,6 +108,21 @@ public Optional> trafficRouting return Optional.ofNullable(this.trafficRoutingConfig); } + /** + * A zonal_config block. Zonal Config is documented below. + * + */ + @Import(name="zonalConfig") + private @Nullable Output zonalConfig; + + /** + * @return A zonal_config block. Zonal Config is documented below. + * + */ + public Optional> zonalConfig() { + return Optional.ofNullable(this.zonalConfig); + } + private DeploymentConfigState() {} private DeploymentConfigState(DeploymentConfigState $) { @@ -116,6 +132,7 @@ private DeploymentConfigState(DeploymentConfigState $) { this.deploymentConfigName = $.deploymentConfigName; this.minimumHealthyHosts = $.minimumHealthyHosts; this.trafficRoutingConfig = $.trafficRoutingConfig; + this.zonalConfig = $.zonalConfig; } public static Builder builder() { @@ -262,6 +279,27 @@ public Builder trafficRoutingConfig(DeploymentConfigTrafficRoutingConfigArgs tra return trafficRoutingConfig(Output.of(trafficRoutingConfig)); } + /** + * @param zonalConfig A zonal_config block. Zonal Config is documented below. + * + * @return builder + * + */ + public Builder zonalConfig(@Nullable Output zonalConfig) { + $.zonalConfig = zonalConfig; + return this; + } + + /** + * @param zonalConfig A zonal_config block. Zonal Config is documented below. + * + * @return builder + * + */ + public Builder zonalConfig(DeploymentConfigZonalConfigArgs zonalConfig) { + return zonalConfig(Output.of(zonalConfig)); + } + public DeploymentConfigState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentConfigZonalConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentConfigZonalConfigArgs.java new file mode 100644 index 00000000000..14d166d3ecd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentConfigZonalConfigArgs.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.codedeploy.inputs; + +import com.pulumi.aws.codedeploy.inputs.DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DeploymentConfigZonalConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeploymentConfigZonalConfigArgs Empty = new DeploymentConfigZonalConfigArgs(); + + /** + * The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + * + */ + @Import(name="firstZoneMonitorDurationInSeconds") + private @Nullable Output firstZoneMonitorDurationInSeconds; + + /** + * @return The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + * + */ + public Optional> firstZoneMonitorDurationInSeconds() { + return Optional.ofNullable(this.firstZoneMonitorDurationInSeconds); + } + + /** + * The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + * + */ + @Import(name="minimumHealthyHostsPerZone") + private @Nullable Output minimumHealthyHostsPerZone; + + /** + * @return The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + * + */ + public Optional> minimumHealthyHostsPerZone() { + return Optional.ofNullable(this.minimumHealthyHostsPerZone); + } + + /** + * The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + * + */ + @Import(name="monitorDurationInSeconds") + private @Nullable Output monitorDurationInSeconds; + + /** + * @return The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + * + */ + public Optional> monitorDurationInSeconds() { + return Optional.ofNullable(this.monitorDurationInSeconds); + } + + private DeploymentConfigZonalConfigArgs() {} + + private DeploymentConfigZonalConfigArgs(DeploymentConfigZonalConfigArgs $) { + this.firstZoneMonitorDurationInSeconds = $.firstZoneMonitorDurationInSeconds; + this.minimumHealthyHostsPerZone = $.minimumHealthyHostsPerZone; + this.monitorDurationInSeconds = $.monitorDurationInSeconds; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeploymentConfigZonalConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeploymentConfigZonalConfigArgs $; + + public Builder() { + $ = new DeploymentConfigZonalConfigArgs(); + } + + public Builder(DeploymentConfigZonalConfigArgs defaults) { + $ = new DeploymentConfigZonalConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param firstZoneMonitorDurationInSeconds The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + * + * @return builder + * + */ + public Builder firstZoneMonitorDurationInSeconds(@Nullable Output firstZoneMonitorDurationInSeconds) { + $.firstZoneMonitorDurationInSeconds = firstZoneMonitorDurationInSeconds; + return this; + } + + /** + * @param firstZoneMonitorDurationInSeconds The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + * + * @return builder + * + */ + public Builder firstZoneMonitorDurationInSeconds(Integer firstZoneMonitorDurationInSeconds) { + return firstZoneMonitorDurationInSeconds(Output.of(firstZoneMonitorDurationInSeconds)); + } + + /** + * @param minimumHealthyHostsPerZone The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + * + * @return builder + * + */ + public Builder minimumHealthyHostsPerZone(@Nullable Output minimumHealthyHostsPerZone) { + $.minimumHealthyHostsPerZone = minimumHealthyHostsPerZone; + return this; + } + + /** + * @param minimumHealthyHostsPerZone The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + * + * @return builder + * + */ + public Builder minimumHealthyHostsPerZone(DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs minimumHealthyHostsPerZone) { + return minimumHealthyHostsPerZone(Output.of(minimumHealthyHostsPerZone)); + } + + /** + * @param monitorDurationInSeconds The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + * + * @return builder + * + */ + public Builder monitorDurationInSeconds(@Nullable Output monitorDurationInSeconds) { + $.monitorDurationInSeconds = monitorDurationInSeconds; + return this; + } + + /** + * @param monitorDurationInSeconds The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + * + * @return builder + * + */ + public Builder monitorDurationInSeconds(Integer monitorDurationInSeconds) { + return monitorDurationInSeconds(Output.of(monitorDurationInSeconds)); + } + + public DeploymentConfigZonalConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs.java new file mode 100644 index 00000000000..cefb94fab67 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/inputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs.java @@ -0,0 +1,121 @@ +// *** 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.codedeploy.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs Empty = new DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs(); + + /** + * The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + * + */ + @Import(name="type") + private @Nullable Output type; + + /** + * @return The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + * + */ + public Optional> type() { + return Optional.ofNullable(this.type); + } + + /** + * The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + * + */ + @Import(name="value") + private @Nullable Output value; + + /** + * @return The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + * + */ + public Optional> value() { + return Optional.ofNullable(this.value); + } + + private DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs() {} + + private DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs(DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs $) { + this.type = $.type; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs $; + + public Builder() { + $ = new DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs(); + } + + public Builder(DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs defaults) { + $ = new DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param type The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + * + * @return builder + * + */ + public Builder type(@Nullable Output type) { + $.type = type; + return this; + } + + /** + * @param type The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + /** + * @param value The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + * + * @return builder + * + */ + public Builder value(@Nullable Output value) { + $.value = value; + return this; + } + + /** + * @param value The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + * + * @return builder + * + */ + public Builder value(Integer value) { + return value(Output.of(value)); + } + + public DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/outputs/DeploymentConfigZonalConfig.java b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/outputs/DeploymentConfigZonalConfig.java new file mode 100644 index 00000000000..af975fed44c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/outputs/DeploymentConfigZonalConfig.java @@ -0,0 +1,100 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.codedeploy.outputs; + +import com.pulumi.aws.codedeploy.outputs.DeploymentConfigZonalConfigMinimumHealthyHostsPerZone; +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeploymentConfigZonalConfig { + /** + * @return The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + * + */ + private @Nullable Integer firstZoneMonitorDurationInSeconds; + /** + * @return The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + * + */ + private @Nullable DeploymentConfigZonalConfigMinimumHealthyHostsPerZone minimumHealthyHostsPerZone; + /** + * @return The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + * + */ + private @Nullable Integer monitorDurationInSeconds; + + private DeploymentConfigZonalConfig() {} + /** + * @return The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + * + */ + public Optional firstZoneMonitorDurationInSeconds() { + return Optional.ofNullable(this.firstZoneMonitorDurationInSeconds); + } + /** + * @return The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + * + */ + public Optional minimumHealthyHostsPerZone() { + return Optional.ofNullable(this.minimumHealthyHostsPerZone); + } + /** + * @return The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + * + */ + public Optional monitorDurationInSeconds() { + return Optional.ofNullable(this.monitorDurationInSeconds); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeploymentConfigZonalConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer firstZoneMonitorDurationInSeconds; + private @Nullable DeploymentConfigZonalConfigMinimumHealthyHostsPerZone minimumHealthyHostsPerZone; + private @Nullable Integer monitorDurationInSeconds; + public Builder() {} + public Builder(DeploymentConfigZonalConfig defaults) { + Objects.requireNonNull(defaults); + this.firstZoneMonitorDurationInSeconds = defaults.firstZoneMonitorDurationInSeconds; + this.minimumHealthyHostsPerZone = defaults.minimumHealthyHostsPerZone; + this.monitorDurationInSeconds = defaults.monitorDurationInSeconds; + } + + @CustomType.Setter + public Builder firstZoneMonitorDurationInSeconds(@Nullable Integer firstZoneMonitorDurationInSeconds) { + + this.firstZoneMonitorDurationInSeconds = firstZoneMonitorDurationInSeconds; + return this; + } + @CustomType.Setter + public Builder minimumHealthyHostsPerZone(@Nullable DeploymentConfigZonalConfigMinimumHealthyHostsPerZone minimumHealthyHostsPerZone) { + + this.minimumHealthyHostsPerZone = minimumHealthyHostsPerZone; + return this; + } + @CustomType.Setter + public Builder monitorDurationInSeconds(@Nullable Integer monitorDurationInSeconds) { + + this.monitorDurationInSeconds = monitorDurationInSeconds; + return this; + } + public DeploymentConfigZonalConfig build() { + final var _resultValue = new DeploymentConfigZonalConfig(); + _resultValue.firstZoneMonitorDurationInSeconds = firstZoneMonitorDurationInSeconds; + _resultValue.minimumHealthyHostsPerZone = minimumHealthyHostsPerZone; + _resultValue.monitorDurationInSeconds = monitorDurationInSeconds; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/codedeploy/outputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZone.java b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/outputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZone.java new file mode 100644 index 00000000000..2ccfda96728 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/codedeploy/outputs/DeploymentConfigZonalConfigMinimumHealthyHostsPerZone.java @@ -0,0 +1,79 @@ +// *** 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.codedeploy.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DeploymentConfigZonalConfigMinimumHealthyHostsPerZone { + /** + * @return The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + * + */ + private @Nullable String type; + /** + * @return The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + * + */ + private @Nullable Integer value; + + private DeploymentConfigZonalConfigMinimumHealthyHostsPerZone() {} + /** + * @return The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + * + */ + public Optional type() { + return Optional.ofNullable(this.type); + } + /** + * @return The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + * + */ + public Optional value() { + return Optional.ofNullable(this.value); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DeploymentConfigZonalConfigMinimumHealthyHostsPerZone defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String type; + private @Nullable Integer value; + public Builder() {} + public Builder(DeploymentConfigZonalConfigMinimumHealthyHostsPerZone defaults) { + Objects.requireNonNull(defaults); + this.type = defaults.type; + this.value = defaults.value; + } + + @CustomType.Setter + public Builder type(@Nullable String type) { + + this.type = type; + return this; + } + @CustomType.Setter + public Builder value(@Nullable Integer value) { + + this.value = value; + return this; + } + public DeploymentConfigZonalConfigMinimumHealthyHostsPerZone build() { + final var _resultValue = new DeploymentConfigZonalConfigMinimumHealthyHostsPerZone(); + _resultValue.type = type; + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/costexplorer/inputs/AnomalySubscriptionThresholdExpressionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/costexplorer/inputs/AnomalySubscriptionThresholdExpressionArgs.java index 7b4e4129c7f..ff80afef527 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/costexplorer/inputs/AnomalySubscriptionThresholdExpressionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/costexplorer/inputs/AnomalySubscriptionThresholdExpressionArgs.java @@ -67,14 +67,14 @@ public Optional> dim } /** - * Return results that match both Dimension object. + * Return results that do not match the Dimension object. * */ @Import(name="not") private @Nullable Output not; /** - * @return Return results that match both Dimension object. + * @return Return results that do not match the Dimension object. * */ public Optional> not() { @@ -82,14 +82,14 @@ public Optional> not() { } /** - * Return results that match both Dimension object. + * Return results that match either Dimension object. * */ @Import(name="ors") private @Nullable Output> ors; /** - * @return Return results that match both Dimension object. + * @return Return results that match either Dimension object. * */ public Optional>> ors() { @@ -214,7 +214,7 @@ public Builder dimension(AnomalySubscriptionThresholdExpressionDimensionArgs dim } /** - * @param not Return results that match both Dimension object. + * @param not Return results that do not match the Dimension object. * * @return builder * @@ -225,7 +225,7 @@ public Builder not(@Nullable Output ors) { } /** - * @param ors Return results that match both Dimension object. + * @param ors Return results that match either Dimension object. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/costexplorer/outputs/AnomalySubscriptionThresholdExpression.java b/sdk/java/src/main/java/com/pulumi/aws/costexplorer/outputs/AnomalySubscriptionThresholdExpression.java index 58a0ebe128f..94a66d5d7d6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/costexplorer/outputs/AnomalySubscriptionThresholdExpression.java +++ b/sdk/java/src/main/java/com/pulumi/aws/costexplorer/outputs/AnomalySubscriptionThresholdExpression.java @@ -33,12 +33,12 @@ public final class AnomalySubscriptionThresholdExpression { */ private @Nullable AnomalySubscriptionThresholdExpressionDimension dimension; /** - * @return Return results that match both Dimension object. + * @return Return results that do not match the Dimension object. * */ private @Nullable AnomalySubscriptionThresholdExpressionNot not; /** - * @return Return results that match both Dimension object. + * @return Return results that match either Dimension object. * */ private @Nullable List ors; @@ -71,14 +71,14 @@ public Optional dimension() { return Optional.ofNullable(this.dimension); } /** - * @return Return results that match both Dimension object. + * @return Return results that do not match the Dimension object. * */ public Optional not() { return Optional.ofNullable(this.not); } /** - * @return Return results that match both Dimension object. + * @return Return results that match either Dimension object. * */ public List ors() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/dynamodb/KinesisStreamingDestination.java b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/KinesisStreamingDestination.java index d0aec2564fd..9b61d1f2cd3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/dynamodb/KinesisStreamingDestination.java +++ b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/KinesisStreamingDestination.java @@ -63,6 +63,7 @@ * var exampleKinesisStreamingDestination = new KinesisStreamingDestination("exampleKinesisStreamingDestination", KinesisStreamingDestinationArgs.builder() * .streamArn(exampleStream.arn()) * .tableName(example.name()) + * .approximateCreationDateTimePrecision("MICROSECOND") * .build()); * * } @@ -82,6 +83,20 @@ */ @ResourceType(type="aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination") public class KinesisStreamingDestination extends com.pulumi.resources.CustomResource { + /** + * Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + * + */ + @Export(name="approximateCreationDateTimePrecision", refs={String.class}, tree="[0]") + private Output approximateCreationDateTimePrecision; + + /** + * @return Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + * + */ + public Output approximateCreationDateTimePrecision() { + return this.approximateCreationDateTimePrecision; + } /** * The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. * @@ -97,16 +112,14 @@ public Output streamArn() { return this.streamArn; } /** - * The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. * */ @Export(name="tableName", refs={String.class}, tree="[0]") private Output tableName; /** - * @return The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * @return The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. * */ public Output tableName() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/dynamodb/KinesisStreamingDestinationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/KinesisStreamingDestinationArgs.java index 1065ca3140e..75781da339d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/dynamodb/KinesisStreamingDestinationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/KinesisStreamingDestinationArgs.java @@ -8,12 +8,29 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.String; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; public final class KinesisStreamingDestinationArgs extends com.pulumi.resources.ResourceArgs { public static final KinesisStreamingDestinationArgs Empty = new KinesisStreamingDestinationArgs(); + /** + * Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + * + */ + @Import(name="approximateCreationDateTimePrecision") + private @Nullable Output approximateCreationDateTimePrecision; + + /** + * @return Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + * + */ + public Optional> approximateCreationDateTimePrecision() { + return Optional.ofNullable(this.approximateCreationDateTimePrecision); + } + /** * The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. * @@ -30,16 +47,14 @@ public Output streamArn() { } /** - * The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. * */ @Import(name="tableName", required=true) private Output tableName; /** - * @return The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * @return The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. * */ public Output tableName() { @@ -49,6 +64,7 @@ public Output tableName() { private KinesisStreamingDestinationArgs() {} private KinesisStreamingDestinationArgs(KinesisStreamingDestinationArgs $) { + this.approximateCreationDateTimePrecision = $.approximateCreationDateTimePrecision; this.streamArn = $.streamArn; this.tableName = $.tableName; } @@ -71,6 +87,27 @@ public Builder(KinesisStreamingDestinationArgs defaults) { $ = new KinesisStreamingDestinationArgs(Objects.requireNonNull(defaults)); } + /** + * @param approximateCreationDateTimePrecision Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + * + * @return builder + * + */ + public Builder approximateCreationDateTimePrecision(@Nullable Output approximateCreationDateTimePrecision) { + $.approximateCreationDateTimePrecision = approximateCreationDateTimePrecision; + return this; + } + + /** + * @param approximateCreationDateTimePrecision Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + * + * @return builder + * + */ + public Builder approximateCreationDateTimePrecision(String approximateCreationDateTimePrecision) { + return approximateCreationDateTimePrecision(Output.of(approximateCreationDateTimePrecision)); + } + /** * @param streamArn The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. * @@ -93,8 +130,7 @@ public Builder streamArn(String streamArn) { } /** - * @param tableName The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * @param tableName The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. * * @return builder * @@ -105,8 +141,7 @@ public Builder tableName(Output tableName) { } /** - * @param tableName The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * @param tableName The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/dynamodb/inputs/KinesisStreamingDestinationState.java b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/inputs/KinesisStreamingDestinationState.java index 60afa4501e1..c87a0bb6d06 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/dynamodb/inputs/KinesisStreamingDestinationState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/inputs/KinesisStreamingDestinationState.java @@ -15,6 +15,21 @@ public final class KinesisStreamingDestinationState extends com.pulumi.resources public static final KinesisStreamingDestinationState Empty = new KinesisStreamingDestinationState(); + /** + * Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + * + */ + @Import(name="approximateCreationDateTimePrecision") + private @Nullable Output approximateCreationDateTimePrecision; + + /** + * @return Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + * + */ + public Optional> approximateCreationDateTimePrecision() { + return Optional.ofNullable(this.approximateCreationDateTimePrecision); + } + /** * The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. * @@ -31,16 +46,14 @@ public Optional> streamArn() { } /** - * The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. * */ @Import(name="tableName") private @Nullable Output tableName; /** - * @return The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * @return The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. * */ public Optional> tableName() { @@ -50,6 +63,7 @@ public Optional> tableName() { private KinesisStreamingDestinationState() {} private KinesisStreamingDestinationState(KinesisStreamingDestinationState $) { + this.approximateCreationDateTimePrecision = $.approximateCreationDateTimePrecision; this.streamArn = $.streamArn; this.tableName = $.tableName; } @@ -72,6 +86,27 @@ public Builder(KinesisStreamingDestinationState defaults) { $ = new KinesisStreamingDestinationState(Objects.requireNonNull(defaults)); } + /** + * @param approximateCreationDateTimePrecision Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + * + * @return builder + * + */ + public Builder approximateCreationDateTimePrecision(@Nullable Output approximateCreationDateTimePrecision) { + $.approximateCreationDateTimePrecision = approximateCreationDateTimePrecision; + return this; + } + + /** + * @param approximateCreationDateTimePrecision Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + * + * @return builder + * + */ + public Builder approximateCreationDateTimePrecision(String approximateCreationDateTimePrecision) { + return approximateCreationDateTimePrecision(Output.of(approximateCreationDateTimePrecision)); + } + /** * @param streamArn The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. * @@ -94,8 +129,7 @@ public Builder streamArn(String streamArn) { } /** - * @param tableName The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * @param tableName The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. * * @return builder * @@ -106,8 +140,7 @@ public Builder tableName(@Nullable Output tableName) { } /** - * @param tableName The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * @param tableName The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/Ec2Functions.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/Ec2Functions.java index 919b43805bc..04b9822e34a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/Ec2Functions.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/Ec2Functions.java @@ -15348,7 +15348,7 @@ public static CompletableFuture getSpotPricePlain(GetSpotPri * .id(subnetId) * .build()); * - * var subnet = new SecurityGroup("subnet", SecurityGroupArgs.builder() + * var subnetSecurityGroup = new SecurityGroup("subnetSecurityGroup", SecurityGroupArgs.builder() * .vpcId(selected.applyValue(getSubnetResult -> getSubnetResult.vpcId())) * .ingress(SecurityGroupIngressArgs.builder() * .cidrBlocks(selected.applyValue(getSubnetResult -> getSubnetResult.cidrBlock())) @@ -15449,7 +15449,7 @@ public static Output getSubnet() { * .id(subnetId) * .build()); * - * var subnet = new SecurityGroup("subnet", SecurityGroupArgs.builder() + * var subnetSecurityGroup = new SecurityGroup("subnetSecurityGroup", SecurityGroupArgs.builder() * .vpcId(selected.applyValue(getSubnetResult -> getSubnetResult.vpcId())) * .ingress(SecurityGroupIngressArgs.builder() * .cidrBlocks(selected.applyValue(getSubnetResult -> getSubnetResult.cidrBlock())) @@ -15550,7 +15550,7 @@ public static CompletableFuture getSubnetPlain() { * .id(subnetId) * .build()); * - * var subnet = new SecurityGroup("subnet", SecurityGroupArgs.builder() + * var subnetSecurityGroup = new SecurityGroup("subnetSecurityGroup", SecurityGroupArgs.builder() * .vpcId(selected.applyValue(getSubnetResult -> getSubnetResult.vpcId())) * .ingress(SecurityGroupIngressArgs.builder() * .cidrBlocks(selected.applyValue(getSubnetResult -> getSubnetResult.cidrBlock())) @@ -15651,7 +15651,7 @@ public static Output getSubnet(GetSubnetArgs args) { * .id(subnetId) * .build()); * - * var subnet = new SecurityGroup("subnet", SecurityGroupArgs.builder() + * var subnetSecurityGroup = new SecurityGroup("subnetSecurityGroup", SecurityGroupArgs.builder() * .vpcId(selected.applyValue(getSubnetResult -> getSubnetResult.vpcId())) * .ingress(SecurityGroupIngressArgs.builder() * .cidrBlocks(selected.applyValue(getSubnetResult -> getSubnetResult.cidrBlock())) @@ -15752,7 +15752,7 @@ public static CompletableFuture getSubnetPlain(GetSubnetPlainAr * .id(subnetId) * .build()); * - * var subnet = new SecurityGroup("subnet", SecurityGroupArgs.builder() + * var subnetSecurityGroup = new SecurityGroup("subnetSecurityGroup", SecurityGroupArgs.builder() * .vpcId(selected.applyValue(getSubnetResult -> getSubnetResult.vpcId())) * .ingress(SecurityGroupIngressArgs.builder() * .cidrBlocks(selected.applyValue(getSubnetResult -> getSubnetResult.cidrBlock())) @@ -15853,7 +15853,7 @@ public static Output getSubnet(GetSubnetArgs args, InvokeOption * .id(subnetId) * .build()); * - * var subnet = new SecurityGroup("subnet", SecurityGroupArgs.builder() + * var subnetSecurityGroup = new SecurityGroup("subnetSecurityGroup", SecurityGroupArgs.builder() * .vpcId(selected.applyValue(getSubnetResult -> getSubnetResult.vpcId())) * .ingress(SecurityGroupIngressArgs.builder() * .cidrBlocks(selected.applyValue(getSubnetResult -> getSubnetResult.cidrBlock())) diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/Cluster.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/Cluster.java index 12135bf822e..1e69ef5dfc0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/Cluster.java @@ -431,14 +431,14 @@ public Output configurationEndpoint() { return this.configurationEndpoint; } /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. * */ @Export(name="engine", refs={String.class}, tree="[0]") private Output engine; /** - * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. * */ public Output engine() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ClusterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ClusterArgs.java index c1dd9f24cf1..603a6152eeb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ClusterArgs.java @@ -100,14 +100,14 @@ public Optional> clusterId() { } /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. * */ @Import(name="engine") private @Nullable Output engine; /** - * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. * */ public Optional> engine() { @@ -649,7 +649,7 @@ public Builder clusterId(String clusterId) { } /** - * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. * * @return builder * @@ -660,7 +660,7 @@ public Builder engine(@Nullable Output engine) { } /** - * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/GlobalReplicationGroup.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/GlobalReplicationGroup.java index 1189e44c4c6..793de3f2462 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/GlobalReplicationGroup.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/GlobalReplicationGroup.java @@ -79,7 +79,7 @@ * * <!--End PulumiCodeChooser --> * - * ### Managing Redis Engine Versions + * ### Managing Redis OOS/Valkey Engine Versions * * The initial Redis version is determined by the version set on the primary replication group. * However, once it is part of a Global Replication Group, diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java index 59fc30a9a46..de04f34fb42 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroup.java @@ -43,7 +43,7 @@ * * ## Example Usage * - * ### Redis Cluster Mode Disabled + * ### Redis OSS/Valkey Cluster Mode Disabled * * To create a single shard primary with single read replica: * @@ -147,7 +147,7 @@ * * <!--End PulumiCodeChooser --> * - * ### Redis Cluster Mode Enabled + * ### Redis OSS/Valkey Cluster Mode Enabled * * To create two shards with a primary and a single read replica each: * @@ -440,7 +440,7 @@ public Output> authTokenUpdateStrategy() { } /** * Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. * */ @@ -449,7 +449,7 @@ public Output> authTokenUpdateStrategy() { /** * @return Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. * */ @@ -541,14 +541,14 @@ public Output description() { return this.description; } /** - * Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. * */ @Export(name="engine", refs={String.class}, tree="[0]") private Output engine; /** - * @return Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * @return Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. * */ public Output> engine() { @@ -649,14 +649,14 @@ public Output> kmsKeyId() { return Codegen.optional(this.kmsKeyId); } /** - * Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. * */ @Export(name="logDeliveryConfigurations", refs={List.class,ReplicationGroupLogDeliveryConfiguration.class}, tree="[0,1]") private Output> logDeliveryConfigurations; /** - * @return Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * @return Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. * */ public Output>> logDeliveryConfigurations() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java index 067dff04ded..a3bb70331d3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ReplicationGroupArgs.java @@ -83,7 +83,7 @@ public Optional> authTokenUpdateStrategy() { /** * Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. * */ @@ -92,7 +92,7 @@ public Optional> authTokenUpdateStrategy() { /** * @return Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. * */ @@ -161,14 +161,14 @@ public Output description() { } /** - * Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. * */ @Import(name="engine") private @Nullable Output engine; /** - * @return Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * @return Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. * */ public Optional> engine() { @@ -261,14 +261,14 @@ public Optional> kmsKeyId() { } /** - * Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. * */ @Import(name="logDeliveryConfigurations") private @Nullable Output> logDeliveryConfigurations; /** - * @return Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * @return Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. * */ public Optional>> logDeliveryConfigurations() { @@ -812,7 +812,7 @@ public Builder authTokenUpdateStrategy(String authTokenUpdateStrategy) { /** * @param autoMinorVersionUpgrade Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. * * @return builder @@ -825,7 +825,7 @@ public Builder autoMinorVersionUpgrade(@Nullable Output autoMinorVersio /** * @param autoMinorVersionUpgrade Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. * * @return builder @@ -920,7 +920,7 @@ public Builder description(String description) { } /** - * @param engine Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * @param engine Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. * * @return builder * @@ -931,7 +931,7 @@ public Builder engine(@Nullable Output engine) { } /** - * @param engine Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * @param engine Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. * * @return builder * @@ -1056,7 +1056,7 @@ public Builder kmsKeyId(String kmsKeyId) { } /** - * @param logDeliveryConfigurations Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * @param logDeliveryConfigurations Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. * * @return builder * @@ -1067,7 +1067,7 @@ public Builder logDeliveryConfigurations(@Nullable Output * <!--End PulumiCodeChooser --> * - * ### Redis Serverless + * ### Redis OSS Serverless * * <!--Start PulumiCodeChooser --> *
@@ -132,6 +132,60 @@
  * 
* <!--End PulumiCodeChooser --> * + * ### Valkey Serverless + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.elasticache.ServerlessCache;
+ * import com.pulumi.aws.elasticache.ServerlessCacheArgs;
+ * import com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsArgs;
+ * import com.pulumi.aws.elasticache.inputs.ServerlessCacheCacheUsageLimitsDataStorageArgs;
+ * 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 ServerlessCache("example", ServerlessCacheArgs.builder()
+ *             .engine("valkey")
+ *             .name("example")
+ *             .cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs.builder()
+ *                 .dataStorage(ServerlessCacheCacheUsageLimitsDataStorageArgs.builder()
+ *                     .maximum(10)
+ *                     .unit("GB")
+ *                     .build())
+ *                 .ecpuPerSeconds(ServerlessCacheCacheUsageLimitsEcpuPerSecondArgs.builder()
+ *                     .maximum(5000)
+ *                     .build())
+ *                 .build())
+ *             .dailySnapshotTime("09:00")
+ *             .description("Test Server")
+ *             .kmsKeyId(test.arn())
+ *             .majorEngineVersion("7")
+ *             .snapshotRetentionLimit(1)
+ *             .securityGroupIds(testAwsSecurityGroup.id())
+ *             .subnetIds(testAwsSubnet.stream().map(element -> element.id()).collect(toList()))
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * * ## Import * * Using `pulumi import`, import ElastiCache Serverless Cache using the `name`. For example: @@ -186,14 +240,14 @@ public Output createTime() { return this.createTime; } /** - * The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. * */ @Export(name="dailySnapshotTime", refs={String.class}, tree="[0]") private Output dailySnapshotTime; /** - * @return The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * @return The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. * */ public Output dailySnapshotTime() { @@ -228,14 +282,14 @@ public Output> endpoints() { return this.endpoints; } /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. * */ @Export(name="engine", refs={String.class}, tree="[0]") private Output engine; /** - * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. * */ public Output engine() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ServerlessCacheArgs.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ServerlessCacheArgs.java index 187de2f6425..2916fa38040 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/ServerlessCacheArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/ServerlessCacheArgs.java @@ -37,14 +37,14 @@ public Optional> cacheUsageLimits() } /** - * The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. * */ @Import(name="dailySnapshotTime") private @Nullable Output dailySnapshotTime; /** - * @return The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * @return The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. * */ public Optional> dailySnapshotTime() { @@ -67,14 +67,14 @@ public Optional> description() { } /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. * */ @Import(name="engine", required=true) private Output engine; /** - * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. * */ public Output engine() { @@ -288,7 +288,7 @@ public Builder cacheUsageLimits(ServerlessCacheCacheUsageLimitsArgs cacheUsageLi } /** - * @param dailySnapshotTime The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * @param dailySnapshotTime The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. * * @return builder * @@ -299,7 +299,7 @@ public Builder dailySnapshotTime(@Nullable Output dailySnapshotTime) { } /** - * @param dailySnapshotTime The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * @param dailySnapshotTime The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. * * @return builder * @@ -330,7 +330,7 @@ public Builder description(String description) { } /** - * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. * * @return builder * @@ -341,7 +341,7 @@ public Builder engine(Output engine) { } /** - * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ClusterState.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ClusterState.java index 96912f4ce72..0e2cca11717 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ClusterState.java @@ -161,14 +161,14 @@ public Optional> configurationEndpoint() { } /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. * */ @Import(name="engine") private @Nullable Output engine; /** - * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. * */ public Optional> engine() { @@ -848,7 +848,7 @@ public Builder configurationEndpoint(String configurationEndpoint) { } /** - * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. * * @return builder * @@ -859,7 +859,7 @@ public Builder engine(@Nullable Output engine) { } /** - * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/GetReservedCacheNodeOfferingArgs.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/GetReservedCacheNodeOfferingArgs.java index 27583f520de..fa1493a523b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/GetReservedCacheNodeOfferingArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/GetReservedCacheNodeOfferingArgs.java @@ -73,7 +73,7 @@ public Output offeringType() { /** * Engine type for the reserved cache node. - * Valid values are `redis` and `memcached`. + * Valid values are `redis`, `valkey` and `memcached`. * */ @Import(name="productDescription", required=true) @@ -81,7 +81,7 @@ public Output offeringType() { /** * @return Engine type for the reserved cache node. - * Valid values are `redis` and `memcached`. + * Valid values are `redis`, `valkey` and `memcached`. * */ public Output productDescription() { @@ -192,7 +192,7 @@ public Builder offeringType(String offeringType) { /** * @param productDescription Engine type for the reserved cache node. - * Valid values are `redis` and `memcached`. + * Valid values are `redis`, `valkey` and `memcached`. * * @return builder * @@ -204,7 +204,7 @@ public Builder productDescription(Output productDescription) { /** * @param productDescription Engine type for the reserved cache node. - * Valid values are `redis` and `memcached`. + * Valid values are `redis`, `valkey` and `memcached`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/GetReservedCacheNodeOfferingPlainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/GetReservedCacheNodeOfferingPlainArgs.java index e522f86842d..9deaf431e5a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/GetReservedCacheNodeOfferingPlainArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/GetReservedCacheNodeOfferingPlainArgs.java @@ -72,7 +72,7 @@ public String offeringType() { /** * Engine type for the reserved cache node. - * Valid values are `redis` and `memcached`. + * Valid values are `redis`, `valkey` and `memcached`. * */ @Import(name="productDescription", required=true) @@ -80,7 +80,7 @@ public String offeringType() { /** * @return Engine type for the reserved cache node. - * Valid values are `redis` and `memcached`. + * Valid values are `redis`, `valkey` and `memcached`. * */ public String productDescription() { @@ -155,7 +155,7 @@ public Builder offeringType(String offeringType) { /** * @param productDescription Engine type for the reserved cache node. - * Valid values are `redis` and `memcached`. + * Valid values are `redis`, `valkey` and `memcached`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java index 3ebf77c66b8..73dd43398c2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/inputs/ReplicationGroupState.java @@ -97,7 +97,7 @@ public Optional> authTokenUpdateStrategy() { /** * Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. * */ @@ -106,7 +106,7 @@ public Optional> authTokenUpdateStrategy() { /** * @return Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. * */ @@ -205,14 +205,14 @@ public Optional> description() { } /** - * Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. * */ @Import(name="engine") private @Nullable Output engine; /** - * @return Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * @return Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. * */ public Optional> engine() { @@ -320,14 +320,14 @@ public Optional> kmsKeyId() { } /** - * Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. * */ @Import(name="logDeliveryConfigurations") private @Nullable Output> logDeliveryConfigurations; /** - * @return Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * @return Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. * */ public Optional>> logDeliveryConfigurations() { @@ -968,7 +968,7 @@ public Builder authTokenUpdateStrategy(String authTokenUpdateStrategy) { /** * @param autoMinorVersionUpgrade Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. * * @return builder @@ -981,7 +981,7 @@ public Builder autoMinorVersionUpgrade(@Nullable Output autoMinorVersio /** * @param autoMinorVersionUpgrade Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. * * @return builder @@ -1118,7 +1118,7 @@ public Builder description(String description) { } /** - * @param engine Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * @param engine Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. * * @return builder * @@ -1129,7 +1129,7 @@ public Builder engine(@Nullable Output engine) { } /** - * @param engine Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * @param engine Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. * * @return builder * @@ -1275,7 +1275,7 @@ public Builder kmsKeyId(String kmsKeyId) { } /** - * @param logDeliveryConfigurations Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * @param logDeliveryConfigurations Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. * * @return builder * @@ -1286,7 +1286,7 @@ public Builder logDeliveryConfigurations(@Nullable Output> createTime() { } /** - * The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. * */ @Import(name="dailySnapshotTime") private @Nullable Output dailySnapshotTime; /** - * @return The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * @return The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. * */ public Optional> dailySnapshotTime() { @@ -113,14 +113,14 @@ public Optional>> endpoints() { } /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. * */ @Import(name="engine") private @Nullable Output engine; /** - * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @return Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. * */ public Optional> engine() { @@ -447,7 +447,7 @@ public Builder createTime(String createTime) { } /** - * @param dailySnapshotTime The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * @param dailySnapshotTime The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. * * @return builder * @@ -458,7 +458,7 @@ public Builder dailySnapshotTime(@Nullable Output dailySnapshotTime) { } /** - * @param dailySnapshotTime The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * @param dailySnapshotTime The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. * * @return builder * @@ -520,7 +520,7 @@ public Builder endpoints(ServerlessCacheEndpointArgs... endpoints) { } /** - * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. * * @return builder * @@ -531,7 +531,7 @@ public Builder engine(@Nullable Output engine) { } /** - * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * @param engine Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/elasticache/outputs/GetServerlessCacheResult.java b/sdk/java/src/main/java/com/pulumi/aws/elasticache/outputs/GetServerlessCacheResult.java index c657572e127..00141a2943b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/elasticache/outputs/GetServerlessCacheResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/elasticache/outputs/GetServerlessCacheResult.java @@ -31,7 +31,7 @@ public final class GetServerlessCacheResult { */ private String createTime; /** - * @return The daily time that snapshots will be created from the new serverless cache. Only available for engine type `"redis"`. + * @return The daily time that snapshots will be created from the new serverless cache. Only available for engine types `"redis"` and `"valkey"`. * */ private String dailySnapshotTime; @@ -125,7 +125,7 @@ public String createTime() { return this.createTime; } /** - * @return The daily time that snapshots will be created from the new serverless cache. Only available for engine type `"redis"`. + * @return The daily time that snapshots will be created from the new serverless cache. Only available for engine types `"redis"` and `"valkey"`. * */ public String dailySnapshotTime() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/LifecyclePolicy.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/LifecyclePolicy.java new file mode 100644 index 00000000000..570f70436ce --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/LifecyclePolicy.java @@ -0,0 +1,333 @@ +// *** 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.imagebuilder; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.imagebuilder.LifecyclePolicyArgs; +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyState; +import com.pulumi.aws.imagebuilder.outputs.LifecyclePolicyPolicyDetail; +import com.pulumi.aws.imagebuilder.outputs.LifecyclePolicyResourceSelection; +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 java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Manages an Image Builder Lifecycle Policy. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.AwsFunctions;
+ * import com.pulumi.aws.inputs.GetRegionArgs;
+ * import com.pulumi.aws.inputs.GetPartitionArgs;
+ * 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.imagebuilder.LifecyclePolicy;
+ * import com.pulumi.aws.imagebuilder.LifecyclePolicyArgs;
+ * import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailArgs;
+ * import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailActionArgs;
+ * import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailFilterArgs;
+ * import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyResourceSelectionArgs;
+ * import static com.pulumi.codegen.internal.Serialization.*;
+ * 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) {
+ *         final var current = AwsFunctions.getRegion();
+ * 
+ *         final var currentGetPartition = AwsFunctions.getPartition();
+ * 
+ *         var example = new Role("example", RoleArgs.builder()
+ *             .assumeRolePolicy(serializeJson(
+ *                 jsonObject(
+ *                     jsonProperty("Version", "2012-10-17"),
+ *                     jsonProperty("Statement", jsonArray(jsonObject(
+ *                         jsonProperty("Action", "sts:AssumeRole"),
+ *                         jsonProperty("Effect", "Allow"),
+ *                         jsonProperty("Principal", jsonObject(
+ *                             jsonProperty("Service", String.format("imagebuilder.%s", currentGetPartition.applyValue(getPartitionResult -> getPartitionResult.dnsSuffix())))
+ *                         ))
+ *                     )))
+ *                 )))
+ *             .name("example")
+ *             .build());
+ * 
+ *         var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder()
+ *             .policyArn(String.format("arn:%s:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy", currentGetPartition.applyValue(getPartitionResult -> getPartitionResult.partition())))
+ *             .role(example.name())
+ *             .build());
+ * 
+ *         var exampleLifecyclePolicy = new LifecyclePolicy("exampleLifecyclePolicy", LifecyclePolicyArgs.builder()
+ *             .name("name")
+ *             .description("Example description")
+ *             .executionRole(example.arn())
+ *             .resourceType("AMI_IMAGE")
+ *             .policyDetails(LifecyclePolicyPolicyDetailArgs.builder()
+ *                 .action(LifecyclePolicyPolicyDetailActionArgs.builder()
+ *                     .type("DELETE")
+ *                     .build())
+ *                 .filter(LifecyclePolicyPolicyDetailFilterArgs.builder()
+ *                     .type("AGE")
+ *                     .value(6)
+ *                     .retainAtLeast(10)
+ *                     .unit("YEARS")
+ *                     .build())
+ *                 .build())
+ *             .resourceSelection(LifecyclePolicyResourceSelectionArgs.builder()
+ *                 .tagMap(Map.ofEntries(
+ *                     Map.entry("key1", "value1"),
+ *                     Map.entry("key2", "value2")
+ *                 ))
+ *                 .build())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(exampleRolePolicyAttachment)
+ *                 .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import `aws_imagebuilder_lifecycle_policy` using the Amazon Resource Name (ARN). For example: + * + * ```sh + * $ pulumi import aws:imagebuilder/lifecyclePolicy:LifecyclePolicy example arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/example + * ``` + * + */ +@ResourceType(type="aws:imagebuilder/lifecyclePolicy:LifecyclePolicy") +public class LifecyclePolicy extends com.pulumi.resources.CustomResource { + /** + * Amazon Resource Name (ARN) of the lifecycle policy. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return Amazon Resource Name (ARN) of the lifecycle policy. + * + */ + public Output arn() { + return this.arn; + } + /** + * description for the lifecycle policy. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return description for the lifecycle policy. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + * + */ + @Export(name="executionRole", refs={String.class}, tree="[0]") + private Output executionRole; + + /** + * @return The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + * + */ + public Output executionRole() { + return this.executionRole; + } + /** + * The name of the lifecycle policy to create. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name of the lifecycle policy to create. + * + */ + public Output name() { + return this.name; + } + /** + * Configuration block with policy details. Detailed below. + * + */ + @Export(name="policyDetails", refs={List.class,LifecyclePolicyPolicyDetail.class}, tree="[0,1]") + private Output> policyDetails; + + /** + * @return Configuration block with policy details. Detailed below. + * + */ + public Output>> policyDetails() { + return Codegen.optional(this.policyDetails); + } + /** + * Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + * + */ + @Export(name="resourceSelection", refs={LifecyclePolicyResourceSelection.class}, tree="[0]") + private Output resourceSelection; + + /** + * @return Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + * + */ + public Output> resourceSelection() { + return Codegen.optional(this.resourceSelection); + } + /** + * The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + * + */ + @Export(name="resourceType", refs={String.class}, tree="[0]") + private Output resourceType; + + /** + * @return The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + * + */ + public Output resourceType() { + return this.resourceType; + } + /** + * The status of the lifecycle policy. + * + */ + @Export(name="status", refs={String.class}, tree="[0]") + private Output status; + + /** + * @return The status of the lifecycle policy. + * + */ + public Output status() { + return this.status; + } + /** + * Key-value map of resource tags for the Image Builder Lifecycle Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return Key-value map of resource tags for the Image Builder Lifecycle Policy. 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; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public LifecyclePolicy(java.lang.String name) { + this(name, LifecyclePolicyArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public LifecyclePolicy(java.lang.String name, LifecyclePolicyArgs 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 LifecyclePolicy(java.lang.String name, LifecyclePolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:imagebuilder/lifecyclePolicy:LifecyclePolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private LifecyclePolicy(java.lang.String name, Output id, @Nullable LifecyclePolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:imagebuilder/lifecyclePolicy:LifecyclePolicy", name, state, makeResourceOptions(options, id), false); + } + + private static LifecyclePolicyArgs makeArgs(LifecyclePolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LifecyclePolicyArgs.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 LifecyclePolicy get(java.lang.String name, Output id, @Nullable LifecyclePolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new LifecyclePolicy(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/LifecyclePolicyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/LifecyclePolicyArgs.java new file mode 100644 index 00000000000..f49a4802c07 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/LifecyclePolicyArgs.java @@ -0,0 +1,371 @@ +// *** 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.imagebuilder; + +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailArgs; +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyResourceSelectionArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LifecyclePolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyArgs Empty = new LifecyclePolicyArgs(); + + /** + * description for the lifecycle policy. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return description for the lifecycle policy. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + * + */ + @Import(name="executionRole", required=true) + private Output executionRole; + + /** + * @return The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + * + */ + public Output executionRole() { + return this.executionRole; + } + + /** + * The name of the lifecycle policy to create. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the lifecycle policy to create. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Configuration block with policy details. Detailed below. + * + */ + @Import(name="policyDetails") + private @Nullable Output> policyDetails; + + /** + * @return Configuration block with policy details. Detailed below. + * + */ + public Optional>> policyDetails() { + return Optional.ofNullable(this.policyDetails); + } + + /** + * Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + * + */ + @Import(name="resourceSelection") + private @Nullable Output resourceSelection; + + /** + * @return Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + * + */ + public Optional> resourceSelection() { + return Optional.ofNullable(this.resourceSelection); + } + + /** + * The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + * + */ + @Import(name="resourceType", required=true) + private Output resourceType; + + /** + * @return The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + * + */ + public Output resourceType() { + return this.resourceType; + } + + /** + * The status of the lifecycle policy. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return The status of the lifecycle policy. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + /** + * Key-value map of resource tags for the Image Builder Lifecycle Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicyArgs() {} + + private LifecyclePolicyArgs(LifecyclePolicyArgs $) { + this.description = $.description; + this.executionRole = $.executionRole; + this.name = $.name; + this.policyDetails = $.policyDetails; + this.resourceSelection = $.resourceSelection; + this.resourceType = $.resourceType; + this.status = $.status; + this.tags = $.tags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyArgs $; + + public Builder() { + $ = new LifecyclePolicyArgs(); + } + + public Builder(LifecyclePolicyArgs defaults) { + $ = new LifecyclePolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description description for the lifecycle policy. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description description for the lifecycle policy. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param executionRole The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + * + * @return builder + * + */ + public Builder executionRole(Output executionRole) { + $.executionRole = executionRole; + return this; + } + + /** + * @param executionRole The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + * + * @return builder + * + */ + public Builder executionRole(String executionRole) { + return executionRole(Output.of(executionRole)); + } + + /** + * @param name The name of the lifecycle policy to create. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the lifecycle policy to create. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param policyDetails Configuration block with policy details. Detailed below. + * + * @return builder + * + */ + public Builder policyDetails(@Nullable Output> policyDetails) { + $.policyDetails = policyDetails; + return this; + } + + /** + * @param policyDetails Configuration block with policy details. Detailed below. + * + * @return builder + * + */ + public Builder policyDetails(List policyDetails) { + return policyDetails(Output.of(policyDetails)); + } + + /** + * @param policyDetails Configuration block with policy details. Detailed below. + * + * @return builder + * + */ + public Builder policyDetails(LifecyclePolicyPolicyDetailArgs... policyDetails) { + return policyDetails(List.of(policyDetails)); + } + + /** + * @param resourceSelection Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder resourceSelection(@Nullable Output resourceSelection) { + $.resourceSelection = resourceSelection; + return this; + } + + /** + * @param resourceSelection Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder resourceSelection(LifecyclePolicyResourceSelectionArgs resourceSelection) { + return resourceSelection(Output.of(resourceSelection)); + } + + /** + * @param resourceType The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + * + * @return builder + * + */ + public Builder resourceType(Output resourceType) { + $.resourceType = resourceType; + return this; + } + + /** + * @param resourceType The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + * + * @return builder + * + */ + public Builder resourceType(String resourceType) { + return resourceType(Output.of(resourceType)); + } + + /** + * @param status The status of the lifecycle policy. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status The status of the lifecycle policy. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + /** + * @param tags Key-value map of resource tags for the Image Builder Lifecycle Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicyArgs build() { + if ($.executionRole == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyArgs", "executionRole"); + } + if ($.resourceType == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyArgs", "resourceType"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailActionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailActionArgs.java new file mode 100644 index 00000000000..d00252a5352 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailActionArgs.java @@ -0,0 +1,133 @@ +// *** 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.imagebuilder.inputs; + +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailActionIncludeResourcesArgs; +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 LifecyclePolicyPolicyDetailActionArgs extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyPolicyDetailActionArgs Empty = new LifecyclePolicyPolicyDetailActionArgs(); + + /** + * Specifies the resources that the lifecycle policy applies to. Detailed below. + * + */ + @Import(name="includeResources") + private @Nullable Output includeResources; + + /** + * @return Specifies the resources that the lifecycle policy applies to. Detailed below. + * + */ + public Optional> includeResources() { + return Optional.ofNullable(this.includeResources); + } + + /** + * Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + * + * The following arguments are optional: + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + * + * The following arguments are optional: + * + */ + public Output type() { + return this.type; + } + + private LifecyclePolicyPolicyDetailActionArgs() {} + + private LifecyclePolicyPolicyDetailActionArgs(LifecyclePolicyPolicyDetailActionArgs $) { + this.includeResources = $.includeResources; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyPolicyDetailActionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyPolicyDetailActionArgs $; + + public Builder() { + $ = new LifecyclePolicyPolicyDetailActionArgs(); + } + + public Builder(LifecyclePolicyPolicyDetailActionArgs defaults) { + $ = new LifecyclePolicyPolicyDetailActionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param includeResources Specifies the resources that the lifecycle policy applies to. Detailed below. + * + * @return builder + * + */ + public Builder includeResources(@Nullable Output includeResources) { + $.includeResources = includeResources; + return this; + } + + /** + * @param includeResources Specifies the resources that the lifecycle policy applies to. Detailed below. + * + * @return builder + * + */ + public Builder includeResources(LifecyclePolicyPolicyDetailActionIncludeResourcesArgs includeResources) { + return includeResources(Output.of(includeResources)); + } + + /** + * @param type Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public LifecyclePolicyPolicyDetailActionArgs build() { + if ($.type == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyPolicyDetailActionArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailActionIncludeResourcesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailActionIncludeResourcesArgs.java new file mode 100644 index 00000000000..5816f45ec0d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailActionIncludeResourcesArgs.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.imagebuilder.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LifecyclePolicyPolicyDetailActionIncludeResourcesArgs extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyPolicyDetailActionIncludeResourcesArgs Empty = new LifecyclePolicyPolicyDetailActionIncludeResourcesArgs(); + + /** + * Specifies whether the lifecycle action should apply to distributed AMIs. + * + */ + @Import(name="amis") + private @Nullable Output amis; + + /** + * @return Specifies whether the lifecycle action should apply to distributed AMIs. + * + */ + public Optional> amis() { + return Optional.ofNullable(this.amis); + } + + /** + * Specifies whether the lifecycle action should apply to distributed containers. + * + */ + @Import(name="containers") + private @Nullable Output containers; + + /** + * @return Specifies whether the lifecycle action should apply to distributed containers. + * + */ + public Optional> containers() { + return Optional.ofNullable(this.containers); + } + + /** + * Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + * + */ + @Import(name="snapshots") + private @Nullable Output snapshots; + + /** + * @return Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + * + */ + public Optional> snapshots() { + return Optional.ofNullable(this.snapshots); + } + + private LifecyclePolicyPolicyDetailActionIncludeResourcesArgs() {} + + private LifecyclePolicyPolicyDetailActionIncludeResourcesArgs(LifecyclePolicyPolicyDetailActionIncludeResourcesArgs $) { + this.amis = $.amis; + this.containers = $.containers; + this.snapshots = $.snapshots; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyPolicyDetailActionIncludeResourcesArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyPolicyDetailActionIncludeResourcesArgs $; + + public Builder() { + $ = new LifecyclePolicyPolicyDetailActionIncludeResourcesArgs(); + } + + public Builder(LifecyclePolicyPolicyDetailActionIncludeResourcesArgs defaults) { + $ = new LifecyclePolicyPolicyDetailActionIncludeResourcesArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param amis Specifies whether the lifecycle action should apply to distributed AMIs. + * + * @return builder + * + */ + public Builder amis(@Nullable Output amis) { + $.amis = amis; + return this; + } + + /** + * @param amis Specifies whether the lifecycle action should apply to distributed AMIs. + * + * @return builder + * + */ + public Builder amis(Boolean amis) { + return amis(Output.of(amis)); + } + + /** + * @param containers Specifies whether the lifecycle action should apply to distributed containers. + * + * @return builder + * + */ + public Builder containers(@Nullable Output containers) { + $.containers = containers; + return this; + } + + /** + * @param containers Specifies whether the lifecycle action should apply to distributed containers. + * + * @return builder + * + */ + public Builder containers(Boolean containers) { + return containers(Output.of(containers)); + } + + /** + * @param snapshots Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + * + * @return builder + * + */ + public Builder snapshots(@Nullable Output snapshots) { + $.snapshots = snapshots; + return this; + } + + /** + * @param snapshots Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + * + * @return builder + * + */ + public Builder snapshots(Boolean snapshots) { + return snapshots(Output.of(snapshots)); + } + + public LifecyclePolicyPolicyDetailActionIncludeResourcesArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailArgs.java new file mode 100644 index 00000000000..de1adc19eb1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailArgs.java @@ -0,0 +1,167 @@ +// *** 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.imagebuilder.inputs; + +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailActionArgs; +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailExclusionRulesArgs; +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailFilterArgs; +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 LifecyclePolicyPolicyDetailArgs extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyPolicyDetailArgs Empty = new LifecyclePolicyPolicyDetailArgs(); + + /** + * Configuration details for the policy action. + * + */ + @Import(name="action") + private @Nullable Output action; + + /** + * @return Configuration details for the policy action. + * + */ + public Optional> action() { + return Optional.ofNullable(this.action); + } + + /** + * Additional rules to specify resources that should be exempt from policy actions. + * + */ + @Import(name="exclusionRules") + private @Nullable Output exclusionRules; + + /** + * @return Additional rules to specify resources that should be exempt from policy actions. + * + */ + public Optional> exclusionRules() { + return Optional.ofNullable(this.exclusionRules); + } + + /** + * Specifies the resources that the lifecycle policy applies to. + * + * The following arguments are optional: + * + */ + @Import(name="filter") + private @Nullable Output filter; + + /** + * @return Specifies the resources that the lifecycle policy applies to. + * + * The following arguments are optional: + * + */ + public Optional> filter() { + return Optional.ofNullable(this.filter); + } + + private LifecyclePolicyPolicyDetailArgs() {} + + private LifecyclePolicyPolicyDetailArgs(LifecyclePolicyPolicyDetailArgs $) { + this.action = $.action; + this.exclusionRules = $.exclusionRules; + this.filter = $.filter; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyPolicyDetailArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyPolicyDetailArgs $; + + public Builder() { + $ = new LifecyclePolicyPolicyDetailArgs(); + } + + public Builder(LifecyclePolicyPolicyDetailArgs defaults) { + $ = new LifecyclePolicyPolicyDetailArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param action Configuration details for the policy action. + * + * @return builder + * + */ + public Builder action(@Nullable Output action) { + $.action = action; + return this; + } + + /** + * @param action Configuration details for the policy action. + * + * @return builder + * + */ + public Builder action(LifecyclePolicyPolicyDetailActionArgs action) { + return action(Output.of(action)); + } + + /** + * @param exclusionRules Additional rules to specify resources that should be exempt from policy actions. + * + * @return builder + * + */ + public Builder exclusionRules(@Nullable Output exclusionRules) { + $.exclusionRules = exclusionRules; + return this; + } + + /** + * @param exclusionRules Additional rules to specify resources that should be exempt from policy actions. + * + * @return builder + * + */ + public Builder exclusionRules(LifecyclePolicyPolicyDetailExclusionRulesArgs exclusionRules) { + return exclusionRules(Output.of(exclusionRules)); + } + + /** + * @param filter Specifies the resources that the lifecycle policy applies to. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder filter(@Nullable Output filter) { + $.filter = filter; + return this; + } + + /** + * @param filter Specifies the resources that the lifecycle policy applies to. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder filter(LifecyclePolicyPolicyDetailFilterArgs filter) { + return filter(Output.of(filter)); + } + + public LifecyclePolicyPolicyDetailArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisArgs.java new file mode 100644 index 00000000000..779c357990c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisArgs.java @@ -0,0 +1,255 @@ +// *** 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.imagebuilder.inputs; + +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LifecyclePolicyPolicyDetailExclusionRulesAmisArgs extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyPolicyDetailExclusionRulesAmisArgs Empty = new LifecyclePolicyPolicyDetailExclusionRulesAmisArgs(); + + /** + * Configures whether public AMIs are excluded from the lifecycle action. + * + */ + @Import(name="isPublic") + private @Nullable Output isPublic; + + /** + * @return Configures whether public AMIs are excluded from the lifecycle action. + * + */ + public Optional> isPublic() { + return Optional.ofNullable(this.isPublic); + } + + /** + * Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + * + */ + @Import(name="lastLaunched") + private @Nullable Output lastLaunched; + + /** + * @return Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + * + */ + public Optional> lastLaunched() { + return Optional.ofNullable(this.lastLaunched); + } + + /** + * Configures AWS Regions that are excluded from the lifecycle action. + * + */ + @Import(name="regions") + private @Nullable Output> regions; + + /** + * @return Configures AWS Regions that are excluded from the lifecycle action. + * + */ + public Optional>> regions() { + return Optional.ofNullable(this.regions); + } + + /** + * Specifies AWS accounts whose resources are excluded from the lifecycle action. + * + */ + @Import(name="sharedAccounts") + private @Nullable Output> sharedAccounts; + + /** + * @return Specifies AWS accounts whose resources are excluded from the lifecycle action. + * + */ + public Optional>> sharedAccounts() { + return Optional.ofNullable(this.sharedAccounts); + } + + /** + * Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + * + */ + @Import(name="tagMap") + private @Nullable Output> tagMap; + + /** + * @return Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + * + */ + public Optional>> tagMap() { + return Optional.ofNullable(this.tagMap); + } + + private LifecyclePolicyPolicyDetailExclusionRulesAmisArgs() {} + + private LifecyclePolicyPolicyDetailExclusionRulesAmisArgs(LifecyclePolicyPolicyDetailExclusionRulesAmisArgs $) { + this.isPublic = $.isPublic; + this.lastLaunched = $.lastLaunched; + this.regions = $.regions; + this.sharedAccounts = $.sharedAccounts; + this.tagMap = $.tagMap; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyPolicyDetailExclusionRulesAmisArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyPolicyDetailExclusionRulesAmisArgs $; + + public Builder() { + $ = new LifecyclePolicyPolicyDetailExclusionRulesAmisArgs(); + } + + public Builder(LifecyclePolicyPolicyDetailExclusionRulesAmisArgs defaults) { + $ = new LifecyclePolicyPolicyDetailExclusionRulesAmisArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param isPublic Configures whether public AMIs are excluded from the lifecycle action. + * + * @return builder + * + */ + public Builder isPublic(@Nullable Output isPublic) { + $.isPublic = isPublic; + return this; + } + + /** + * @param isPublic Configures whether public AMIs are excluded from the lifecycle action. + * + * @return builder + * + */ + public Builder isPublic(Boolean isPublic) { + return isPublic(Output.of(isPublic)); + } + + /** + * @param lastLaunched Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + * + * @return builder + * + */ + public Builder lastLaunched(@Nullable Output lastLaunched) { + $.lastLaunched = lastLaunched; + return this; + } + + /** + * @param lastLaunched Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + * + * @return builder + * + */ + public Builder lastLaunched(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs lastLaunched) { + return lastLaunched(Output.of(lastLaunched)); + } + + /** + * @param regions Configures AWS Regions that are excluded from the lifecycle action. + * + * @return builder + * + */ + public Builder regions(@Nullable Output> regions) { + $.regions = regions; + return this; + } + + /** + * @param regions Configures AWS Regions that are excluded from the lifecycle action. + * + * @return builder + * + */ + public Builder regions(List regions) { + return regions(Output.of(regions)); + } + + /** + * @param regions Configures AWS Regions that are excluded from the lifecycle action. + * + * @return builder + * + */ + public Builder regions(String... regions) { + return regions(List.of(regions)); + } + + /** + * @param sharedAccounts Specifies AWS accounts whose resources are excluded from the lifecycle action. + * + * @return builder + * + */ + public Builder sharedAccounts(@Nullable Output> sharedAccounts) { + $.sharedAccounts = sharedAccounts; + return this; + } + + /** + * @param sharedAccounts Specifies AWS accounts whose resources are excluded from the lifecycle action. + * + * @return builder + * + */ + public Builder sharedAccounts(List sharedAccounts) { + return sharedAccounts(Output.of(sharedAccounts)); + } + + /** + * @param sharedAccounts Specifies AWS accounts whose resources are excluded from the lifecycle action. + * + * @return builder + * + */ + public Builder sharedAccounts(String... sharedAccounts) { + return sharedAccounts(List.of(sharedAccounts)); + } + + /** + * @param tagMap Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + * + * @return builder + * + */ + public Builder tagMap(@Nullable Output> tagMap) { + $.tagMap = tagMap; + return this; + } + + /** + * @param tagMap Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + * + * @return builder + * + */ + public Builder tagMap(Map tagMap) { + return tagMap(Output.of(tagMap)); + } + + public LifecyclePolicyPolicyDetailExclusionRulesAmisArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs.java new file mode 100644 index 00000000000..144d917a01b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs.java @@ -0,0 +1,126 @@ +// *** 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.imagebuilder.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + + +public final class LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs Empty = new LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs(); + + /** + * Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + */ + @Import(name="unit", required=true) + private Output unit; + + /** + * @return Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + */ + public Output unit() { + return this.unit; + } + + /** + * The integer number of units for the time period. For example 6 (months). + * + */ + @Import(name="value", required=true) + private Output value; + + /** + * @return The integer number of units for the time period. For example 6 (months). + * + */ + public Output value() { + return this.value; + } + + private LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs() {} + + private LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs $) { + this.unit = $.unit; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs $; + + public Builder() { + $ = new LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs(); + } + + public Builder(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs defaults) { + $ = new LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param unit Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + * @return builder + * + */ + public Builder unit(Output unit) { + $.unit = unit; + return this; + } + + /** + * @param unit Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + * @return builder + * + */ + public Builder unit(String unit) { + return unit(Output.of(unit)); + } + + /** + * @param value The integer number of units for the time period. For example 6 (months). + * + * @return builder + * + */ + public Builder value(Output value) { + $.value = value; + return this; + } + + /** + * @param value The integer number of units for the time period. For example 6 (months). + * + * @return builder + * + */ + public Builder value(Integer value) { + return value(Output.of(value)); + } + + public LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs build() { + if ($.unit == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs", "unit"); + } + if ($.value == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs", "value"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailExclusionRulesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailExclusionRulesArgs.java new file mode 100644 index 00000000000..1297a7809af --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailExclusionRulesArgs.java @@ -0,0 +1,122 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.imagebuilder.inputs; + +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailExclusionRulesAmisArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LifecyclePolicyPolicyDetailExclusionRulesArgs extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyPolicyDetailExclusionRulesArgs Empty = new LifecyclePolicyPolicyDetailExclusionRulesArgs(); + + /** + * Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + * + */ + @Import(name="amis") + private @Nullable Output amis; + + /** + * @return Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + * + */ + public Optional> amis() { + return Optional.ofNullable(this.amis); + } + + /** + * Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + * + */ + @Import(name="tagMap") + private @Nullable Output> tagMap; + + /** + * @return Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + * + */ + public Optional>> tagMap() { + return Optional.ofNullable(this.tagMap); + } + + private LifecyclePolicyPolicyDetailExclusionRulesArgs() {} + + private LifecyclePolicyPolicyDetailExclusionRulesArgs(LifecyclePolicyPolicyDetailExclusionRulesArgs $) { + this.amis = $.amis; + this.tagMap = $.tagMap; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyPolicyDetailExclusionRulesArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyPolicyDetailExclusionRulesArgs $; + + public Builder() { + $ = new LifecyclePolicyPolicyDetailExclusionRulesArgs(); + } + + public Builder(LifecyclePolicyPolicyDetailExclusionRulesArgs defaults) { + $ = new LifecyclePolicyPolicyDetailExclusionRulesArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param amis Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + * + * @return builder + * + */ + public Builder amis(@Nullable Output amis) { + $.amis = amis; + return this; + } + + /** + * @param amis Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + * + * @return builder + * + */ + public Builder amis(LifecyclePolicyPolicyDetailExclusionRulesAmisArgs amis) { + return amis(Output.of(amis)); + } + + /** + * @param tagMap Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + * + * @return builder + * + */ + public Builder tagMap(@Nullable Output> tagMap) { + $.tagMap = tagMap; + return this; + } + + /** + * @param tagMap Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + * + * @return builder + * + */ + public Builder tagMap(Map tagMap) { + return tagMap(Output.of(tagMap)); + } + + public LifecyclePolicyPolicyDetailExclusionRulesArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailFilterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailFilterArgs.java new file mode 100644 index 00000000000..5070a81ea81 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyPolicyDetailFilterArgs.java @@ -0,0 +1,210 @@ +// *** 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.imagebuilder.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LifecyclePolicyPolicyDetailFilterArgs extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyPolicyDetailFilterArgs Empty = new LifecyclePolicyPolicyDetailFilterArgs(); + + /** + * For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + * + */ + @Import(name="retainAtLeast") + private @Nullable Output retainAtLeast; + + /** + * @return For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + * + */ + public Optional> retainAtLeast() { + return Optional.ofNullable(this.retainAtLeast); + } + + /** + * Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + * + */ + public Output type() { + return this.type; + } + + /** + * Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + */ + @Import(name="unit") + private @Nullable Output unit; + + /** + * @return Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + */ + public Optional> unit() { + return Optional.ofNullable(this.unit); + } + + /** + * The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + * + * The following arguments are optional: + * + */ + @Import(name="value", required=true) + private Output value; + + /** + * @return The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + * + * The following arguments are optional: + * + */ + public Output value() { + return this.value; + } + + private LifecyclePolicyPolicyDetailFilterArgs() {} + + private LifecyclePolicyPolicyDetailFilterArgs(LifecyclePolicyPolicyDetailFilterArgs $) { + this.retainAtLeast = $.retainAtLeast; + this.type = $.type; + this.unit = $.unit; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyPolicyDetailFilterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyPolicyDetailFilterArgs $; + + public Builder() { + $ = new LifecyclePolicyPolicyDetailFilterArgs(); + } + + public Builder(LifecyclePolicyPolicyDetailFilterArgs defaults) { + $ = new LifecyclePolicyPolicyDetailFilterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param retainAtLeast For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + * + * @return builder + * + */ + public Builder retainAtLeast(@Nullable Output retainAtLeast) { + $.retainAtLeast = retainAtLeast; + return this; + } + + /** + * @param retainAtLeast For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + * + * @return builder + * + */ + public Builder retainAtLeast(Integer retainAtLeast) { + return retainAtLeast(Output.of(retainAtLeast)); + } + + /** + * @param type Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + /** + * @param unit Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + * @return builder + * + */ + public Builder unit(@Nullable Output unit) { + $.unit = unit; + return this; + } + + /** + * @param unit Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + * @return builder + * + */ + public Builder unit(String unit) { + return unit(Output.of(unit)); + } + + /** + * @param value The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder value(Output value) { + $.value = value; + return this; + } + + /** + * @param value The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder value(Integer value) { + return value(Output.of(value)); + } + + public LifecyclePolicyPolicyDetailFilterArgs build() { + if ($.type == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyPolicyDetailFilterArgs", "type"); + } + if ($.value == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyPolicyDetailFilterArgs", "value"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyResourceSelectionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyResourceSelectionArgs.java new file mode 100644 index 00000000000..8d69ba080e0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyResourceSelectionArgs.java @@ -0,0 +1,133 @@ +// *** 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.imagebuilder.inputs; + +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyResourceSelectionRecipeArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LifecyclePolicyResourceSelectionArgs extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyResourceSelectionArgs Empty = new LifecyclePolicyResourceSelectionArgs(); + + /** + * A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + * + */ + @Import(name="recipes") + private @Nullable Output> recipes; + + /** + * @return A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + * + */ + public Optional>> recipes() { + return Optional.ofNullable(this.recipes); + } + + /** + * A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + * + */ + @Import(name="tagMap") + private @Nullable Output> tagMap; + + /** + * @return A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + * + */ + public Optional>> tagMap() { + return Optional.ofNullable(this.tagMap); + } + + private LifecyclePolicyResourceSelectionArgs() {} + + private LifecyclePolicyResourceSelectionArgs(LifecyclePolicyResourceSelectionArgs $) { + this.recipes = $.recipes; + this.tagMap = $.tagMap; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyResourceSelectionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyResourceSelectionArgs $; + + public Builder() { + $ = new LifecyclePolicyResourceSelectionArgs(); + } + + public Builder(LifecyclePolicyResourceSelectionArgs defaults) { + $ = new LifecyclePolicyResourceSelectionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param recipes A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + * + * @return builder + * + */ + public Builder recipes(@Nullable Output> recipes) { + $.recipes = recipes; + return this; + } + + /** + * @param recipes A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + * + * @return builder + * + */ + public Builder recipes(List recipes) { + return recipes(Output.of(recipes)); + } + + /** + * @param recipes A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + * + * @return builder + * + */ + public Builder recipes(LifecyclePolicyResourceSelectionRecipeArgs... recipes) { + return recipes(List.of(recipes)); + } + + /** + * @param tagMap A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + * + * @return builder + * + */ + public Builder tagMap(@Nullable Output> tagMap) { + $.tagMap = tagMap; + return this; + } + + /** + * @param tagMap A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + * + * @return builder + * + */ + public Builder tagMap(Map tagMap) { + return tagMap(Output.of(tagMap)); + } + + public LifecyclePolicyResourceSelectionArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyResourceSelectionRecipeArgs.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyResourceSelectionRecipeArgs.java new file mode 100644 index 00000000000..c0eab01be9c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyResourceSelectionRecipeArgs.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.imagebuilder.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 LifecyclePolicyResourceSelectionRecipeArgs extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyResourceSelectionRecipeArgs Empty = new LifecyclePolicyResourceSelectionRecipeArgs(); + + /** + * The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + * + */ + public Output name() { + return this.name; + } + + /** + * The version of the Image Builder recipe specified by the name field. + * + */ + @Import(name="semanticVersion", required=true) + private Output semanticVersion; + + /** + * @return The version of the Image Builder recipe specified by the name field. + * + */ + public Output semanticVersion() { + return this.semanticVersion; + } + + private LifecyclePolicyResourceSelectionRecipeArgs() {} + + private LifecyclePolicyResourceSelectionRecipeArgs(LifecyclePolicyResourceSelectionRecipeArgs $) { + this.name = $.name; + this.semanticVersion = $.semanticVersion; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyResourceSelectionRecipeArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyResourceSelectionRecipeArgs $; + + public Builder() { + $ = new LifecyclePolicyResourceSelectionRecipeArgs(); + } + + public Builder(LifecyclePolicyResourceSelectionRecipeArgs defaults) { + $ = new LifecyclePolicyResourceSelectionRecipeArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param name The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param semanticVersion The version of the Image Builder recipe specified by the name field. + * + * @return builder + * + */ + public Builder semanticVersion(Output semanticVersion) { + $.semanticVersion = semanticVersion; + return this; + } + + /** + * @param semanticVersion The version of the Image Builder recipe specified by the name field. + * + * @return builder + * + */ + public Builder semanticVersion(String semanticVersion) { + return semanticVersion(Output.of(semanticVersion)); + } + + public LifecyclePolicyResourceSelectionRecipeArgs build() { + if ($.name == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyResourceSelectionRecipeArgs", "name"); + } + if ($.semanticVersion == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyResourceSelectionRecipeArgs", "semanticVersion"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyState.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyState.java new file mode 100644 index 00000000000..dfb0efe7449 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/inputs/LifecyclePolicyState.java @@ -0,0 +1,454 @@ +// *** 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.imagebuilder.inputs; + +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyPolicyDetailArgs; +import com.pulumi.aws.imagebuilder.inputs.LifecyclePolicyResourceSelectionArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class LifecyclePolicyState extends com.pulumi.resources.ResourceArgs { + + public static final LifecyclePolicyState Empty = new LifecyclePolicyState(); + + /** + * Amazon Resource Name (ARN) of the lifecycle policy. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return Amazon Resource Name (ARN) of the lifecycle policy. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * description for the lifecycle policy. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return description for the lifecycle policy. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + * + */ + @Import(name="executionRole") + private @Nullable Output executionRole; + + /** + * @return The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + * + */ + public Optional> executionRole() { + return Optional.ofNullable(this.executionRole); + } + + /** + * The name of the lifecycle policy to create. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the lifecycle policy to create. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Configuration block with policy details. Detailed below. + * + */ + @Import(name="policyDetails") + private @Nullable Output> policyDetails; + + /** + * @return Configuration block with policy details. Detailed below. + * + */ + public Optional>> policyDetails() { + return Optional.ofNullable(this.policyDetails); + } + + /** + * Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + * + */ + @Import(name="resourceSelection") + private @Nullable Output resourceSelection; + + /** + * @return Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + * + */ + public Optional> resourceSelection() { + return Optional.ofNullable(this.resourceSelection); + } + + /** + * The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + * + */ + @Import(name="resourceType") + private @Nullable Output resourceType; + + /** + * @return The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + * + */ + public Optional> resourceType() { + return Optional.ofNullable(this.resourceType); + } + + /** + * The status of the lifecycle policy. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return The status of the lifecycle policy. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + /** + * Key-value map of resource tags for the Image Builder Lifecycle Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicyState() {} + + private LifecyclePolicyState(LifecyclePolicyState $) { + this.arn = $.arn; + this.description = $.description; + this.executionRole = $.executionRole; + this.name = $.name; + this.policyDetails = $.policyDetails; + this.resourceSelection = $.resourceSelection; + this.resourceType = $.resourceType; + this.status = $.status; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(LifecyclePolicyState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private LifecyclePolicyState $; + + public Builder() { + $ = new LifecyclePolicyState(); + } + + public Builder(LifecyclePolicyState defaults) { + $ = new LifecyclePolicyState(Objects.requireNonNull(defaults)); + } + + /** + * @param arn Amazon Resource Name (ARN) of the lifecycle policy. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn Amazon Resource Name (ARN) of the lifecycle policy. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param description description for the lifecycle policy. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description description for the lifecycle policy. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param executionRole The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + * + * @return builder + * + */ + public Builder executionRole(@Nullable Output executionRole) { + $.executionRole = executionRole; + return this; + } + + /** + * @param executionRole The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + * + * @return builder + * + */ + public Builder executionRole(String executionRole) { + return executionRole(Output.of(executionRole)); + } + + /** + * @param name The name of the lifecycle policy to create. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the lifecycle policy to create. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param policyDetails Configuration block with policy details. Detailed below. + * + * @return builder + * + */ + public Builder policyDetails(@Nullable Output> policyDetails) { + $.policyDetails = policyDetails; + return this; + } + + /** + * @param policyDetails Configuration block with policy details. Detailed below. + * + * @return builder + * + */ + public Builder policyDetails(List policyDetails) { + return policyDetails(Output.of(policyDetails)); + } + + /** + * @param policyDetails Configuration block with policy details. Detailed below. + * + * @return builder + * + */ + public Builder policyDetails(LifecyclePolicyPolicyDetailArgs... policyDetails) { + return policyDetails(List.of(policyDetails)); + } + + /** + * @param resourceSelection Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder resourceSelection(@Nullable Output resourceSelection) { + $.resourceSelection = resourceSelection; + return this; + } + + /** + * @param resourceSelection Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder resourceSelection(LifecyclePolicyResourceSelectionArgs resourceSelection) { + return resourceSelection(Output.of(resourceSelection)); + } + + /** + * @param resourceType The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + * + * @return builder + * + */ + public Builder resourceType(@Nullable Output resourceType) { + $.resourceType = resourceType; + return this; + } + + /** + * @param resourceType The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + * + * @return builder + * + */ + public Builder resourceType(String resourceType) { + return resourceType(Output.of(resourceType)); + } + + /** + * @param status The status of the lifecycle policy. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status The status of the lifecycle policy. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + /** + * @param tags Key-value map of resource tags for the Image Builder Lifecycle Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicyState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/GetContainerRecipeResult.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/GetContainerRecipeResult.java index 7a57679c410..8f1426f02c4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/GetContainerRecipeResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/GetContainerRecipeResult.java @@ -13,7 +13,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import javax.annotation.Nullable; @CustomType public final class GetContainerRecipeResult { @@ -87,7 +86,7 @@ public final class GetContainerRecipeResult { * @return Key-value map of resource tags for the container recipe. * */ - private @Nullable Map tags; + private Map tags; /** * @return Destination repository for the container image. * @@ -204,7 +203,7 @@ public String platform() { * */ public Map tags() { - return this.tags == null ? Map.of() : this.tags; + return this.tags; } /** * @return Destination repository for the container image. @@ -251,7 +250,7 @@ public static final class Builder { private String owner; private String parentImage; private String platform; - private @Nullable Map tags; + private Map tags; private List targetRepositories; private String version; private String workingDirectory; @@ -397,8 +396,10 @@ public Builder platform(String platform) { return this; } @CustomType.Setter - public Builder tags(@Nullable Map tags) { - + public Builder tags(Map tags) { + if (tags == null) { + throw new MissingRequiredPropertyException("GetContainerRecipeResult", "tags"); + } this.tags = tags; return this; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/GetImageRecipeResult.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/GetImageRecipeResult.java index 9f9fbae2f66..f4dc58fbdea 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/GetImageRecipeResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/GetImageRecipeResult.java @@ -11,7 +11,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import javax.annotation.Nullable; @CustomType public final class GetImageRecipeResult { @@ -65,7 +64,7 @@ public final class GetImageRecipeResult { * @return Key-value map of resource tags for the image recipe. * */ - private @Nullable Map tags; + private Map tags; /** * @return Base64 encoded contents of user data. Commands or a command script to run when build instance is launched. * @@ -154,7 +153,7 @@ public String platform() { * */ public Map tags() { - return this.tags == null ? Map.of() : this.tags; + return this.tags; } /** * @return Base64 encoded contents of user data. Commands or a command script to run when build instance is launched. @@ -197,7 +196,7 @@ public static final class Builder { private String owner; private String parentImage; private String platform; - private @Nullable Map tags; + private Map tags; private String userDataBase64; private String version; private String workingDirectory; @@ -307,8 +306,10 @@ public Builder platform(String platform) { return this; } @CustomType.Setter - public Builder tags(@Nullable Map tags) { - + public Builder tags(Map tags) { + if (tags == null) { + throw new MissingRequiredPropertyException("GetImageRecipeResult", "tags"); + } this.tags = tags; return this; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetail.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetail.java new file mode 100644 index 00000000000..d5d6ca0c8e9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetail.java @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.imagebuilder.outputs; + +import com.pulumi.aws.imagebuilder.outputs.LifecyclePolicyPolicyDetailAction; +import com.pulumi.aws.imagebuilder.outputs.LifecyclePolicyPolicyDetailExclusionRules; +import com.pulumi.aws.imagebuilder.outputs.LifecyclePolicyPolicyDetailFilter; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class LifecyclePolicyPolicyDetail { + /** + * @return Configuration details for the policy action. + * + */ + private @Nullable LifecyclePolicyPolicyDetailAction action; + /** + * @return Additional rules to specify resources that should be exempt from policy actions. + * + */ + private @Nullable LifecyclePolicyPolicyDetailExclusionRules exclusionRules; + /** + * @return Specifies the resources that the lifecycle policy applies to. + * + * The following arguments are optional: + * + */ + private @Nullable LifecyclePolicyPolicyDetailFilter filter; + + private LifecyclePolicyPolicyDetail() {} + /** + * @return Configuration details for the policy action. + * + */ + public Optional action() { + return Optional.ofNullable(this.action); + } + /** + * @return Additional rules to specify resources that should be exempt from policy actions. + * + */ + public Optional exclusionRules() { + return Optional.ofNullable(this.exclusionRules); + } + /** + * @return Specifies the resources that the lifecycle policy applies to. + * + * The following arguments are optional: + * + */ + public Optional filter() { + return Optional.ofNullable(this.filter); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LifecyclePolicyPolicyDetail defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable LifecyclePolicyPolicyDetailAction action; + private @Nullable LifecyclePolicyPolicyDetailExclusionRules exclusionRules; + private @Nullable LifecyclePolicyPolicyDetailFilter filter; + public Builder() {} + public Builder(LifecyclePolicyPolicyDetail defaults) { + Objects.requireNonNull(defaults); + this.action = defaults.action; + this.exclusionRules = defaults.exclusionRules; + this.filter = defaults.filter; + } + + @CustomType.Setter + public Builder action(@Nullable LifecyclePolicyPolicyDetailAction action) { + + this.action = action; + return this; + } + @CustomType.Setter + public Builder exclusionRules(@Nullable LifecyclePolicyPolicyDetailExclusionRules exclusionRules) { + + this.exclusionRules = exclusionRules; + return this; + } + @CustomType.Setter + public Builder filter(@Nullable LifecyclePolicyPolicyDetailFilter filter) { + + this.filter = filter; + return this; + } + public LifecyclePolicyPolicyDetail build() { + final var _resultValue = new LifecyclePolicyPolicyDetail(); + _resultValue.action = action; + _resultValue.exclusionRules = exclusionRules; + _resultValue.filter = filter; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailAction.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailAction.java new file mode 100644 index 00000000000..85e8d763ec8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailAction.java @@ -0,0 +1,86 @@ +// *** 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.imagebuilder.outputs; + +import com.pulumi.aws.imagebuilder.outputs.LifecyclePolicyPolicyDetailActionIncludeResources; +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 LifecyclePolicyPolicyDetailAction { + /** + * @return Specifies the resources that the lifecycle policy applies to. Detailed below. + * + */ + private @Nullable LifecyclePolicyPolicyDetailActionIncludeResources includeResources; + /** + * @return Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + * + * The following arguments are optional: + * + */ + private String type; + + private LifecyclePolicyPolicyDetailAction() {} + /** + * @return Specifies the resources that the lifecycle policy applies to. Detailed below. + * + */ + public Optional includeResources() { + return Optional.ofNullable(this.includeResources); + } + /** + * @return Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + * + * The following arguments are optional: + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LifecyclePolicyPolicyDetailAction defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable LifecyclePolicyPolicyDetailActionIncludeResources includeResources; + private String type; + public Builder() {} + public Builder(LifecyclePolicyPolicyDetailAction defaults) { + Objects.requireNonNull(defaults); + this.includeResources = defaults.includeResources; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder includeResources(@Nullable LifecyclePolicyPolicyDetailActionIncludeResources includeResources) { + + this.includeResources = includeResources; + return this; + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyPolicyDetailAction", "type"); + } + this.type = type; + return this; + } + public LifecyclePolicyPolicyDetailAction build() { + final var _resultValue = new LifecyclePolicyPolicyDetailAction(); + _resultValue.includeResources = includeResources; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailActionIncludeResources.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailActionIncludeResources.java new file mode 100644 index 00000000000..7c0088481be --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailActionIncludeResources.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.imagebuilder.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class LifecyclePolicyPolicyDetailActionIncludeResources { + /** + * @return Specifies whether the lifecycle action should apply to distributed AMIs. + * + */ + private @Nullable Boolean amis; + /** + * @return Specifies whether the lifecycle action should apply to distributed containers. + * + */ + private @Nullable Boolean containers; + /** + * @return Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + * + */ + private @Nullable Boolean snapshots; + + private LifecyclePolicyPolicyDetailActionIncludeResources() {} + /** + * @return Specifies whether the lifecycle action should apply to distributed AMIs. + * + */ + public Optional amis() { + return Optional.ofNullable(this.amis); + } + /** + * @return Specifies whether the lifecycle action should apply to distributed containers. + * + */ + public Optional containers() { + return Optional.ofNullable(this.containers); + } + /** + * @return Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + * + */ + public Optional snapshots() { + return Optional.ofNullable(this.snapshots); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LifecyclePolicyPolicyDetailActionIncludeResources defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean amis; + private @Nullable Boolean containers; + private @Nullable Boolean snapshots; + public Builder() {} + public Builder(LifecyclePolicyPolicyDetailActionIncludeResources defaults) { + Objects.requireNonNull(defaults); + this.amis = defaults.amis; + this.containers = defaults.containers; + this.snapshots = defaults.snapshots; + } + + @CustomType.Setter + public Builder amis(@Nullable Boolean amis) { + + this.amis = amis; + return this; + } + @CustomType.Setter + public Builder containers(@Nullable Boolean containers) { + + this.containers = containers; + return this; + } + @CustomType.Setter + public Builder snapshots(@Nullable Boolean snapshots) { + + this.snapshots = snapshots; + return this; + } + public LifecyclePolicyPolicyDetailActionIncludeResources build() { + final var _resultValue = new LifecyclePolicyPolicyDetailActionIncludeResources(); + _resultValue.amis = amis; + _resultValue.containers = containers; + _resultValue.snapshots = snapshots; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailExclusionRules.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailExclusionRules.java new file mode 100644 index 00000000000..d67960f709e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailExclusionRules.java @@ -0,0 +1,80 @@ +// *** 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.imagebuilder.outputs; + +import com.pulumi.aws.imagebuilder.outputs.LifecyclePolicyPolicyDetailExclusionRulesAmis; +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class LifecyclePolicyPolicyDetailExclusionRules { + /** + * @return Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + * + */ + private @Nullable LifecyclePolicyPolicyDetailExclusionRulesAmis amis; + /** + * @return Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + * + */ + private @Nullable Map tagMap; + + private LifecyclePolicyPolicyDetailExclusionRules() {} + /** + * @return Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + * + */ + public Optional amis() { + return Optional.ofNullable(this.amis); + } + /** + * @return Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + * + */ + public Map tagMap() { + return this.tagMap == null ? Map.of() : this.tagMap; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LifecyclePolicyPolicyDetailExclusionRules defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable LifecyclePolicyPolicyDetailExclusionRulesAmis amis; + private @Nullable Map tagMap; + public Builder() {} + public Builder(LifecyclePolicyPolicyDetailExclusionRules defaults) { + Objects.requireNonNull(defaults); + this.amis = defaults.amis; + this.tagMap = defaults.tagMap; + } + + @CustomType.Setter + public Builder amis(@Nullable LifecyclePolicyPolicyDetailExclusionRulesAmis amis) { + + this.amis = amis; + return this; + } + @CustomType.Setter + public Builder tagMap(@Nullable Map tagMap) { + + this.tagMap = tagMap; + return this; + } + public LifecyclePolicyPolicyDetailExclusionRules build() { + final var _resultValue = new LifecyclePolicyPolicyDetailExclusionRules(); + _resultValue.amis = amis; + _resultValue.tagMap = tagMap; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailExclusionRulesAmis.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailExclusionRulesAmis.java new file mode 100644 index 00000000000..ed8783eeb98 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailExclusionRulesAmis.java @@ -0,0 +1,151 @@ +// *** 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.imagebuilder.outputs; + +import com.pulumi.aws.imagebuilder.outputs.LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched; +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class LifecyclePolicyPolicyDetailExclusionRulesAmis { + /** + * @return Configures whether public AMIs are excluded from the lifecycle action. + * + */ + private @Nullable Boolean isPublic; + /** + * @return Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + * + */ + private @Nullable LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched lastLaunched; + /** + * @return Configures AWS Regions that are excluded from the lifecycle action. + * + */ + private @Nullable List regions; + /** + * @return Specifies AWS accounts whose resources are excluded from the lifecycle action. + * + */ + private @Nullable List sharedAccounts; + /** + * @return Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + * + */ + private @Nullable Map tagMap; + + private LifecyclePolicyPolicyDetailExclusionRulesAmis() {} + /** + * @return Configures whether public AMIs are excluded from the lifecycle action. + * + */ + public Optional isPublic() { + return Optional.ofNullable(this.isPublic); + } + /** + * @return Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + * + */ + public Optional lastLaunched() { + return Optional.ofNullable(this.lastLaunched); + } + /** + * @return Configures AWS Regions that are excluded from the lifecycle action. + * + */ + public List regions() { + return this.regions == null ? List.of() : this.regions; + } + /** + * @return Specifies AWS accounts whose resources are excluded from the lifecycle action. + * + */ + public List sharedAccounts() { + return this.sharedAccounts == null ? List.of() : this.sharedAccounts; + } + /** + * @return Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + * + */ + public Map tagMap() { + return this.tagMap == null ? Map.of() : this.tagMap; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LifecyclePolicyPolicyDetailExclusionRulesAmis defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean isPublic; + private @Nullable LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched lastLaunched; + private @Nullable List regions; + private @Nullable List sharedAccounts; + private @Nullable Map tagMap; + public Builder() {} + public Builder(LifecyclePolicyPolicyDetailExclusionRulesAmis defaults) { + Objects.requireNonNull(defaults); + this.isPublic = defaults.isPublic; + this.lastLaunched = defaults.lastLaunched; + this.regions = defaults.regions; + this.sharedAccounts = defaults.sharedAccounts; + this.tagMap = defaults.tagMap; + } + + @CustomType.Setter + public Builder isPublic(@Nullable Boolean isPublic) { + + this.isPublic = isPublic; + return this; + } + @CustomType.Setter + public Builder lastLaunched(@Nullable LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched lastLaunched) { + + this.lastLaunched = lastLaunched; + return this; + } + @CustomType.Setter + public Builder regions(@Nullable List regions) { + + this.regions = regions; + return this; + } + public Builder regions(String... regions) { + return regions(List.of(regions)); + } + @CustomType.Setter + public Builder sharedAccounts(@Nullable List sharedAccounts) { + + this.sharedAccounts = sharedAccounts; + return this; + } + public Builder sharedAccounts(String... sharedAccounts) { + return sharedAccounts(List.of(sharedAccounts)); + } + @CustomType.Setter + public Builder tagMap(@Nullable Map tagMap) { + + this.tagMap = tagMap; + return this; + } + public LifecyclePolicyPolicyDetailExclusionRulesAmis build() { + final var _resultValue = new LifecyclePolicyPolicyDetailExclusionRulesAmis(); + _resultValue.isPublic = isPublic; + _resultValue.lastLaunched = lastLaunched; + _resultValue.regions = regions; + _resultValue.sharedAccounts = sharedAccounts; + _resultValue.tagMap = tagMap; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched.java new file mode 100644 index 00000000000..ad392ed3be2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched.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.imagebuilder.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched { + /** + * @return Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + */ + private String unit; + /** + * @return The integer number of units for the time period. For example 6 (months). + * + */ + private Integer value; + + private LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched() {} + /** + * @return Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + */ + public String unit() { + return this.unit; + } + /** + * @return The integer number of units for the time period. For example 6 (months). + * + */ + public Integer value() { + return this.value; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String unit; + private Integer value; + public Builder() {} + public Builder(LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched defaults) { + Objects.requireNonNull(defaults); + this.unit = defaults.unit; + this.value = defaults.value; + } + + @CustomType.Setter + public Builder unit(String unit) { + if (unit == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched", "unit"); + } + this.unit = unit; + return this; + } + @CustomType.Setter + public Builder value(Integer value) { + if (value == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched", "value"); + } + this.value = value; + return this; + } + public LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched build() { + final var _resultValue = new LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched(); + _resultValue.unit = unit; + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailFilter.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailFilter.java new file mode 100644 index 00000000000..a8df9235ad2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyPolicyDetailFilter.java @@ -0,0 +1,130 @@ +// *** 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.imagebuilder.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class LifecyclePolicyPolicyDetailFilter { + /** + * @return For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + * + */ + private @Nullable Integer retainAtLeast; + /** + * @return Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + * + */ + private String type; + /** + * @return Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + */ + private @Nullable String unit; + /** + * @return The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + * + * The following arguments are optional: + * + */ + private Integer value; + + private LifecyclePolicyPolicyDetailFilter() {} + /** + * @return For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + * + */ + public Optional retainAtLeast() { + return Optional.ofNullable(this.retainAtLeast); + } + /** + * @return Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + * + */ + public String type() { + return this.type; + } + /** + * @return Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + * + */ + public Optional unit() { + return Optional.ofNullable(this.unit); + } + /** + * @return The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + * + * The following arguments are optional: + * + */ + public Integer value() { + return this.value; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LifecyclePolicyPolicyDetailFilter defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer retainAtLeast; + private String type; + private @Nullable String unit; + private Integer value; + public Builder() {} + public Builder(LifecyclePolicyPolicyDetailFilter defaults) { + Objects.requireNonNull(defaults); + this.retainAtLeast = defaults.retainAtLeast; + this.type = defaults.type; + this.unit = defaults.unit; + this.value = defaults.value; + } + + @CustomType.Setter + public Builder retainAtLeast(@Nullable Integer retainAtLeast) { + + this.retainAtLeast = retainAtLeast; + return this; + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyPolicyDetailFilter", "type"); + } + this.type = type; + return this; + } + @CustomType.Setter + public Builder unit(@Nullable String unit) { + + this.unit = unit; + return this; + } + @CustomType.Setter + public Builder value(Integer value) { + if (value == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyPolicyDetailFilter", "value"); + } + this.value = value; + return this; + } + public LifecyclePolicyPolicyDetailFilter build() { + final var _resultValue = new LifecyclePolicyPolicyDetailFilter(); + _resultValue.retainAtLeast = retainAtLeast; + _resultValue.type = type; + _resultValue.unit = unit; + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyResourceSelection.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyResourceSelection.java new file mode 100644 index 00000000000..c02f303f12b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyResourceSelection.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.imagebuilder.outputs; + +import com.pulumi.aws.imagebuilder.outputs.LifecyclePolicyResourceSelectionRecipe; +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class LifecyclePolicyResourceSelection { + /** + * @return A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + * + */ + private @Nullable List recipes; + /** + * @return A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + * + */ + private @Nullable Map tagMap; + + private LifecyclePolicyResourceSelection() {} + /** + * @return A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + * + */ + public List recipes() { + return this.recipes == null ? List.of() : this.recipes; + } + /** + * @return A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + * + */ + public Map tagMap() { + return this.tagMap == null ? Map.of() : this.tagMap; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LifecyclePolicyResourceSelection defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List recipes; + private @Nullable Map tagMap; + public Builder() {} + public Builder(LifecyclePolicyResourceSelection defaults) { + Objects.requireNonNull(defaults); + this.recipes = defaults.recipes; + this.tagMap = defaults.tagMap; + } + + @CustomType.Setter + public Builder recipes(@Nullable List recipes) { + + this.recipes = recipes; + return this; + } + public Builder recipes(LifecyclePolicyResourceSelectionRecipe... recipes) { + return recipes(List.of(recipes)); + } + @CustomType.Setter + public Builder tagMap(@Nullable Map tagMap) { + + this.tagMap = tagMap; + return this; + } + public LifecyclePolicyResourceSelection build() { + final var _resultValue = new LifecyclePolicyResourceSelection(); + _resultValue.recipes = recipes; + _resultValue.tagMap = tagMap; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyResourceSelectionRecipe.java b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyResourceSelectionRecipe.java new file mode 100644 index 00000000000..781471952af --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/imagebuilder/outputs/LifecyclePolicyResourceSelectionRecipe.java @@ -0,0 +1,81 @@ +// *** 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.imagebuilder.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class LifecyclePolicyResourceSelectionRecipe { + /** + * @return The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + * + */ + private String name; + /** + * @return The version of the Image Builder recipe specified by the name field. + * + */ + private String semanticVersion; + + private LifecyclePolicyResourceSelectionRecipe() {} + /** + * @return The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + * + */ + public String name() { + return this.name; + } + /** + * @return The version of the Image Builder recipe specified by the name field. + * + */ + public String semanticVersion() { + return this.semanticVersion; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(LifecyclePolicyResourceSelectionRecipe defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String name; + private String semanticVersion; + public Builder() {} + public Builder(LifecyclePolicyResourceSelectionRecipe defaults) { + Objects.requireNonNull(defaults); + this.name = defaults.name; + this.semanticVersion = defaults.semanticVersion; + } + + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyResourceSelectionRecipe", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder semanticVersion(String semanticVersion) { + if (semanticVersion == null) { + throw new MissingRequiredPropertyException("LifecyclePolicyResourceSelectionRecipe", "semanticVersion"); + } + this.semanticVersion = semanticVersion; + return this; + } + public LifecyclePolicyResourceSelectionRecipe build() { + final var _resultValue = new LifecyclePolicyResourceSelectionRecipe(); + _resultValue.name = name; + _resultValue.semanticVersion = semanticVersion; + return _resultValue; + } + } +} 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 2199c9109d1..012a1b91a40 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 @@ -9,6 +9,7 @@ import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamElasticsearchConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamExtendedS3Configuration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamHttpEndpointConfiguration; +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamIcebergConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamKinesisSourceConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamMskSourceConfiguration; import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamOpensearchConfiguration; @@ -811,6 +812,117 @@ * * <!--End PulumiCodeChooser --> * + * ### Iceberg Destination + * + * <!--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.GetCallerIdentityArgs;
+ * import com.pulumi.aws.inputs.GetPartitionArgs;
+ * import com.pulumi.aws.inputs.GetRegionArgs;
+ * import com.pulumi.aws.s3.BucketV2;
+ * import com.pulumi.aws.s3.BucketV2Args;
+ * import com.pulumi.aws.glue.CatalogDatabase;
+ * import com.pulumi.aws.glue.CatalogDatabaseArgs;
+ * import com.pulumi.aws.glue.CatalogTable;
+ * import com.pulumi.aws.glue.CatalogTableArgs;
+ * import com.pulumi.aws.glue.inputs.CatalogTableOpenTableFormatInputArgs;
+ * import com.pulumi.aws.glue.inputs.CatalogTableOpenTableFormatInputIcebergInputArgs;
+ * import com.pulumi.aws.glue.inputs.CatalogTableStorageDescriptorArgs;
+ * import com.pulumi.aws.kinesis.FirehoseDeliveryStream;
+ * import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;
+ * import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationArgs;
+ * import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs;
+ * import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs;
+ * 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 current = AwsFunctions.getCallerIdentity();
+ * 
+ *         final var currentGetPartition = AwsFunctions.getPartition();
+ * 
+ *         final var currentGetRegion = AwsFunctions.getRegion();
+ * 
+ *         var bucket = new BucketV2("bucket", BucketV2Args.builder()
+ *             .bucket("test-bucket")
+ *             .forceDestroy(true)
+ *             .build());
+ * 
+ *         var test = new CatalogDatabase("test", CatalogDatabaseArgs.builder()
+ *             .name("test")
+ *             .build());
+ * 
+ *         var testCatalogTable = new CatalogTable("testCatalogTable", CatalogTableArgs.builder()
+ *             .name("test")
+ *             .databaseName(test.name())
+ *             .parameters(Map.of("format", "parquet"))
+ *             .tableType("EXTERNAL_TABLE")
+ *             .openTableFormatInput(CatalogTableOpenTableFormatInputArgs.builder()
+ *                 .icebergInput(CatalogTableOpenTableFormatInputIcebergInputArgs.builder()
+ *                     .metadataOperation("CREATE")
+ *                     .version(2)
+ *                     .build())
+ *                 .build())
+ *             .storageDescriptor(CatalogTableStorageDescriptorArgs.builder()
+ *                 .location(bucket.id().applyValue(id -> String.format("s3://%s", id)))
+ *                 .columns(CatalogTableStorageDescriptorColumnArgs.builder()
+ *                     .name("my_column_1")
+ *                     .type("int")
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *         var testStream = new FirehoseDeliveryStream("testStream", FirehoseDeliveryStreamArgs.builder()
+ *             .name("kinesis-firehose-test-stream")
+ *             .destination("iceberg")
+ *             .icebergConfiguration(FirehoseDeliveryStreamIcebergConfigurationArgs.builder()
+ *                 .roleArn(firehoseRole.arn())
+ *                 .catalogArn(String.format("arn:%s:glue:%s:%s:catalog", currentGetPartition.applyValue(getPartitionResult -> getPartitionResult.partition()),currentGetRegion.applyValue(getRegionResult -> getRegionResult.name()),current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId())))
+ *                 .bufferingSize(10)
+ *                 .bufferingInterval(400)
+ *                 .s3Configuration(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs.builder()
+ *                     .roleArn(firehoseRole.arn())
+ *                     .bucketArn(bucket.arn())
+ *                     .build())
+ *                 .destinationTableConfigurations(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs.builder()
+ *                     .databaseName(test.name())
+ *                     .tableName(testCatalogTable.name())
+ *                     .build())
+ *                 .processingConfiguration(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs.builder()
+ *                     .enabled("true")
+ *                     .processors(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs.builder()
+ *                         .type("Lambda")
+ *                         .parameters(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs.builder()
+ *                             .parameterName("LambdaArn")
+ *                             .parameterValue(String.format("%s:$LATEST", lambdaProcessor.arn()))
+ *                             .build())
+ *                         .build())
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * * ### Splunk Destination * * <!--Start PulumiCodeChooser --> @@ -1074,6 +1186,20 @@ public Output> extendedS public Output> httpEndpointConfiguration() { return Codegen.optional(this.httpEndpointConfiguration); } + /** + * Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + * + */ + @Export(name="icebergConfiguration", refs={FirehoseDeliveryStreamIcebergConfiguration.class}, tree="[0]") + private Output icebergConfiguration; + + /** + * @return Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + * + */ + public Output> icebergConfiguration() { + return Codegen.optional(this.icebergConfiguration); + } /** * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStreamArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStreamArgs.java index 8e708816e80..afc246f85e2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStreamArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/FirehoseDeliveryStreamArgs.java @@ -6,6 +6,7 @@ import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamKinesisSourceConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamMskSourceConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs; @@ -110,6 +111,21 @@ public Optional> htt return Optional.ofNullable(this.httpEndpointConfiguration); } + /** + * Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + * + */ + @Import(name="icebergConfiguration") + private @Nullable Output icebergConfiguration; + + /** + * @return Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + * + */ + public Optional> icebergConfiguration() { + return Optional.ofNullable(this.icebergConfiguration); + } + /** * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. * @@ -280,6 +296,7 @@ private FirehoseDeliveryStreamArgs(FirehoseDeliveryStreamArgs $) { this.elasticsearchConfiguration = $.elasticsearchConfiguration; this.extendedS3Configuration = $.extendedS3Configuration; this.httpEndpointConfiguration = $.httpEndpointConfiguration; + this.icebergConfiguration = $.icebergConfiguration; this.kinesisSourceConfiguration = $.kinesisSourceConfiguration; this.mskSourceConfiguration = $.mskSourceConfiguration; this.name = $.name; @@ -425,6 +442,27 @@ public Builder httpEndpointConfiguration(FirehoseDeliveryStreamHttpEndpointConfi return httpEndpointConfiguration(Output.of(httpEndpointConfiguration)); } + /** + * @param icebergConfiguration Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + * + * @return builder + * + */ + public Builder icebergConfiguration(@Nullable Output icebergConfiguration) { + $.icebergConfiguration = icebergConfiguration; + return this; + } + + /** + * @param icebergConfiguration Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + * + * @return builder + * + */ + public Builder icebergConfiguration(FirehoseDeliveryStreamIcebergConfigurationArgs icebergConfiguration) { + return icebergConfiguration(Output.of(icebergConfiguration)); + } + /** * @param kinesisSourceConfiguration The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.java index fd9544bae18..3b8237fd5ef 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.java @@ -34,14 +34,14 @@ public Optional type; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ public Output type() { @@ -105,7 +105,7 @@ public Builder parameters(FirehoseDeliveryStreamElasticsearchConfigurationProces } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * @@ -116,7 +116,7 @@ public Builder type(Output type) { } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.java index e9c4d926c80..109d8ddb654 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.java @@ -15,14 +15,14 @@ public final class FirehoseDeliveryStreamElasticsearchConfigurationProcessingCon public static final FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs Empty = new FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs(); /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ @Import(name="parameterName", required=true) private Output parameterName; /** - * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ public Output parameterName() { @@ -74,7 +74,7 @@ public Builder(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigu } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * @@ -85,7 +85,7 @@ public Builder parameterName(Output parameterName) { } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.java index d6c7a7324c2..da5b96ba42b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.java @@ -34,14 +34,14 @@ public Optional type; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ public Output type() { @@ -105,7 +105,7 @@ public Builder parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessin } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * @@ -116,7 +116,7 @@ public Builder type(Output type) { } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.java index 9662e0bc3c2..4a40e816caa 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.java @@ -15,14 +15,14 @@ public final class FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfig public static final FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs Empty = new FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs(); /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ @Import(name="parameterName", required=true) private Output parameterName; /** - * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ public Output parameterName() { @@ -74,7 +74,7 @@ public Builder(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurat } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * @@ -85,7 +85,7 @@ public Builder parameterName(Output parameterName) { } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs.java index ead7534f970..c11b94623a0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgs.java @@ -34,14 +34,14 @@ public Optional type; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ public Output type() { @@ -105,7 +105,7 @@ public Builder parameters(FirehoseDeliveryStreamHttpEndpointConfigurationProcess } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * @@ -116,7 +116,7 @@ public Builder type(Output type) { } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs.java index a47fbf7df68..b72b1f7e1c7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs.java @@ -15,14 +15,14 @@ public final class FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConf public static final FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs Empty = new FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs(); /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ @Import(name="parameterName", required=true) private Output parameterName; /** - * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ public Output parameterName() { @@ -74,7 +74,7 @@ public Builder(FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigur } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * @@ -85,7 +85,7 @@ public Builder parameterName(Output parameterName) { } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationArgs.java new file mode 100644 index 00000000000..e6ef9cfa47f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationArgs.java @@ -0,0 +1,422 @@ +// *** 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.kinesis.inputs; + +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamIcebergConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamIcebergConfigurationArgs Empty = new FirehoseDeliveryStreamIcebergConfigurationArgs(); + + /** + * Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + * + */ + @Import(name="bufferingInterval") + private @Nullable Output bufferingInterval; + + /** + * @return Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + * + */ + public Optional> bufferingInterval() { + return Optional.ofNullable(this.bufferingInterval); + } + + /** + * Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + * + */ + @Import(name="bufferingSize") + private @Nullable Output bufferingSize; + + /** + * @return Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + * + */ + public Optional> bufferingSize() { + return Optional.ofNullable(this.bufferingSize); + } + + /** + * Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + * + */ + @Import(name="catalogArn", required=true) + private Output catalogArn; + + /** + * @return Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + * + */ + public Output catalogArn() { + return this.catalogArn; + } + + /** + * The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + */ + @Import(name="cloudwatchLoggingOptions") + private @Nullable Output cloudwatchLoggingOptions; + + /** + * @return The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + */ + public Optional> cloudwatchLoggingOptions() { + return Optional.ofNullable(this.cloudwatchLoggingOptions); + } + + /** + * Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + * + */ + @Import(name="destinationTableConfigurations") + private @Nullable Output> destinationTableConfigurations; + + /** + * @return Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + * + */ + public Optional>> destinationTableConfigurations() { + return Optional.ofNullable(this.destinationTableConfigurations); + } + + /** + * The data processing configuration. See `processing_configuration` block below for details. + * + */ + @Import(name="processingConfiguration") + private @Nullable Output processingConfiguration; + + /** + * @return The data processing configuration. See `processing_configuration` block below for details. + * + */ + public Optional> processingConfiguration() { + return Optional.ofNullable(this.processingConfiguration); + } + + /** + * The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + * + */ + @Import(name="retryDuration") + private @Nullable Output retryDuration; + + /** + * @return The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + * + */ + public Optional> retryDuration() { + return Optional.ofNullable(this.retryDuration); + } + + /** + * The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + * + */ + @Import(name="roleArn", required=true) + private Output roleArn; + + /** + * @return The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + * + */ + public Output roleArn() { + return this.roleArn; + } + + @Import(name="s3BackupMode") + private @Nullable Output s3BackupMode; + + public Optional> s3BackupMode() { + return Optional.ofNullable(this.s3BackupMode); + } + + /** + * The S3 Configuration. See `s3_configuration` block below for details. + * + */ + @Import(name="s3Configuration", required=true) + private Output s3Configuration; + + /** + * @return The S3 Configuration. See `s3_configuration` block below for details. + * + */ + public Output s3Configuration() { + return this.s3Configuration; + } + + private FirehoseDeliveryStreamIcebergConfigurationArgs() {} + + private FirehoseDeliveryStreamIcebergConfigurationArgs(FirehoseDeliveryStreamIcebergConfigurationArgs $) { + this.bufferingInterval = $.bufferingInterval; + this.bufferingSize = $.bufferingSize; + this.catalogArn = $.catalogArn; + this.cloudwatchLoggingOptions = $.cloudwatchLoggingOptions; + this.destinationTableConfigurations = $.destinationTableConfigurations; + this.processingConfiguration = $.processingConfiguration; + this.retryDuration = $.retryDuration; + this.roleArn = $.roleArn; + this.s3BackupMode = $.s3BackupMode; + this.s3Configuration = $.s3Configuration; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamIcebergConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamIcebergConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamIcebergConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamIcebergConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param bufferingInterval Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + * + * @return builder + * + */ + public Builder bufferingInterval(@Nullable Output bufferingInterval) { + $.bufferingInterval = bufferingInterval; + return this; + } + + /** + * @param bufferingInterval Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + * + * @return builder + * + */ + public Builder bufferingInterval(Integer bufferingInterval) { + return bufferingInterval(Output.of(bufferingInterval)); + } + + /** + * @param bufferingSize Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + * + * @return builder + * + */ + public Builder bufferingSize(@Nullable Output bufferingSize) { + $.bufferingSize = bufferingSize; + return this; + } + + /** + * @param bufferingSize Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + * + * @return builder + * + */ + public Builder bufferingSize(Integer bufferingSize) { + return bufferingSize(Output.of(bufferingSize)); + } + + /** + * @param catalogArn Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + * + * @return builder + * + */ + public Builder catalogArn(Output catalogArn) { + $.catalogArn = catalogArn; + return this; + } + + /** + * @param catalogArn Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + * + * @return builder + * + */ + public Builder catalogArn(String catalogArn) { + return catalogArn(Output.of(catalogArn)); + } + + /** + * @param cloudwatchLoggingOptions The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + * @return builder + * + */ + public Builder cloudwatchLoggingOptions(@Nullable Output cloudwatchLoggingOptions) { + $.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + return this; + } + + /** + * @param cloudwatchLoggingOptions The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + * @return builder + * + */ + public Builder cloudwatchLoggingOptions(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs cloudwatchLoggingOptions) { + return cloudwatchLoggingOptions(Output.of(cloudwatchLoggingOptions)); + } + + /** + * @param destinationTableConfigurations Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + * + * @return builder + * + */ + public Builder destinationTableConfigurations(@Nullable Output> destinationTableConfigurations) { + $.destinationTableConfigurations = destinationTableConfigurations; + return this; + } + + /** + * @param destinationTableConfigurations Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + * + * @return builder + * + */ + public Builder destinationTableConfigurations(List destinationTableConfigurations) { + return destinationTableConfigurations(Output.of(destinationTableConfigurations)); + } + + /** + * @param destinationTableConfigurations Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + * + * @return builder + * + */ + public Builder destinationTableConfigurations(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs... destinationTableConfigurations) { + return destinationTableConfigurations(List.of(destinationTableConfigurations)); + } + + /** + * @param processingConfiguration The data processing configuration. See `processing_configuration` block below for details. + * + * @return builder + * + */ + public Builder processingConfiguration(@Nullable Output processingConfiguration) { + $.processingConfiguration = processingConfiguration; + return this; + } + + /** + * @param processingConfiguration The data processing configuration. See `processing_configuration` block below for details. + * + * @return builder + * + */ + public Builder processingConfiguration(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs processingConfiguration) { + return processingConfiguration(Output.of(processingConfiguration)); + } + + /** + * @param retryDuration The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + * + * @return builder + * + */ + public Builder retryDuration(@Nullable Output retryDuration) { + $.retryDuration = retryDuration; + return this; + } + + /** + * @param retryDuration The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + * + * @return builder + * + */ + public Builder retryDuration(Integer retryDuration) { + return retryDuration(Output.of(retryDuration)); + } + + /** + * @param roleArn The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + * + * @return builder + * + */ + public Builder roleArn(Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + public Builder s3BackupMode(@Nullable Output s3BackupMode) { + $.s3BackupMode = s3BackupMode; + return this; + } + + public Builder s3BackupMode(String s3BackupMode) { + return s3BackupMode(Output.of(s3BackupMode)); + } + + /** + * @param s3Configuration The S3 Configuration. See `s3_configuration` block below for details. + * + * @return builder + * + */ + public Builder s3Configuration(Output s3Configuration) { + $.s3Configuration = s3Configuration; + return this; + } + + /** + * @param s3Configuration The S3 Configuration. See `s3_configuration` block below for details. + * + * @return builder + * + */ + public Builder s3Configuration(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs s3Configuration) { + return s3Configuration(Output.of(s3Configuration)); + } + + public FirehoseDeliveryStreamIcebergConfigurationArgs build() { + if ($.catalogArn == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationArgs", "catalogArn"); + } + if ($.roleArn == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationArgs", "roleArn"); + } + if ($.s3Configuration == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationArgs", "s3Configuration"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs.java new file mode 100644 index 00000000000..520fcb78d5d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs.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.kinesis.inputs; + +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 FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs Empty = new FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs(); + + /** + * Enables or disables the logging. Defaults to `false`. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + @Import(name="logGroupName") + private @Nullable Output logGroupName; + + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + public Optional> logGroupName() { + return Optional.ofNullable(this.logGroupName); + } + + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + @Import(name="logStreamName") + private @Nullable Output logStreamName; + + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + public Optional> logStreamName() { + return Optional.ofNullable(this.logStreamName); + } + + private FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs() {} + + private FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs $) { + this.enabled = $.enabled; + this.logGroupName = $.logGroupName; + this.logStreamName = $.logStreamName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs(); + } + + public Builder(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs defaults) { + $ = new FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Enables or disables the logging. Defaults to `false`. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Enables or disables the logging. Defaults to `false`. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param logGroupName The CloudWatch group name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logGroupName(@Nullable Output logGroupName) { + $.logGroupName = logGroupName; + return this; + } + + /** + * @param logGroupName The CloudWatch group name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logGroupName(String logGroupName) { + return logGroupName(Output.of(logGroupName)); + } + + /** + * @param logStreamName The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logStreamName(@Nullable Output logStreamName) { + $.logStreamName = logStreamName; + return this; + } + + /** + * @param logStreamName The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logStreamName(String logStreamName) { + return logStreamName(Output.of(logStreamName)); + } + + public FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs.java new file mode 100644 index 00000000000..1a4e0a4e33f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs.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.kinesis.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; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs Empty = new FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs(); + + /** + * The name of the Apache Iceberg database. + * + */ + @Import(name="databaseName", required=true) + private Output databaseName; + + /** + * @return The name of the Apache Iceberg database. + * + */ + public Output databaseName() { + return this.databaseName; + } + + /** + * The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + * + */ + @Import(name="s3ErrorOutputPrefix") + private @Nullable Output s3ErrorOutputPrefix; + + /** + * @return The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + * + */ + public Optional> s3ErrorOutputPrefix() { + return Optional.ofNullable(this.s3ErrorOutputPrefix); + } + + /** + * The name of the Apache Iceberg Table. + * + */ + @Import(name="tableName", required=true) + private Output tableName; + + /** + * @return The name of the Apache Iceberg Table. + * + */ + public Output tableName() { + return this.tableName; + } + + /** + * A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + * + */ + @Import(name="uniqueKeys") + private @Nullable Output> uniqueKeys; + + /** + * @return A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + * + */ + public Optional>> uniqueKeys() { + return Optional.ofNullable(this.uniqueKeys); + } + + private FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs() {} + + private FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs $) { + this.databaseName = $.databaseName; + this.s3ErrorOutputPrefix = $.s3ErrorOutputPrefix; + this.tableName = $.tableName; + this.uniqueKeys = $.uniqueKeys; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param databaseName The name of the Apache Iceberg database. + * + * @return builder + * + */ + public Builder databaseName(Output databaseName) { + $.databaseName = databaseName; + return this; + } + + /** + * @param databaseName The name of the Apache Iceberg database. + * + * @return builder + * + */ + public Builder databaseName(String databaseName) { + return databaseName(Output.of(databaseName)); + } + + /** + * @param s3ErrorOutputPrefix The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + * + * @return builder + * + */ + public Builder s3ErrorOutputPrefix(@Nullable Output s3ErrorOutputPrefix) { + $.s3ErrorOutputPrefix = s3ErrorOutputPrefix; + return this; + } + + /** + * @param s3ErrorOutputPrefix The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + * + * @return builder + * + */ + public Builder s3ErrorOutputPrefix(String s3ErrorOutputPrefix) { + return s3ErrorOutputPrefix(Output.of(s3ErrorOutputPrefix)); + } + + /** + * @param tableName The name of the Apache Iceberg Table. + * + * @return builder + * + */ + public Builder tableName(Output tableName) { + $.tableName = tableName; + return this; + } + + /** + * @param tableName The name of the Apache Iceberg Table. + * + * @return builder + * + */ + public Builder tableName(String tableName) { + return tableName(Output.of(tableName)); + } + + /** + * @param uniqueKeys A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + * + * @return builder + * + */ + public Builder uniqueKeys(@Nullable Output> uniqueKeys) { + $.uniqueKeys = uniqueKeys; + return this; + } + + /** + * @param uniqueKeys A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + * + * @return builder + * + */ + public Builder uniqueKeys(List uniqueKeys) { + return uniqueKeys(Output.of(uniqueKeys)); + } + + /** + * @param uniqueKeys A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + * + * @return builder + * + */ + public Builder uniqueKeys(String... uniqueKeys) { + return uniqueKeys(List.of(uniqueKeys)); + } + + public FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs build() { + if ($.databaseName == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs", "databaseName"); + } + if ($.tableName == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs", "tableName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs.java new file mode 100644 index 00000000000..1f6bda7a860 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs.java @@ -0,0 +1,132 @@ +// *** 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.kinesis.inputs; + +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs Empty = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs(); + + /** + * Enables or disables data processing. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Enables or disables data processing. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * Specifies the data processors as multiple blocks. See `processors` block below for details. + * + */ + @Import(name="processors") + private @Nullable Output> processors; + + /** + * @return Specifies the data processors as multiple blocks. See `processors` block below for details. + * + */ + public Optional>> processors() { + return Optional.ofNullable(this.processors); + } + + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs() {} + + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs $) { + this.enabled = $.enabled; + this.processors = $.processors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Enables or disables data processing. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Enables or disables data processing. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param processors Specifies the data processors as multiple blocks. See `processors` block below for details. + * + * @return builder + * + */ + public Builder processors(@Nullable Output> processors) { + $.processors = processors; + return this; + } + + /** + * @param processors Specifies the data processors as multiple blocks. See `processors` block below for details. + * + * @return builder + * + */ + public Builder processors(List processors) { + return processors(Output.of(processors)); + } + + /** + * @param processors Specifies the data processors as multiple blocks. See `processors` block below for details. + * + * @return builder + * + */ + public Builder processors(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs... processors) { + return processors(List.of(processors)); + } + + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs.java new file mode 100644 index 00000000000..f302b81bee0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs.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.kinesis.inputs; + +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs; +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 FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs Empty = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs(); + + /** + * Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + * + */ + @Import(name="parameters") + private @Nullable Output> parameters; + + /** + * @return Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + * + */ + public Optional>> parameters() { + return Optional.ofNullable(this.parameters); + } + + /** + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + * + */ + public Output type() { + return this.type; + } + + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs() {} + + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs $) { + this.parameters = $.parameters; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs(); + } + + public Builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs defaults) { + $ = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param parameters Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + * + * @return builder + * + */ + public Builder parameters(@Nullable Output> parameters) { + $.parameters = parameters; + return this; + } + + /** + * @param parameters Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + * + * @return builder + * + */ + public Builder parameters(List parameters) { + return parameters(Output.of(parameters)); + } + + /** + * @param parameters Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + * + * @return builder + * + */ + public Builder parameters(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs... parameters) { + return parameters(List.of(parameters)); + } + + /** + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs build() { + if ($.type == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs.java new file mode 100644 index 00000000000..a7dfebf8447 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs.java @@ -0,0 +1,133 @@ +// *** 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.kinesis.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 FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs Empty = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs(); + + /** + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + * + */ + @Import(name="parameterName", required=true) + private Output parameterName; + + /** + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + * + */ + public Output parameterName() { + return this.parameterName; + } + + /** + * Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + */ + @Import(name="parameterValue", required=true) + private Output parameterValue; + + /** + * @return Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + */ + public Output parameterValue() { + return this.parameterValue; + } + + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs() {} + + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs $) { + this.parameterName = $.parameterName; + this.parameterValue = $.parameterValue; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs(); + } + + public Builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs defaults) { + $ = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + * + * @return builder + * + */ + public Builder parameterName(Output parameterName) { + $.parameterName = parameterName; + return this; + } + + /** + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + * + * @return builder + * + */ + public Builder parameterName(String parameterName) { + return parameterName(Output.of(parameterName)); + } + + /** + * @param parameterValue Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + * @return builder + * + */ + public Builder parameterValue(Output parameterValue) { + $.parameterValue = parameterValue; + return this; + } + + /** + * @param parameterValue Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + * @return builder + * + */ + public Builder parameterValue(String parameterValue) { + return parameterValue(Output.of(parameterValue)); + } + + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs build() { + if ($.parameterName == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs", "parameterName"); + } + if ($.parameterValue == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs", "parameterValue"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs.java new file mode 100644 index 00000000000..c5382a0ec94 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs.java @@ -0,0 +1,396 @@ +// *** 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.kinesis.inputs; + +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs Empty = new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs(); + + /** + * The ARN of the S3 bucket + * + */ + @Import(name="bucketArn", required=true) + private Output bucketArn; + + /** + * @return The ARN of the S3 bucket + * + */ + public Output bucketArn() { + return this.bucketArn; + } + + /** + * Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + * + */ + @Import(name="bufferingInterval") + private @Nullable Output bufferingInterval; + + /** + * @return Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + * + */ + public Optional> bufferingInterval() { + return Optional.ofNullable(this.bufferingInterval); + } + + /** + * Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + */ + @Import(name="bufferingSize") + private @Nullable Output bufferingSize; + + /** + * @return Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + */ + public Optional> bufferingSize() { + return Optional.ofNullable(this.bufferingSize); + } + + /** + * The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + */ + @Import(name="cloudwatchLoggingOptions") + private @Nullable Output cloudwatchLoggingOptions; + + /** + * @return The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + */ + public Optional> cloudwatchLoggingOptions() { + return Optional.ofNullable(this.cloudwatchLoggingOptions); + } + + /** + * The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + */ + @Import(name="compressionFormat") + private @Nullable Output compressionFormat; + + /** + * @return The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + */ + public Optional> compressionFormat() { + return Optional.ofNullable(this.compressionFormat); + } + + /** + * Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + */ + @Import(name="errorOutputPrefix") + private @Nullable Output errorOutputPrefix; + + /** + * @return Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + */ + public Optional> errorOutputPrefix() { + return Optional.ofNullable(this.errorOutputPrefix); + } + + /** + * Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + */ + @Import(name="kmsKeyArn") + private @Nullable Output kmsKeyArn; + + /** + * @return Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + */ + public Optional> kmsKeyArn() { + return Optional.ofNullable(this.kmsKeyArn); + } + + /** + * The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + */ + @Import(name="prefix") + private @Nullable Output prefix; + + /** + * @return The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + */ + public Optional> prefix() { + return Optional.ofNullable(this.prefix); + } + + /** + * The ARN of the AWS credentials. + * + */ + @Import(name="roleArn", required=true) + private Output roleArn; + + /** + * @return The ARN of the AWS credentials. + * + */ + public Output roleArn() { + return this.roleArn; + } + + private FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs() {} + + private FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs $) { + this.bucketArn = $.bucketArn; + this.bufferingInterval = $.bufferingInterval; + this.bufferingSize = $.bufferingSize; + this.cloudwatchLoggingOptions = $.cloudwatchLoggingOptions; + this.compressionFormat = $.compressionFormat; + this.errorOutputPrefix = $.errorOutputPrefix; + this.kmsKeyArn = $.kmsKeyArn; + this.prefix = $.prefix; + this.roleArn = $.roleArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs(); + } + + public Builder(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs defaults) { + $ = new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param bucketArn The ARN of the S3 bucket + * + * @return builder + * + */ + public Builder bucketArn(Output bucketArn) { + $.bucketArn = bucketArn; + return this; + } + + /** + * @param bucketArn The ARN of the S3 bucket + * + * @return builder + * + */ + public Builder bucketArn(String bucketArn) { + return bucketArn(Output.of(bucketArn)); + } + + /** + * @param bufferingInterval Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + * + * @return builder + * + */ + public Builder bufferingInterval(@Nullable Output bufferingInterval) { + $.bufferingInterval = bufferingInterval; + return this; + } + + /** + * @param bufferingInterval Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + * + * @return builder + * + */ + public Builder bufferingInterval(Integer bufferingInterval) { + return bufferingInterval(Output.of(bufferingInterval)); + } + + /** + * @param bufferingSize Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + * @return builder + * + */ + public Builder bufferingSize(@Nullable Output bufferingSize) { + $.bufferingSize = bufferingSize; + return this; + } + + /** + * @param bufferingSize Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + * @return builder + * + */ + public Builder bufferingSize(Integer bufferingSize) { + return bufferingSize(Output.of(bufferingSize)); + } + + /** + * @param cloudwatchLoggingOptions The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + * @return builder + * + */ + public Builder cloudwatchLoggingOptions(@Nullable Output cloudwatchLoggingOptions) { + $.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + return this; + } + + /** + * @param cloudwatchLoggingOptions The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + * @return builder + * + */ + public Builder cloudwatchLoggingOptions(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs cloudwatchLoggingOptions) { + return cloudwatchLoggingOptions(Output.of(cloudwatchLoggingOptions)); + } + + /** + * @param compressionFormat The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + * @return builder + * + */ + public Builder compressionFormat(@Nullable Output compressionFormat) { + $.compressionFormat = compressionFormat; + return this; + } + + /** + * @param compressionFormat The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + * @return builder + * + */ + public Builder compressionFormat(String compressionFormat) { + return compressionFormat(Output.of(compressionFormat)); + } + + /** + * @param errorOutputPrefix Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + * @return builder + * + */ + public Builder errorOutputPrefix(@Nullable Output errorOutputPrefix) { + $.errorOutputPrefix = errorOutputPrefix; + return this; + } + + /** + * @param errorOutputPrefix Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + * @return builder + * + */ + public Builder errorOutputPrefix(String errorOutputPrefix) { + return errorOutputPrefix(Output.of(errorOutputPrefix)); + } + + /** + * @param kmsKeyArn Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + * @return builder + * + */ + public Builder kmsKeyArn(@Nullable Output kmsKeyArn) { + $.kmsKeyArn = kmsKeyArn; + return this; + } + + /** + * @param kmsKeyArn Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + * @return builder + * + */ + public Builder kmsKeyArn(String kmsKeyArn) { + return kmsKeyArn(Output.of(kmsKeyArn)); + } + + /** + * @param prefix The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + * @return builder + * + */ + public Builder prefix(@Nullable Output prefix) { + $.prefix = prefix; + return this; + } + + /** + * @param prefix The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + * @return builder + * + */ + public Builder prefix(String prefix) { + return prefix(Output.of(prefix)); + } + + /** + * @param roleArn The ARN of the AWS credentials. + * + * @return builder + * + */ + public Builder roleArn(Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The ARN of the AWS credentials. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + public FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs build() { + if ($.bucketArn == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs", "bucketArn"); + } + if ($.roleArn == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs", "roleArn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.java new file mode 100644 index 00000000000..6f189c2a962 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs.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.kinesis.inputs; + +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 FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs extends com.pulumi.resources.ResourceArgs { + + public static final FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs Empty = new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs(); + + /** + * Enables or disables the logging. Defaults to `false`. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + @Import(name="logGroupName") + private @Nullable Output logGroupName; + + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + public Optional> logGroupName() { + return Optional.ofNullable(this.logGroupName); + } + + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + @Import(name="logStreamName") + private @Nullable Output logStreamName; + + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + public Optional> logStreamName() { + return Optional.ofNullable(this.logStreamName); + } + + private FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs() {} + + private FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs $) { + this.enabled = $.enabled; + this.logGroupName = $.logGroupName; + this.logStreamName = $.logStreamName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs $; + + public Builder() { + $ = new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs(); + } + + public Builder(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs defaults) { + $ = new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Enables or disables the logging. Defaults to `false`. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Enables or disables the logging. Defaults to `false`. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param logGroupName The CloudWatch group name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logGroupName(@Nullable Output logGroupName) { + $.logGroupName = logGroupName; + return this; + } + + /** + * @param logGroupName The CloudWatch group name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logGroupName(String logGroupName) { + return logGroupName(Output.of(logGroupName)); + } + + /** + * @param logStreamName The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logStreamName(@Nullable Output logStreamName) { + $.logStreamName = logStreamName; + return this; + } + + /** + * @param logStreamName The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + * @return builder + * + */ + public Builder logStreamName(String logStreamName) { + return logStreamName(Output.of(logStreamName)); + } + + public FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.java index e616958f466..10152210c6e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.java @@ -34,14 +34,14 @@ public Optional type; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ public Output type() { @@ -105,7 +105,7 @@ public Builder parameters(FirehoseDeliveryStreamOpensearchConfigurationProcessin } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * @@ -116,7 +116,7 @@ public Builder type(Output type) { } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.java index 7929a689517..b2340af776c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.java @@ -15,14 +15,14 @@ public final class FirehoseDeliveryStreamOpensearchConfigurationProcessingConfig public static final FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs Empty = new FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs(); /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ @Import(name="parameterName", required=true) private Output parameterName; /** - * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ public Output parameterName() { @@ -74,7 +74,7 @@ public Builder(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurat } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * @@ -85,7 +85,7 @@ public Builder parameterName(Output parameterName) { } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.java index a2e0f2c3047..67d36c33627 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.java @@ -34,14 +34,14 @@ public Optional type; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ public Output type() { @@ -105,7 +105,7 @@ public Builder parameters(FirehoseDeliveryStreamOpensearchserverlessConfiguratio } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * @@ -116,7 +116,7 @@ public Builder type(Output type) { } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.java index ff9ff9036ea..fcd1928f3b1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.java @@ -15,14 +15,14 @@ public final class FirehoseDeliveryStreamOpensearchserverlessConfigurationProces public static final FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs Empty = new FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs(); /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ @Import(name="parameterName", required=true) private Output parameterName; /** - * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ public Output parameterName() { @@ -74,7 +74,7 @@ public Builder(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessing } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * @@ -85,7 +85,7 @@ public Builder parameterName(Output parameterName) { } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs.java index 3ec1c743162..338b05b1106 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgs.java @@ -34,14 +34,14 @@ public Optional type; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ public Output type() { @@ -105,7 +105,7 @@ public Builder parameters(FirehoseDeliveryStreamRedshiftConfigurationProcessingC } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * @@ -116,7 +116,7 @@ public Builder type(Output type) { } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs.java index 1eb5bce7c84..b3a0e7bffb8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs.java @@ -15,14 +15,14 @@ public final class FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigur public static final FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs Empty = new FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs(); /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ @Import(name="parameterName", required=true) private Output parameterName; /** - * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ public Output parameterName() { @@ -74,7 +74,7 @@ public Builder(FirehoseDeliveryStreamRedshiftConfigurationProcessingConfiguratio } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * @@ -85,7 +85,7 @@ public Builder parameterName(Output parameterName) { } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorArgs.java index 6bcc5e2bf3a..94dda6c3d86 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorArgs.java @@ -34,14 +34,14 @@ public Optional type; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ public Output type() { @@ -105,7 +105,7 @@ public Builder parameters(FirehoseDeliveryStreamSnowflakeConfigurationProcessing } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * @@ -116,7 +116,7 @@ public Builder type(Output type) { } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs.java index 19f9a137e37..268d0dd2b90 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs.java @@ -15,14 +15,14 @@ public final class FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigu public static final FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs Empty = new FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs(); /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ @Import(name="parameterName", required=true) private Output parameterName; /** - * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ public Output parameterName() { @@ -74,7 +74,7 @@ public Builder(FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurati } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * @@ -85,7 +85,7 @@ public Builder parameterName(Output parameterName) { } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs.java index ad2bf6a29ce..fac8d4a657d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgs.java @@ -34,14 +34,14 @@ public Optional type; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ public Output type() { @@ -105,7 +105,7 @@ public Builder parameters(FirehoseDeliveryStreamSplunkConfigurationProcessingCon } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * @@ -116,7 +116,7 @@ public Builder type(Output type) { } /** - * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param type The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs.java index e0971e8d3c1..dfc5faeb64b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs.java @@ -15,14 +15,14 @@ public final class FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurat public static final FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs Empty = new FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs(); /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ @Import(name="parameterName", required=true) private Output parameterName; /** - * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * */ public Output parameterName() { @@ -74,7 +74,7 @@ public Builder(FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationP } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * @@ -85,7 +85,7 @@ public Builder parameterName(Output parameterName) { } /** - * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @param parameterName Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamState.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamState.java index d5e952f8a7a..61ae109dcfa 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamState.java @@ -6,6 +6,7 @@ import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs; +import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamKinesisSourceConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamMskSourceConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs; @@ -109,6 +110,21 @@ public Optional> htt return Optional.ofNullable(this.httpEndpointConfiguration); } + /** + * Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + * + */ + @Import(name="icebergConfiguration") + private @Nullable Output icebergConfiguration; + + /** + * @return Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + * + */ + public Optional> icebergConfiguration() { + return Optional.ofNullable(this.icebergConfiguration); + } + /** * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. * @@ -302,6 +318,7 @@ private FirehoseDeliveryStreamState(FirehoseDeliveryStreamState $) { this.elasticsearchConfiguration = $.elasticsearchConfiguration; this.extendedS3Configuration = $.extendedS3Configuration; this.httpEndpointConfiguration = $.httpEndpointConfiguration; + this.icebergConfiguration = $.icebergConfiguration; this.kinesisSourceConfiguration = $.kinesisSourceConfiguration; this.mskSourceConfiguration = $.mskSourceConfiguration; this.name = $.name; @@ -448,6 +465,27 @@ public Builder httpEndpointConfiguration(FirehoseDeliveryStreamHttpEndpointConfi return httpEndpointConfiguration(Output.of(httpEndpointConfiguration)); } + /** + * @param icebergConfiguration Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + * + * @return builder + * + */ + public Builder icebergConfiguration(@Nullable Output icebergConfiguration) { + $.icebergConfiguration = icebergConfiguration; + return this; + } + + /** + * @param icebergConfiguration Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + * + * @return builder + * + */ + public Builder icebergConfiguration(FirehoseDeliveryStreamIcebergConfigurationArgs icebergConfiguration) { + return icebergConfiguration(Output.of(icebergConfiguration)); + } + /** * @param kinesisSourceConfiguration The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor.java index f74939088b0..80a5630007b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessor.java @@ -19,7 +19,7 @@ public final class FirehoseDeliveryStreamElasticsearchConfigurationProcessingCon */ private @Nullable List parameters; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ private String type; @@ -33,7 +33,7 @@ public List parameters; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ private String type; @@ -33,7 +33,7 @@ public List parameters; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ private String type; @@ -33,7 +33,7 @@ public List destinationTableConfigurations; + /** + * @return The data processing configuration. See `processing_configuration` block below for details. + * + */ + private @Nullable FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration processingConfiguration; + /** + * @return The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + * + */ + private @Nullable Integer retryDuration; + /** + * @return The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + * + */ + private String roleArn; + private @Nullable String s3BackupMode; + /** + * @return The S3 Configuration. See `s3_configuration` block below for details. + * + */ + private FirehoseDeliveryStreamIcebergConfigurationS3Configuration s3Configuration; + + private FirehoseDeliveryStreamIcebergConfiguration() {} + /** + * @return Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + * + */ + public Optional bufferingInterval() { + return Optional.ofNullable(this.bufferingInterval); + } + /** + * @return Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + * + */ + public Optional bufferingSize() { + return Optional.ofNullable(this.bufferingSize); + } + /** + * @return Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + * + */ + public String catalogArn() { + return this.catalogArn; + } + /** + * @return The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + */ + public Optional cloudwatchLoggingOptions() { + return Optional.ofNullable(this.cloudwatchLoggingOptions); + } + /** + * @return Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + * + */ + public List destinationTableConfigurations() { + return this.destinationTableConfigurations == null ? List.of() : this.destinationTableConfigurations; + } + /** + * @return The data processing configuration. See `processing_configuration` block below for details. + * + */ + public Optional processingConfiguration() { + return Optional.ofNullable(this.processingConfiguration); + } + /** + * @return The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + * + */ + public Optional retryDuration() { + return Optional.ofNullable(this.retryDuration); + } + /** + * @return The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + * + */ + public String roleArn() { + return this.roleArn; + } + public Optional s3BackupMode() { + return Optional.ofNullable(this.s3BackupMode); + } + /** + * @return The S3 Configuration. See `s3_configuration` block below for details. + * + */ + public FirehoseDeliveryStreamIcebergConfigurationS3Configuration s3Configuration() { + return this.s3Configuration; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamIcebergConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer bufferingInterval; + private @Nullable Integer bufferingSize; + private String catalogArn; + private @Nullable FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions; + private @Nullable List destinationTableConfigurations; + private @Nullable FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration processingConfiguration; + private @Nullable Integer retryDuration; + private String roleArn; + private @Nullable String s3BackupMode; + private FirehoseDeliveryStreamIcebergConfigurationS3Configuration s3Configuration; + public Builder() {} + public Builder(FirehoseDeliveryStreamIcebergConfiguration defaults) { + Objects.requireNonNull(defaults); + this.bufferingInterval = defaults.bufferingInterval; + this.bufferingSize = defaults.bufferingSize; + this.catalogArn = defaults.catalogArn; + this.cloudwatchLoggingOptions = defaults.cloudwatchLoggingOptions; + this.destinationTableConfigurations = defaults.destinationTableConfigurations; + this.processingConfiguration = defaults.processingConfiguration; + this.retryDuration = defaults.retryDuration; + this.roleArn = defaults.roleArn; + this.s3BackupMode = defaults.s3BackupMode; + this.s3Configuration = defaults.s3Configuration; + } + + @CustomType.Setter + public Builder bufferingInterval(@Nullable Integer bufferingInterval) { + + this.bufferingInterval = bufferingInterval; + return this; + } + @CustomType.Setter + public Builder bufferingSize(@Nullable Integer bufferingSize) { + + this.bufferingSize = bufferingSize; + return this; + } + @CustomType.Setter + public Builder catalogArn(String catalogArn) { + if (catalogArn == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfiguration", "catalogArn"); + } + this.catalogArn = catalogArn; + return this; + } + @CustomType.Setter + public Builder cloudwatchLoggingOptions(@Nullable FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions) { + + this.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + return this; + } + @CustomType.Setter + public Builder destinationTableConfigurations(@Nullable List destinationTableConfigurations) { + + this.destinationTableConfigurations = destinationTableConfigurations; + return this; + } + public Builder destinationTableConfigurations(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration... destinationTableConfigurations) { + return destinationTableConfigurations(List.of(destinationTableConfigurations)); + } + @CustomType.Setter + public Builder processingConfiguration(@Nullable FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration processingConfiguration) { + + this.processingConfiguration = processingConfiguration; + return this; + } + @CustomType.Setter + public Builder retryDuration(@Nullable Integer retryDuration) { + + this.retryDuration = retryDuration; + return this; + } + @CustomType.Setter + public Builder roleArn(String roleArn) { + if (roleArn == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfiguration", "roleArn"); + } + this.roleArn = roleArn; + return this; + } + @CustomType.Setter + public Builder s3BackupMode(@Nullable String s3BackupMode) { + + this.s3BackupMode = s3BackupMode; + return this; + } + @CustomType.Setter + public Builder s3Configuration(FirehoseDeliveryStreamIcebergConfigurationS3Configuration s3Configuration) { + if (s3Configuration == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfiguration", "s3Configuration"); + } + this.s3Configuration = s3Configuration; + return this; + } + public FirehoseDeliveryStreamIcebergConfiguration build() { + final var _resultValue = new FirehoseDeliveryStreamIcebergConfiguration(); + _resultValue.bufferingInterval = bufferingInterval; + _resultValue.bufferingSize = bufferingSize; + _resultValue.catalogArn = catalogArn; + _resultValue.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + _resultValue.destinationTableConfigurations = destinationTableConfigurations; + _resultValue.processingConfiguration = processingConfiguration; + _resultValue.retryDuration = retryDuration; + _resultValue.roleArn = roleArn; + _resultValue.s3BackupMode = s3BackupMode; + _resultValue.s3Configuration = s3Configuration; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions.java new file mode 100644 index 00000000000..4664d0fb6a9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions.java @@ -0,0 +1,100 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.kinesis.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions { + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + private @Nullable Boolean enabled; + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + private @Nullable String logGroupName; + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + private @Nullable String logStreamName; + + private FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions() {} + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + public Optional logGroupName() { + return Optional.ofNullable(this.logGroupName); + } + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + public Optional logStreamName() { + return Optional.ofNullable(this.logStreamName); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable String logGroupName; + private @Nullable String logStreamName; + public Builder() {} + public Builder(FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.logGroupName = defaults.logGroupName; + this.logStreamName = defaults.logStreamName; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder logGroupName(@Nullable String logGroupName) { + + this.logGroupName = logGroupName; + return this; + } + @CustomType.Setter + public Builder logStreamName(@Nullable String logStreamName) { + + this.logStreamName = logStreamName; + return this; + } + public FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions build() { + final var _resultValue = new FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions(); + _resultValue.enabled = enabled; + _resultValue.logGroupName = logGroupName; + _resultValue.logStreamName = logStreamName; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration.java new file mode 100644 index 00000000000..f46345a4f73 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration.java @@ -0,0 +1,129 @@ +// *** 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.kinesis.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration { + /** + * @return The name of the Apache Iceberg database. + * + */ + private String databaseName; + /** + * @return The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + * + */ + private @Nullable String s3ErrorOutputPrefix; + /** + * @return The name of the Apache Iceberg Table. + * + */ + private String tableName; + /** + * @return A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + * + */ + private @Nullable List uniqueKeys; + + private FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration() {} + /** + * @return The name of the Apache Iceberg database. + * + */ + public String databaseName() { + return this.databaseName; + } + /** + * @return The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + * + */ + public Optional s3ErrorOutputPrefix() { + return Optional.ofNullable(this.s3ErrorOutputPrefix); + } + /** + * @return The name of the Apache Iceberg Table. + * + */ + public String tableName() { + return this.tableName; + } + /** + * @return A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + * + */ + public List uniqueKeys() { + return this.uniqueKeys == null ? List.of() : this.uniqueKeys; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String databaseName; + private @Nullable String s3ErrorOutputPrefix; + private String tableName; + private @Nullable List uniqueKeys; + public Builder() {} + public Builder(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration defaults) { + Objects.requireNonNull(defaults); + this.databaseName = defaults.databaseName; + this.s3ErrorOutputPrefix = defaults.s3ErrorOutputPrefix; + this.tableName = defaults.tableName; + this.uniqueKeys = defaults.uniqueKeys; + } + + @CustomType.Setter + public Builder databaseName(String databaseName) { + if (databaseName == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration", "databaseName"); + } + this.databaseName = databaseName; + return this; + } + @CustomType.Setter + public Builder s3ErrorOutputPrefix(@Nullable String s3ErrorOutputPrefix) { + + this.s3ErrorOutputPrefix = s3ErrorOutputPrefix; + return this; + } + @CustomType.Setter + public Builder tableName(String tableName) { + if (tableName == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration", "tableName"); + } + this.tableName = tableName; + return this; + } + @CustomType.Setter + public Builder uniqueKeys(@Nullable List uniqueKeys) { + + this.uniqueKeys = uniqueKeys; + return this; + } + public Builder uniqueKeys(String... uniqueKeys) { + return uniqueKeys(List.of(uniqueKeys)); + } + public FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration build() { + final var _resultValue = new FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration(); + _resultValue.databaseName = databaseName; + _resultValue.s3ErrorOutputPrefix = s3ErrorOutputPrefix; + _resultValue.tableName = tableName; + _resultValue.uniqueKeys = uniqueKeys; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration.java new file mode 100644 index 00000000000..8667ea5529c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration.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.kinesis.outputs; + +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor; +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration { + /** + * @return Enables or disables data processing. + * + */ + private @Nullable Boolean enabled; + /** + * @return Specifies the data processors as multiple blocks. See `processors` block below for details. + * + */ + private @Nullable List processors; + + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration() {} + /** + * @return Enables or disables data processing. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return Specifies the data processors as multiple blocks. See `processors` block below for details. + * + */ + public List processors() { + return this.processors == null ? List.of() : this.processors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable List processors; + public Builder() {} + public Builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.processors = defaults.processors; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder processors(@Nullable List processors) { + + this.processors = processors; + return this; + } + public Builder processors(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor... processors) { + return processors(List.of(processors)); + } + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration build() { + final var _resultValue = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration(); + _resultValue.enabled = enabled; + _resultValue.processors = processors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor.java new file mode 100644 index 00000000000..950a182cc5c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor.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.kinesis.outputs; + +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor { + /** + * @return Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + * + */ + private @Nullable List parameters; + /** + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + * + */ + private String type; + + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor() {} + /** + * @return Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + * + */ + public List parameters() { + return this.parameters == null ? List.of() : this.parameters; + } + /** + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List parameters; + private String type; + public Builder() {} + public Builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor defaults) { + Objects.requireNonNull(defaults); + this.parameters = defaults.parameters; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder parameters(@Nullable List parameters) { + + this.parameters = parameters; + return this; + } + public Builder parameters(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter... parameters) { + return parameters(List.of(parameters)); + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor", "type"); + } + this.type = type; + return this; + } + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor build() { + final var _resultValue = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor(); + _resultValue.parameters = parameters; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter.java new file mode 100644 index 00000000000..bf31a7f26bf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter.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.kinesis.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter { + /** + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + * + */ + private String parameterName; + /** + * @return Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + */ + private String parameterValue; + + private FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter() {} + /** + * @return Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + * + */ + public String parameterName() { + return this.parameterName; + } + /** + * @return Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + * + */ + public String parameterValue() { + return this.parameterValue; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String parameterName; + private String parameterValue; + public Builder() {} + public Builder(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter defaults) { + Objects.requireNonNull(defaults); + this.parameterName = defaults.parameterName; + this.parameterValue = defaults.parameterValue; + } + + @CustomType.Setter + public Builder parameterName(String parameterName) { + if (parameterName == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter", "parameterName"); + } + this.parameterName = parameterName; + return this; + } + @CustomType.Setter + public Builder parameterValue(String parameterValue) { + if (parameterValue == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter", "parameterValue"); + } + this.parameterValue = parameterValue; + return this; + } + public FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter build() { + final var _resultValue = new FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter(); + _resultValue.parameterName = parameterName; + _resultValue.parameterValue = parameterValue; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationS3Configuration.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationS3Configuration.java new file mode 100644 index 00000000000..8b84f73a978 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationS3Configuration.java @@ -0,0 +1,236 @@ +// *** 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.kinesis.outputs; + +import com.pulumi.aws.kinesis.outputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamIcebergConfigurationS3Configuration { + /** + * @return The ARN of the S3 bucket + * + */ + private String bucketArn; + /** + * @return Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + * + */ + private @Nullable Integer bufferingInterval; + /** + * @return Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + */ + private @Nullable Integer bufferingSize; + /** + * @return The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + */ + private @Nullable FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions; + /** + * @return The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + */ + private @Nullable String compressionFormat; + /** + * @return Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + */ + private @Nullable String errorOutputPrefix; + /** + * @return Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + */ + private @Nullable String kmsKeyArn; + /** + * @return The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + */ + private @Nullable String prefix; + /** + * @return The ARN of the AWS credentials. + * + */ + private String roleArn; + + private FirehoseDeliveryStreamIcebergConfigurationS3Configuration() {} + /** + * @return The ARN of the S3 bucket + * + */ + public String bucketArn() { + return this.bucketArn; + } + /** + * @return Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + * + */ + public Optional bufferingInterval() { + return Optional.ofNullable(this.bufferingInterval); + } + /** + * @return Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + * + */ + public Optional bufferingSize() { + return Optional.ofNullable(this.bufferingSize); + } + /** + * @return The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + * + */ + public Optional cloudwatchLoggingOptions() { + return Optional.ofNullable(this.cloudwatchLoggingOptions); + } + /** + * @return The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + * + */ + public Optional compressionFormat() { + return Optional.ofNullable(this.compressionFormat); + } + /** + * @return Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + * + */ + public Optional errorOutputPrefix() { + return Optional.ofNullable(this.errorOutputPrefix); + } + /** + * @return Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + * + */ + public Optional kmsKeyArn() { + return Optional.ofNullable(this.kmsKeyArn); + } + /** + * @return The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + * + */ + public Optional prefix() { + return Optional.ofNullable(this.prefix); + } + /** + * @return The ARN of the AWS credentials. + * + */ + public String roleArn() { + return this.roleArn; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationS3Configuration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String bucketArn; + private @Nullable Integer bufferingInterval; + private @Nullable Integer bufferingSize; + private @Nullable FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions; + private @Nullable String compressionFormat; + private @Nullable String errorOutputPrefix; + private @Nullable String kmsKeyArn; + private @Nullable String prefix; + private String roleArn; + public Builder() {} + public Builder(FirehoseDeliveryStreamIcebergConfigurationS3Configuration defaults) { + Objects.requireNonNull(defaults); + this.bucketArn = defaults.bucketArn; + this.bufferingInterval = defaults.bufferingInterval; + this.bufferingSize = defaults.bufferingSize; + this.cloudwatchLoggingOptions = defaults.cloudwatchLoggingOptions; + this.compressionFormat = defaults.compressionFormat; + this.errorOutputPrefix = defaults.errorOutputPrefix; + this.kmsKeyArn = defaults.kmsKeyArn; + this.prefix = defaults.prefix; + this.roleArn = defaults.roleArn; + } + + @CustomType.Setter + public Builder bucketArn(String bucketArn) { + if (bucketArn == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationS3Configuration", "bucketArn"); + } + this.bucketArn = bucketArn; + return this; + } + @CustomType.Setter + public Builder bufferingInterval(@Nullable Integer bufferingInterval) { + + this.bufferingInterval = bufferingInterval; + return this; + } + @CustomType.Setter + public Builder bufferingSize(@Nullable Integer bufferingSize) { + + this.bufferingSize = bufferingSize; + return this; + } + @CustomType.Setter + public Builder cloudwatchLoggingOptions(@Nullable FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions cloudwatchLoggingOptions) { + + this.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + return this; + } + @CustomType.Setter + public Builder compressionFormat(@Nullable String compressionFormat) { + + this.compressionFormat = compressionFormat; + return this; + } + @CustomType.Setter + public Builder errorOutputPrefix(@Nullable String errorOutputPrefix) { + + this.errorOutputPrefix = errorOutputPrefix; + return this; + } + @CustomType.Setter + public Builder kmsKeyArn(@Nullable String kmsKeyArn) { + + this.kmsKeyArn = kmsKeyArn; + return this; + } + @CustomType.Setter + public Builder prefix(@Nullable String prefix) { + + this.prefix = prefix; + return this; + } + @CustomType.Setter + public Builder roleArn(String roleArn) { + if (roleArn == null) { + throw new MissingRequiredPropertyException("FirehoseDeliveryStreamIcebergConfigurationS3Configuration", "roleArn"); + } + this.roleArn = roleArn; + return this; + } + public FirehoseDeliveryStreamIcebergConfigurationS3Configuration build() { + final var _resultValue = new FirehoseDeliveryStreamIcebergConfigurationS3Configuration(); + _resultValue.bucketArn = bucketArn; + _resultValue.bufferingInterval = bufferingInterval; + _resultValue.bufferingSize = bufferingSize; + _resultValue.cloudwatchLoggingOptions = cloudwatchLoggingOptions; + _resultValue.compressionFormat = compressionFormat; + _resultValue.errorOutputPrefix = errorOutputPrefix; + _resultValue.kmsKeyArn = kmsKeyArn; + _resultValue.prefix = prefix; + _resultValue.roleArn = roleArn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions.java new file mode 100644 index 00000000000..960340a8132 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions.java @@ -0,0 +1,100 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.kinesis.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions { + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + private @Nullable Boolean enabled; + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + private @Nullable String logGroupName; + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + private @Nullable String logStreamName; + + private FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions() {} + /** + * @return Enables or disables the logging. Defaults to `false`. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return The CloudWatch group name for logging. This value is required if `enabled` is true. + * + */ + public Optional logGroupName() { + return Optional.ofNullable(this.logGroupName); + } + /** + * @return The CloudWatch log stream name for logging. This value is required if `enabled` is true. + * + */ + public Optional logStreamName() { + return Optional.ofNullable(this.logStreamName); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable String logGroupName; + private @Nullable String logStreamName; + public Builder() {} + public Builder(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.logGroupName = defaults.logGroupName; + this.logStreamName = defaults.logStreamName; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder logGroupName(@Nullable String logGroupName) { + + this.logGroupName = logGroupName; + return this; + } + @CustomType.Setter + public Builder logStreamName(@Nullable String logStreamName) { + + this.logStreamName = logStreamName; + return this; + } + public FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions build() { + final var _resultValue = new FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions(); + _resultValue.enabled = enabled; + _resultValue.logGroupName = logGroupName; + _resultValue.logStreamName = logStreamName; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor.java index eaf6579df7e..cf0e636bb6f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/outputs/FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessor.java @@ -19,7 +19,7 @@ public final class FirehoseDeliveryStreamOpensearchConfigurationProcessingConfig */ private @Nullable List parameters; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ private String type; @@ -33,7 +33,7 @@ public List parameters; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ private String type; @@ -33,7 +33,7 @@ public List parameters; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ private String type; @@ -33,7 +33,7 @@ public List parameters; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ private String type; @@ -33,7 +33,7 @@ public List parameters; /** - * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * @return The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. * */ private String type; @@ -33,7 +33,7 @@ public List * <!--End PulumiCodeChooser --> * + * ### Change Cross Account Version + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.lakeformation.DataLakeSettings;
+ * import com.pulumi.aws.lakeformation.DataLakeSettingsArgs;
+ * 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 DataLakeSettings("example", DataLakeSettingsArgs.builder()
+ *             .parameters(Map.of("CROSS_ACCOUNT_VERSION", "3"))
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * */ @ResourceType(type="aws:lakeformation/dataLakeSettings:DataLakeSettings") public class DataLakeSettings extends com.pulumi.resources.CustomResource { @@ -202,8 +238,6 @@ public Output> allowExternalDataFiltering() { /** * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * */ @Export(name="allowFullTableExternalDataAccess", refs={Boolean.class}, tree="[0]") private Output allowFullTableExternalDataAccess; @@ -211,8 +245,6 @@ public Output> allowExternalDataFiltering() { /** * @return Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * */ public Output> allowFullTableExternalDataAccess() { return Codegen.optional(this.allowFullTableExternalDataAccess); @@ -287,6 +319,20 @@ public Output> createTableDef public Output> externalDataFilteringAllowLists() { return this.externalDataFilteringAllowLists; } + /** + * Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + * + */ + @Export(name="parameters", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> parameters; + + /** + * @return Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + * + */ + public Output> parameters() { + return this.parameters; + } /** * Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. * @@ -304,6 +350,8 @@ public Output> readOnlyAdmins() { /** * List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * */ @Export(name="trustedResourceOwners", refs={List.class,String.class}, tree="[0,1]") private Output> trustedResourceOwners; @@ -311,6 +359,8 @@ public Output> readOnlyAdmins() { /** * @return List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * */ public Output> trustedResourceOwners() { return this.trustedResourceOwners; diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettingsArgs.java index 1993d3c93e1..c7534f5b4bf 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/DataLakeSettingsArgs.java @@ -10,6 +10,7 @@ import java.lang.Boolean; import java.lang.String; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -52,8 +53,6 @@ public Optional> allowExternalDataFiltering() { /** * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * */ @Import(name="allowFullTableExternalDataAccess") private @Nullable Output allowFullTableExternalDataAccess; @@ -61,8 +60,6 @@ public Optional> allowExternalDataFiltering() { /** * @return Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * */ public Optional> allowFullTableExternalDataAccess() { return Optional.ofNullable(this.allowFullTableExternalDataAccess); @@ -143,6 +140,21 @@ public Optional>> externalDataFilteringAllowLists() { return Optional.ofNullable(this.externalDataFilteringAllowLists); } + /** + * Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + * + */ + @Import(name="parameters") + private @Nullable Output> parameters; + + /** + * @return Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + * + */ + public Optional>> parameters() { + return Optional.ofNullable(this.parameters); + } + /** * Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. * @@ -161,6 +173,8 @@ public Optional>> readOnlyAdmins() { /** * List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * */ @Import(name="trustedResourceOwners") private @Nullable Output> trustedResourceOwners; @@ -168,6 +182,8 @@ public Optional>> readOnlyAdmins() { /** * @return List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * */ public Optional>> trustedResourceOwners() { return Optional.ofNullable(this.trustedResourceOwners); @@ -184,6 +200,7 @@ private DataLakeSettingsArgs(DataLakeSettingsArgs $) { this.createDatabaseDefaultPermissions = $.createDatabaseDefaultPermissions; this.createTableDefaultPermissions = $.createTableDefaultPermissions; this.externalDataFilteringAllowLists = $.externalDataFilteringAllowLists; + this.parameters = $.parameters; this.readOnlyAdmins = $.readOnlyAdmins; this.trustedResourceOwners = $.trustedResourceOwners; } @@ -261,8 +278,6 @@ public Builder allowExternalDataFiltering(Boolean allowExternalDataFiltering) { /** * @param allowFullTableExternalDataAccess Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * * @return builder * */ @@ -274,8 +289,6 @@ public Builder allowFullTableExternalDataAccess(@Nullable Output allowF /** * @param allowFullTableExternalDataAccess Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * * @return builder * */ @@ -428,6 +441,27 @@ public Builder externalDataFilteringAllowLists(String... externalDataFilteringAl return externalDataFilteringAllowLists(List.of(externalDataFilteringAllowLists)); } + /** + * @param parameters Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + * + * @return builder + * + */ + public Builder parameters(@Nullable Output> parameters) { + $.parameters = parameters; + return this; + } + + /** + * @param parameters Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + * + * @return builder + * + */ + public Builder parameters(Map parameters) { + return parameters(Output.of(parameters)); + } + /** * @param readOnlyAdmins Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. * @@ -462,6 +496,8 @@ public Builder readOnlyAdmins(String... readOnlyAdmins) { /** * @param trustedResourceOwners List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * * @return builder * */ @@ -473,6 +509,8 @@ public Builder trustedResourceOwners(@Nullable Output> trustedResou /** * @param trustedResourceOwners List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * * @return builder * */ @@ -483,6 +521,8 @@ public Builder trustedResourceOwners(List trustedResourceOwners) { /** * @param trustedResourceOwners List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/DataLakeSettingsState.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/DataLakeSettingsState.java index e8d370274f8..a525d966697 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/DataLakeSettingsState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/DataLakeSettingsState.java @@ -10,6 +10,7 @@ import java.lang.Boolean; import java.lang.String; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -52,8 +53,6 @@ public Optional> allowExternalDataFiltering() { /** * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * */ @Import(name="allowFullTableExternalDataAccess") private @Nullable Output allowFullTableExternalDataAccess; @@ -61,8 +60,6 @@ public Optional> allowExternalDataFiltering() { /** * @return Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * */ public Optional> allowFullTableExternalDataAccess() { return Optional.ofNullable(this.allowFullTableExternalDataAccess); @@ -143,6 +140,21 @@ public Optional>> externalDataFilteringAllowLists() { return Optional.ofNullable(this.externalDataFilteringAllowLists); } + /** + * Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + * + */ + @Import(name="parameters") + private @Nullable Output> parameters; + + /** + * @return Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + * + */ + public Optional>> parameters() { + return Optional.ofNullable(this.parameters); + } + /** * Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. * @@ -161,6 +173,8 @@ public Optional>> readOnlyAdmins() { /** * List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * */ @Import(name="trustedResourceOwners") private @Nullable Output> trustedResourceOwners; @@ -168,6 +182,8 @@ public Optional>> readOnlyAdmins() { /** * @return List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * */ public Optional>> trustedResourceOwners() { return Optional.ofNullable(this.trustedResourceOwners); @@ -184,6 +200,7 @@ private DataLakeSettingsState(DataLakeSettingsState $) { this.createDatabaseDefaultPermissions = $.createDatabaseDefaultPermissions; this.createTableDefaultPermissions = $.createTableDefaultPermissions; this.externalDataFilteringAllowLists = $.externalDataFilteringAllowLists; + this.parameters = $.parameters; this.readOnlyAdmins = $.readOnlyAdmins; this.trustedResourceOwners = $.trustedResourceOwners; } @@ -261,8 +278,6 @@ public Builder allowExternalDataFiltering(Boolean allowExternalDataFiltering) { /** * @param allowFullTableExternalDataAccess Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * * @return builder * */ @@ -274,8 +289,6 @@ public Builder allowFullTableExternalDataAccess(@Nullable Output allowF /** * @param allowFullTableExternalDataAccess Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. * - * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. - * * @return builder * */ @@ -428,6 +441,27 @@ public Builder externalDataFilteringAllowLists(String... externalDataFilteringAl return externalDataFilteringAllowLists(List.of(externalDataFilteringAllowLists)); } + /** + * @param parameters Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + * + * @return builder + * + */ + public Builder parameters(@Nullable Output> parameters) { + $.parameters = parameters; + return this; + } + + /** + * @param parameters Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + * + * @return builder + * + */ + public Builder parameters(Map parameters) { + return parameters(Output.of(parameters)); + } + /** * @param readOnlyAdmins Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. * @@ -462,6 +496,8 @@ public Builder readOnlyAdmins(String... readOnlyAdmins) { /** * @param trustedResourceOwners List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * * @return builder * */ @@ -473,6 +509,8 @@ public Builder trustedResourceOwners(@Nullable Output> trustedResou /** * @param trustedResourceOwners List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * * @return builder * */ @@ -483,6 +521,8 @@ public Builder trustedResourceOwners(List trustedResourceOwners) { /** * @param trustedResourceOwners List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). * + * > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/GetDataLakeSettingsResult.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/GetDataLakeSettingsResult.java index 86cb8d7253b..1b2c8079d74 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/GetDataLakeSettingsResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/GetDataLakeSettingsResult.java @@ -10,6 +10,7 @@ import java.lang.Boolean; import java.lang.String; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -57,6 +58,11 @@ public final class GetDataLakeSettingsResult { * */ private String id; + /** + * @return Key-value map of additional configuration. `CROSS_ACCOUNT_VERSION` will be set to values `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` will also be returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. + * + */ + private Map parameters; /** * @return List of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. * @@ -128,6 +134,13 @@ public List externalDataFilteringAllowLists() { public String id() { return this.id; } + /** + * @return Key-value map of additional configuration. `CROSS_ACCOUNT_VERSION` will be set to values `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` will also be returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. + * + */ + public Map parameters() { + return this.parameters; + } /** * @return List of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. * @@ -161,6 +174,7 @@ public static final class Builder { private List createTableDefaultPermissions; private List externalDataFilteringAllowLists; private String id; + private Map parameters; private List readOnlyAdmins; private List trustedResourceOwners; public Builder() {} @@ -175,6 +189,7 @@ public Builder(GetDataLakeSettingsResult defaults) { this.createTableDefaultPermissions = defaults.createTableDefaultPermissions; this.externalDataFilteringAllowLists = defaults.externalDataFilteringAllowLists; this.id = defaults.id; + this.parameters = defaults.parameters; this.readOnlyAdmins = defaults.readOnlyAdmins; this.trustedResourceOwners = defaults.trustedResourceOwners; } @@ -265,6 +280,14 @@ public Builder id(String id) { return this; } @CustomType.Setter + public Builder parameters(Map parameters) { + if (parameters == null) { + throw new MissingRequiredPropertyException("GetDataLakeSettingsResult", "parameters"); + } + this.parameters = parameters; + return this; + } + @CustomType.Setter public Builder readOnlyAdmins(List readOnlyAdmins) { if (readOnlyAdmins == null) { throw new MissingRequiredPropertyException("GetDataLakeSettingsResult", "readOnlyAdmins"); @@ -297,6 +320,7 @@ public GetDataLakeSettingsResult build() { _resultValue.createTableDefaultPermissions = createTableDefaultPermissions; _resultValue.externalDataFilteringAllowLists = externalDataFilteringAllowLists; _resultValue.id = id; + _resultValue.parameters = parameters; _resultValue.readOnlyAdmins = readOnlyAdmins; _resultValue.trustedResourceOwners = trustedResourceOwners; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/Listener.java b/sdk/java/src/main/java/com/pulumi/aws/lb/Listener.java index 58658e489a2..50b016ea790 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/Listener.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/Listener.java @@ -642,6 +642,20 @@ public Output>> tags() { public Output> tagsAll() { return this.tagsAll; } + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + @Export(name="tcpIdleTimeoutSeconds", refs={Integer.class}, tree="[0]") + private Output tcpIdleTimeoutSeconds; + + /** + * @return TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + public Output> tcpIdleTimeoutSeconds() { + return Codegen.optional(this.tcpIdleTimeoutSeconds); + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/ListenerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/ListenerArgs.java index 36c0e47ca54..af9dd24c6ee 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/ListenerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/ListenerArgs.java @@ -160,6 +160,21 @@ public Optional>> tags() { return Optional.ofNullable(this.tags); } + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + @Import(name="tcpIdleTimeoutSeconds") + private @Nullable Output tcpIdleTimeoutSeconds; + + /** + * @return TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + public Optional> tcpIdleTimeoutSeconds() { + return Optional.ofNullable(this.tcpIdleTimeoutSeconds); + } + private ListenerArgs() {} private ListenerArgs(ListenerArgs $) { @@ -172,6 +187,7 @@ private ListenerArgs(ListenerArgs $) { this.protocol = $.protocol; this.sslPolicy = $.sslPolicy; this.tags = $.tags; + this.tcpIdleTimeoutSeconds = $.tcpIdleTimeoutSeconds; } public static Builder builder() { @@ -395,6 +411,27 @@ public Builder tags(Map tags) { return tags(Output.of(tags)); } + /** + * @param tcpIdleTimeoutSeconds TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + * @return builder + * + */ + public Builder tcpIdleTimeoutSeconds(@Nullable Output tcpIdleTimeoutSeconds) { + $.tcpIdleTimeoutSeconds = tcpIdleTimeoutSeconds; + return this; + } + + /** + * @param tcpIdleTimeoutSeconds TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + * @return builder + * + */ + public Builder tcpIdleTimeoutSeconds(Integer tcpIdleTimeoutSeconds) { + return tcpIdleTimeoutSeconds(Output.of(tcpIdleTimeoutSeconds)); + } + public ListenerArgs build() { if ($.defaultActions == null) { throw new MissingRequiredPropertyException("ListenerArgs", "defaultActions"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/LoadBalancer.java b/sdk/java/src/main/java/com/pulumi/aws/lb/LoadBalancer.java index 55b5f4ebb77..bc38733dcea 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/LoadBalancer.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/LoadBalancer.java @@ -366,6 +366,20 @@ public Output> enableWafFailOpen() { public Output> enableXffClientPort() { return Codegen.optional(this.enableXffClientPort); } + /** + * Whether zonal shift is enabled. Defaults to `false`. + * + */ + @Export(name="enableZonalShift", refs={Boolean.class}, tree="[0]") + private Output enableZonalShift; + + /** + * @return Whether zonal shift is enabled. Defaults to `false`. + * + */ + public Output> enableZonalShift() { + return Codegen.optional(this.enableZonalShift); + } /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/LoadBalancerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/LoadBalancerArgs.java index 1c9283590ef..f1545c9e76a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/LoadBalancerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/LoadBalancerArgs.java @@ -217,6 +217,21 @@ public Optional> enableXffClientPort() { return Optional.ofNullable(this.enableXffClientPort); } + /** + * Whether zonal shift is enabled. Defaults to `false`. + * + */ + @Import(name="enableZonalShift") + private @Nullable Output enableZonalShift; + + /** + * @return Whether zonal shift is enabled. Defaults to `false`. + * + */ + public Optional> enableZonalShift() { + return Optional.ofNullable(this.enableZonalShift); + } + /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. * @@ -428,6 +443,7 @@ private LoadBalancerArgs(LoadBalancerArgs $) { this.enableTlsVersionAndCipherSuiteHeaders = $.enableTlsVersionAndCipherSuiteHeaders; this.enableWafFailOpen = $.enableWafFailOpen; this.enableXffClientPort = $.enableXffClientPort; + this.enableZonalShift = $.enableZonalShift; this.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic = $.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; this.idleTimeout = $.idleTimeout; this.internal = $.internal; @@ -734,6 +750,27 @@ public Builder enableXffClientPort(Boolean enableXffClientPort) { return enableXffClientPort(Output.of(enableXffClientPort)); } + /** + * @param enableZonalShift Whether zonal shift is enabled. Defaults to `false`. + * + * @return builder + * + */ + public Builder enableZonalShift(@Nullable Output enableZonalShift) { + $.enableZonalShift = enableZonalShift; + return this; + } + + /** + * @param enableZonalShift Whether zonal shift is enabled. Defaults to `false`. + * + * @return builder + * + */ + public Builder enableZonalShift(Boolean enableZonalShift) { + return enableZonalShift(Output.of(enableZonalShift)); + } + /** * @param enforceSecurityGroupInboundRulesOnPrivateLinkTraffic Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerState.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerState.java index abe571bc650..2f0804e97ad 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerState.java @@ -197,6 +197,21 @@ public Optional>> tagsAll() { return Optional.ofNullable(this.tagsAll); } + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + @Import(name="tcpIdleTimeoutSeconds") + private @Nullable Output tcpIdleTimeoutSeconds; + + /** + * @return TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + */ + public Optional> tcpIdleTimeoutSeconds() { + return Optional.ofNullable(this.tcpIdleTimeoutSeconds); + } + private ListenerState() {} private ListenerState(ListenerState $) { @@ -211,6 +226,7 @@ private ListenerState(ListenerState $) { this.sslPolicy = $.sslPolicy; this.tags = $.tags; this.tagsAll = $.tagsAll; + this.tcpIdleTimeoutSeconds = $.tcpIdleTimeoutSeconds; } public static Builder builder() { @@ -484,6 +500,27 @@ public Builder tagsAll(Map tagsAll) { return tagsAll(Output.of(tagsAll)); } + /** + * @param tcpIdleTimeoutSeconds TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + * @return builder + * + */ + public Builder tcpIdleTimeoutSeconds(@Nullable Output tcpIdleTimeoutSeconds) { + $.tcpIdleTimeoutSeconds = tcpIdleTimeoutSeconds; + return this; + } + + /** + * @param tcpIdleTimeoutSeconds TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + * + * @return builder + * + */ + public Builder tcpIdleTimeoutSeconds(Integer tcpIdleTimeoutSeconds) { + return tcpIdleTimeoutSeconds(Output.of(tcpIdleTimeoutSeconds)); + } + public ListenerState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/LoadBalancerState.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/LoadBalancerState.java index f00004e77fa..5490bf73dbc 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/LoadBalancerState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/LoadBalancerState.java @@ -262,6 +262,21 @@ public Optional> enableXffClientPort() { return Optional.ofNullable(this.enableXffClientPort); } + /** + * Whether zonal shift is enabled. Defaults to `false`. + * + */ + @Import(name="enableZonalShift") + private @Nullable Output enableZonalShift; + + /** + * @return Whether zonal shift is enabled. Defaults to `false`. + * + */ + public Optional> enableZonalShift() { + return Optional.ofNullable(this.enableZonalShift); + } + /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. * @@ -521,6 +536,7 @@ private LoadBalancerState(LoadBalancerState $) { this.enableTlsVersionAndCipherSuiteHeaders = $.enableTlsVersionAndCipherSuiteHeaders; this.enableWafFailOpen = $.enableWafFailOpen; this.enableXffClientPort = $.enableXffClientPort; + this.enableZonalShift = $.enableZonalShift; this.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic = $.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; this.idleTimeout = $.idleTimeout; this.internal = $.internal; @@ -893,6 +909,27 @@ public Builder enableXffClientPort(Boolean enableXffClientPort) { return enableXffClientPort(Output.of(enableXffClientPort)); } + /** + * @param enableZonalShift Whether zonal shift is enabled. Defaults to `false`. + * + * @return builder + * + */ + public Builder enableZonalShift(@Nullable Output enableZonalShift) { + $.enableZonalShift = enableZonalShift; + return this; + } + + /** + * @param enableZonalShift Whether zonal shift is enabled. Defaults to `false`. + * + * @return builder + * + */ + public Builder enableZonalShift(Boolean enableZonalShift) { + return enableZonalShift(Output.of(enableZonalShift)); + } + /** * @param enforceSecurityGroupInboundRulesOnPrivateLinkTraffic Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/GetLoadBalancerResult.java b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/GetLoadBalancerResult.java index 2183724f72a..2430f09867a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/GetLoadBalancerResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/outputs/GetLoadBalancerResult.java @@ -33,6 +33,7 @@ public final class GetLoadBalancerResult { private Boolean enableTlsVersionAndCipherSuiteHeaders; private Boolean enableWafFailOpen; private Boolean enableXffClientPort; + private Boolean enableZonalShift; private String enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; /** * @return The provider-assigned unique ID for this managed resource. @@ -102,6 +103,9 @@ public Boolean enableWafFailOpen() { public Boolean enableXffClientPort() { return this.enableXffClientPort; } + public Boolean enableZonalShift() { + return this.enableZonalShift; + } public String enforceSecurityGroupInboundRulesOnPrivateLinkTraffic() { return this.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; } @@ -177,6 +181,7 @@ public static final class Builder { private Boolean enableTlsVersionAndCipherSuiteHeaders; private Boolean enableWafFailOpen; private Boolean enableXffClientPort; + private Boolean enableZonalShift; private String enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; private String id; private Integer idleTimeout; @@ -211,6 +216,7 @@ public Builder(GetLoadBalancerResult defaults) { this.enableTlsVersionAndCipherSuiteHeaders = defaults.enableTlsVersionAndCipherSuiteHeaders; this.enableWafFailOpen = defaults.enableWafFailOpen; this.enableXffClientPort = defaults.enableXffClientPort; + this.enableZonalShift = defaults.enableZonalShift; this.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic = defaults.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; this.id = defaults.id; this.idleTimeout = defaults.idleTimeout; @@ -360,6 +366,14 @@ public Builder enableXffClientPort(Boolean enableXffClientPort) { return this; } @CustomType.Setter + public Builder enableZonalShift(Boolean enableZonalShift) { + if (enableZonalShift == null) { + throw new MissingRequiredPropertyException("GetLoadBalancerResult", "enableZonalShift"); + } + this.enableZonalShift = enableZonalShift; + return this; + } + @CustomType.Setter public Builder enforceSecurityGroupInboundRulesOnPrivateLinkTraffic(String enforceSecurityGroupInboundRulesOnPrivateLinkTraffic) { if (enforceSecurityGroupInboundRulesOnPrivateLinkTraffic == null) { throw new MissingRequiredPropertyException("GetLoadBalancerResult", "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"); @@ -506,6 +520,7 @@ public GetLoadBalancerResult build() { _resultValue.enableTlsVersionAndCipherSuiteHeaders = enableTlsVersionAndCipherSuiteHeaders; _resultValue.enableWafFailOpen = enableWafFailOpen; _resultValue.enableXffClientPort = enableXffClientPort; + _resultValue.enableZonalShift = enableZonalShift; _resultValue.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic = enforceSecurityGroupInboundRulesOnPrivateLinkTraffic; _resultValue.id = id; _resultValue.idleTimeout = idleTimeout; diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/ResiliencyPolicy.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/ResiliencyPolicy.java new file mode 100644 index 00000000000..59644686d85 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/ResiliencyPolicy.java @@ -0,0 +1,243 @@ +// *** 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.resiliencehub; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.resiliencehub.ResiliencyPolicyArgs; +import com.pulumi.aws.resiliencehub.inputs.ResiliencyPolicyState; +import com.pulumi.aws.resiliencehub.outputs.ResiliencyPolicyPolicy; +import com.pulumi.aws.resiliencehub.outputs.ResiliencyPolicyTimeouts; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS Resilience Hub Resiliency Policy. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Resilience Hub Resiliency Policy using the `arn`. For example: + * + * ```sh + * $ pulumi import aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy example arn:aws:resiliencehub:us-east-1:123456789012:resiliency-policy/8c1cfa29-d1dd-4421-aa68-c9f64cced4c2 + * ``` + * + */ +@ResourceType(type="aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy") +public class ResiliencyPolicy extends com.pulumi.resources.CustomResource { + /** + * ARN of the Resiliency Policy. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return ARN of the Resiliency Policy. + * + */ + public Output arn() { + return this.arn; + } + /** + * Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + * + */ + @Export(name="dataLocationConstraint", refs={String.class}, tree="[0]") + private Output dataLocationConstraint; + + /** + * @return Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + * + */ + public Output dataLocationConstraint() { + return this.dataLocationConstraint; + } + /** + * Description of Resiliency Policy. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return Description of Resiliency Policy. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * Estimated Cost Tier of the Resiliency Policy. + * + */ + @Export(name="estimatedCostTier", refs={String.class}, tree="[0]") + private Output estimatedCostTier; + + /** + * @return Estimated Cost Tier of the Resiliency Policy. + * + */ + public Output estimatedCostTier() { + return this.estimatedCostTier; + } + /** + * Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + * + */ + public Output name() { + return this.name; + } + /** + * The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + * + */ + @Export(name="policy", refs={ResiliencyPolicyPolicy.class}, tree="[0]") + private Output policy; + + /** + * @return The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + * + */ + public Output> policy() { + return Codegen.optional(this.policy); + } + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + */ + public Output> tagsAll() { + return this.tagsAll; + } + /** + * Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + * + */ + @Export(name="tier", refs={String.class}, tree="[0]") + private Output tier; + + /** + * @return Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + * + */ + public Output tier() { + return this.tier; + } + @Export(name="timeouts", refs={ResiliencyPolicyTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResiliencyPolicy(java.lang.String name) { + this(name, ResiliencyPolicyArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResiliencyPolicy(java.lang.String name, ResiliencyPolicyArgs 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 ResiliencyPolicy(java.lang.String name, ResiliencyPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private ResiliencyPolicy(java.lang.String name, Output id, @Nullable ResiliencyPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy", name, state, makeResourceOptions(options, id), false); + } + + private static ResiliencyPolicyArgs makeArgs(ResiliencyPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ResiliencyPolicyArgs.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 ResiliencyPolicy get(java.lang.String name, Output id, @Nullable ResiliencyPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResiliencyPolicy(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/ResiliencyPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/ResiliencyPolicyArgs.java new file mode 100644 index 00000000000..a84fd5ac758 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/ResiliencyPolicyArgs.java @@ -0,0 +1,316 @@ +// *** 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.resiliencehub; + +import com.pulumi.aws.resiliencehub.inputs.ResiliencyPolicyPolicyArgs; +import com.pulumi.aws.resiliencehub.inputs.ResiliencyPolicyTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResiliencyPolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResiliencyPolicyArgs Empty = new ResiliencyPolicyArgs(); + + /** + * Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + * + */ + @Import(name="dataLocationConstraint") + private @Nullable Output dataLocationConstraint; + + /** + * @return Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + * + */ + public Optional> dataLocationConstraint() { + return Optional.ofNullable(this.dataLocationConstraint); + } + + /** + * Description of Resiliency Policy. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of Resiliency Policy. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + * + */ + @Import(name="policy") + private @Nullable Output policy; + + /** + * @return The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + * + */ + public Optional> policy() { + return Optional.ofNullable(this.policy); + } + + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + * + */ + @Import(name="tier", required=true) + private Output tier; + + /** + * @return Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + * + */ + public Output tier() { + return this.tier; + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private ResiliencyPolicyArgs() {} + + private ResiliencyPolicyArgs(ResiliencyPolicyArgs $) { + this.dataLocationConstraint = $.dataLocationConstraint; + this.description = $.description; + this.name = $.name; + this.policy = $.policy; + this.tags = $.tags; + this.tier = $.tier; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResiliencyPolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResiliencyPolicyArgs $; + + public Builder() { + $ = new ResiliencyPolicyArgs(); + } + + public Builder(ResiliencyPolicyArgs defaults) { + $ = new ResiliencyPolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dataLocationConstraint Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + * + * @return builder + * + */ + public Builder dataLocationConstraint(@Nullable Output dataLocationConstraint) { + $.dataLocationConstraint = dataLocationConstraint; + return this; + } + + /** + * @param dataLocationConstraint Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + * + * @return builder + * + */ + public Builder dataLocationConstraint(String dataLocationConstraint) { + return dataLocationConstraint(Output.of(dataLocationConstraint)); + } + + /** + * @param description Description of Resiliency Policy. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of Resiliency Policy. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param name Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param policy The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder policy(@Nullable Output policy) { + $.policy = policy; + return this; + } + + /** + * @param policy The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder policy(ResiliencyPolicyPolicyArgs policy) { + return policy(Output.of(policy)); + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param tier Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + * + * @return builder + * + */ + public Builder tier(Output tier) { + $.tier = tier; + return this; + } + + /** + * @param tier Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + * + * @return builder + * + */ + public Builder tier(String tier) { + return tier(Output.of(tier)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(ResiliencyPolicyTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public ResiliencyPolicyArgs build() { + if ($.tier == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyArgs", "tier"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyArgs.java new file mode 100644 index 00000000000..95732b75744 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyArgs.java @@ -0,0 +1,205 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.resiliencehub.inputs; + +import com.pulumi.aws.resiliencehub.inputs.ResiliencyPolicyPolicyAzArgs; +import com.pulumi.aws.resiliencehub.inputs.ResiliencyPolicyPolicyHardwareArgs; +import com.pulumi.aws.resiliencehub.inputs.ResiliencyPolicyPolicyRegionArgs; +import com.pulumi.aws.resiliencehub.inputs.ResiliencyPolicyPolicySoftwareArgs; +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 ResiliencyPolicyPolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResiliencyPolicyPolicyArgs Empty = new ResiliencyPolicyPolicyArgs(); + + /** + * Specifies Availability Zone failure policy. See `policy.az` + * + */ + @Import(name="az") + private @Nullable Output az; + + /** + * @return Specifies Availability Zone failure policy. See `policy.az` + * + */ + public Optional> az() { + return Optional.ofNullable(this.az); + } + + /** + * Specifies Infrastructure failure policy. See `policy.hardware` + * + */ + @Import(name="hardware") + private @Nullable Output hardware; + + /** + * @return Specifies Infrastructure failure policy. See `policy.hardware` + * + */ + public Optional> hardware() { + return Optional.ofNullable(this.hardware); + } + + /** + * Specifies Region failure policy. `policy.region` + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Specifies Region failure policy. `policy.region` + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + + /** + * Specifies Application failure policy. See `policy.software` + * + * The following arguments are optional: + * + */ + @Import(name="software") + private @Nullable Output software; + + /** + * @return Specifies Application failure policy. See `policy.software` + * + * The following arguments are optional: + * + */ + public Optional> software() { + return Optional.ofNullable(this.software); + } + + private ResiliencyPolicyPolicyArgs() {} + + private ResiliencyPolicyPolicyArgs(ResiliencyPolicyPolicyArgs $) { + this.az = $.az; + this.hardware = $.hardware; + this.region = $.region; + this.software = $.software; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResiliencyPolicyPolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResiliencyPolicyPolicyArgs $; + + public Builder() { + $ = new ResiliencyPolicyPolicyArgs(); + } + + public Builder(ResiliencyPolicyPolicyArgs defaults) { + $ = new ResiliencyPolicyPolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param az Specifies Availability Zone failure policy. See `policy.az` + * + * @return builder + * + */ + public Builder az(@Nullable Output az) { + $.az = az; + return this; + } + + /** + * @param az Specifies Availability Zone failure policy. See `policy.az` + * + * @return builder + * + */ + public Builder az(ResiliencyPolicyPolicyAzArgs az) { + return az(Output.of(az)); + } + + /** + * @param hardware Specifies Infrastructure failure policy. See `policy.hardware` + * + * @return builder + * + */ + public Builder hardware(@Nullable Output hardware) { + $.hardware = hardware; + return this; + } + + /** + * @param hardware Specifies Infrastructure failure policy. See `policy.hardware` + * + * @return builder + * + */ + public Builder hardware(ResiliencyPolicyPolicyHardwareArgs hardware) { + return hardware(Output.of(hardware)); + } + + /** + * @param region Specifies Region failure policy. `policy.region` + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Specifies Region failure policy. `policy.region` + * + * @return builder + * + */ + public Builder region(ResiliencyPolicyPolicyRegionArgs region) { + return region(Output.of(region)); + } + + /** + * @param software Specifies Application failure policy. See `policy.software` + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder software(@Nullable Output software) { + $.software = software; + return this; + } + + /** + * @param software Specifies Application failure policy. See `policy.software` + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder software(ResiliencyPolicyPolicySoftwareArgs software) { + return software(Output.of(software)); + } + + public ResiliencyPolicyPolicyArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyAzArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyAzArgs.java new file mode 100644 index 00000000000..15c31f26b7f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyAzArgs.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.resiliencehub.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 ResiliencyPolicyPolicyAzArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResiliencyPolicyPolicyAzArgs Empty = new ResiliencyPolicyPolicyAzArgs(); + + /** + * Recovery Point Objective (RPO) as a Go duration. + * + */ + @Import(name="rpo", required=true) + private Output rpo; + + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + public Output rpo() { + return this.rpo; + } + + /** + * Recovery Time Objective (RTO) as a Go duration. + * + */ + @Import(name="rto", required=true) + private Output rto; + + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + public Output rto() { + return this.rto; + } + + private ResiliencyPolicyPolicyAzArgs() {} + + private ResiliencyPolicyPolicyAzArgs(ResiliencyPolicyPolicyAzArgs $) { + this.rpo = $.rpo; + this.rto = $.rto; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResiliencyPolicyPolicyAzArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResiliencyPolicyPolicyAzArgs $; + + public Builder() { + $ = new ResiliencyPolicyPolicyAzArgs(); + } + + public Builder(ResiliencyPolicyPolicyAzArgs defaults) { + $ = new ResiliencyPolicyPolicyAzArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param rpo Recovery Point Objective (RPO) as a Go duration. + * + * @return builder + * + */ + public Builder rpo(Output rpo) { + $.rpo = rpo; + return this; + } + + /** + * @param rpo Recovery Point Objective (RPO) as a Go duration. + * + * @return builder + * + */ + public Builder rpo(String rpo) { + return rpo(Output.of(rpo)); + } + + /** + * @param rto Recovery Time Objective (RTO) as a Go duration. + * + * @return builder + * + */ + public Builder rto(Output rto) { + $.rto = rto; + return this; + } + + /** + * @param rto Recovery Time Objective (RTO) as a Go duration. + * + * @return builder + * + */ + public Builder rto(String rto) { + return rto(Output.of(rto)); + } + + public ResiliencyPolicyPolicyAzArgs build() { + if ($.rpo == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicyAzArgs", "rpo"); + } + if ($.rto == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicyAzArgs", "rto"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyHardwareArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyHardwareArgs.java new file mode 100644 index 00000000000..f0cdad7c12a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyHardwareArgs.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.resiliencehub.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 ResiliencyPolicyPolicyHardwareArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResiliencyPolicyPolicyHardwareArgs Empty = new ResiliencyPolicyPolicyHardwareArgs(); + + /** + * Recovery Point Objective (RPO) as a Go duration. + * + */ + @Import(name="rpo", required=true) + private Output rpo; + + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + public Output rpo() { + return this.rpo; + } + + /** + * Recovery Time Objective (RTO) as a Go duration. + * + */ + @Import(name="rto", required=true) + private Output rto; + + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + public Output rto() { + return this.rto; + } + + private ResiliencyPolicyPolicyHardwareArgs() {} + + private ResiliencyPolicyPolicyHardwareArgs(ResiliencyPolicyPolicyHardwareArgs $) { + this.rpo = $.rpo; + this.rto = $.rto; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResiliencyPolicyPolicyHardwareArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResiliencyPolicyPolicyHardwareArgs $; + + public Builder() { + $ = new ResiliencyPolicyPolicyHardwareArgs(); + } + + public Builder(ResiliencyPolicyPolicyHardwareArgs defaults) { + $ = new ResiliencyPolicyPolicyHardwareArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param rpo Recovery Point Objective (RPO) as a Go duration. + * + * @return builder + * + */ + public Builder rpo(Output rpo) { + $.rpo = rpo; + return this; + } + + /** + * @param rpo Recovery Point Objective (RPO) as a Go duration. + * + * @return builder + * + */ + public Builder rpo(String rpo) { + return rpo(Output.of(rpo)); + } + + /** + * @param rto Recovery Time Objective (RTO) as a Go duration. + * + * @return builder + * + */ + public Builder rto(Output rto) { + $.rto = rto; + return this; + } + + /** + * @param rto Recovery Time Objective (RTO) as a Go duration. + * + * @return builder + * + */ + public Builder rto(String rto) { + return rto(Output.of(rto)); + } + + public ResiliencyPolicyPolicyHardwareArgs build() { + if ($.rpo == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicyHardwareArgs", "rpo"); + } + if ($.rto == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicyHardwareArgs", "rto"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyRegionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyRegionArgs.java new file mode 100644 index 00000000000..1c9dd659797 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicyRegionArgs.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.resiliencehub.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 ResiliencyPolicyPolicyRegionArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResiliencyPolicyPolicyRegionArgs Empty = new ResiliencyPolicyPolicyRegionArgs(); + + /** + * Recovery Point Objective (RPO) as a Go duration. + * + */ + @Import(name="rpo") + private @Nullable Output rpo; + + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + public Optional> rpo() { + return Optional.ofNullable(this.rpo); + } + + /** + * Recovery Time Objective (RTO) as a Go duration. + * + */ + @Import(name="rto") + private @Nullable Output rto; + + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + public Optional> rto() { + return Optional.ofNullable(this.rto); + } + + private ResiliencyPolicyPolicyRegionArgs() {} + + private ResiliencyPolicyPolicyRegionArgs(ResiliencyPolicyPolicyRegionArgs $) { + this.rpo = $.rpo; + this.rto = $.rto; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResiliencyPolicyPolicyRegionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResiliencyPolicyPolicyRegionArgs $; + + public Builder() { + $ = new ResiliencyPolicyPolicyRegionArgs(); + } + + public Builder(ResiliencyPolicyPolicyRegionArgs defaults) { + $ = new ResiliencyPolicyPolicyRegionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param rpo Recovery Point Objective (RPO) as a Go duration. + * + * @return builder + * + */ + public Builder rpo(@Nullable Output rpo) { + $.rpo = rpo; + return this; + } + + /** + * @param rpo Recovery Point Objective (RPO) as a Go duration. + * + * @return builder + * + */ + public Builder rpo(String rpo) { + return rpo(Output.of(rpo)); + } + + /** + * @param rto Recovery Time Objective (RTO) as a Go duration. + * + * @return builder + * + */ + public Builder rto(@Nullable Output rto) { + $.rto = rto; + return this; + } + + /** + * @param rto Recovery Time Objective (RTO) as a Go duration. + * + * @return builder + * + */ + public Builder rto(String rto) { + return rto(Output.of(rto)); + } + + public ResiliencyPolicyPolicyRegionArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicySoftwareArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicySoftwareArgs.java new file mode 100644 index 00000000000..dae1dce0bdc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyPolicySoftwareArgs.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.resiliencehub.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 ResiliencyPolicyPolicySoftwareArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResiliencyPolicyPolicySoftwareArgs Empty = new ResiliencyPolicyPolicySoftwareArgs(); + + /** + * Recovery Point Objective (RPO) as a Go duration. + * + */ + @Import(name="rpo", required=true) + private Output rpo; + + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + public Output rpo() { + return this.rpo; + } + + /** + * Recovery Time Objective (RTO) as a Go duration. + * + */ + @Import(name="rto", required=true) + private Output rto; + + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + public Output rto() { + return this.rto; + } + + private ResiliencyPolicyPolicySoftwareArgs() {} + + private ResiliencyPolicyPolicySoftwareArgs(ResiliencyPolicyPolicySoftwareArgs $) { + this.rpo = $.rpo; + this.rto = $.rto; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResiliencyPolicyPolicySoftwareArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResiliencyPolicyPolicySoftwareArgs $; + + public Builder() { + $ = new ResiliencyPolicyPolicySoftwareArgs(); + } + + public Builder(ResiliencyPolicyPolicySoftwareArgs defaults) { + $ = new ResiliencyPolicyPolicySoftwareArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param rpo Recovery Point Objective (RPO) as a Go duration. + * + * @return builder + * + */ + public Builder rpo(Output rpo) { + $.rpo = rpo; + return this; + } + + /** + * @param rpo Recovery Point Objective (RPO) as a Go duration. + * + * @return builder + * + */ + public Builder rpo(String rpo) { + return rpo(Output.of(rpo)); + } + + /** + * @param rto Recovery Time Objective (RTO) as a Go duration. + * + * @return builder + * + */ + public Builder rto(Output rto) { + $.rto = rto; + return this; + } + + /** + * @param rto Recovery Time Objective (RTO) as a Go duration. + * + * @return builder + * + */ + public Builder rto(String rto) { + return rto(Output.of(rto)); + } + + public ResiliencyPolicyPolicySoftwareArgs build() { + if ($.rpo == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicySoftwareArgs", "rpo"); + } + if ($.rto == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicySoftwareArgs", "rto"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyState.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyState.java new file mode 100644 index 00000000000..fa58764c1fb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyState.java @@ -0,0 +1,439 @@ +// *** 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.resiliencehub.inputs; + +import com.pulumi.aws.resiliencehub.inputs.ResiliencyPolicyPolicyArgs; +import com.pulumi.aws.resiliencehub.inputs.ResiliencyPolicyTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResiliencyPolicyState extends com.pulumi.resources.ResourceArgs { + + public static final ResiliencyPolicyState Empty = new ResiliencyPolicyState(); + + /** + * ARN of the Resiliency Policy. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return ARN of the Resiliency Policy. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + * + */ + @Import(name="dataLocationConstraint") + private @Nullable Output dataLocationConstraint; + + /** + * @return Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + * + */ + public Optional> dataLocationConstraint() { + return Optional.ofNullable(this.dataLocationConstraint); + } + + /** + * Description of Resiliency Policy. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of Resiliency Policy. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Estimated Cost Tier of the Resiliency Policy. + * + */ + @Import(name="estimatedCostTier") + private @Nullable Output estimatedCostTier; + + /** + * @return Estimated Cost Tier of the Resiliency Policy. + * + */ + public Optional> estimatedCostTier() { + return Optional.ofNullable(this.estimatedCostTier); + } + + /** + * Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + * + */ + @Import(name="policy") + private @Nullable Output policy; + + /** + * @return The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + * + */ + public Optional> policy() { + return Optional.ofNullable(this.policy); + } + + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + /** + * Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + * + */ + @Import(name="tier") + private @Nullable Output tier; + + /** + * @return Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + * + */ + public Optional> tier() { + return Optional.ofNullable(this.tier); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private ResiliencyPolicyState() {} + + private ResiliencyPolicyState(ResiliencyPolicyState $) { + this.arn = $.arn; + this.dataLocationConstraint = $.dataLocationConstraint; + this.description = $.description; + this.estimatedCostTier = $.estimatedCostTier; + this.name = $.name; + this.policy = $.policy; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.tier = $.tier; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResiliencyPolicyState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResiliencyPolicyState $; + + public Builder() { + $ = new ResiliencyPolicyState(); + } + + public Builder(ResiliencyPolicyState defaults) { + $ = new ResiliencyPolicyState(Objects.requireNonNull(defaults)); + } + + /** + * @param arn ARN of the Resiliency Policy. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn ARN of the Resiliency Policy. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param dataLocationConstraint Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + * + * @return builder + * + */ + public Builder dataLocationConstraint(@Nullable Output dataLocationConstraint) { + $.dataLocationConstraint = dataLocationConstraint; + return this; + } + + /** + * @param dataLocationConstraint Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + * + * @return builder + * + */ + public Builder dataLocationConstraint(String dataLocationConstraint) { + return dataLocationConstraint(Output.of(dataLocationConstraint)); + } + + /** + * @param description Description of Resiliency Policy. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of Resiliency Policy. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param estimatedCostTier Estimated Cost Tier of the Resiliency Policy. + * + * @return builder + * + */ + public Builder estimatedCostTier(@Nullable Output estimatedCostTier) { + $.estimatedCostTier = estimatedCostTier; + return this; + } + + /** + * @param estimatedCostTier Estimated Cost Tier of the Resiliency Policy. + * + * @return builder + * + */ + public Builder estimatedCostTier(String estimatedCostTier) { + return estimatedCostTier(Output.of(estimatedCostTier)); + } + + /** + * @param name Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param policy The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder policy(@Nullable Output policy) { + $.policy = policy; + return this; + } + + /** + * @param policy The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder policy(ResiliencyPolicyPolicyArgs policy) { + return policy(Output.of(policy)); + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + /** + * @param tier Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + * + * @return builder + * + */ + public Builder tier(@Nullable Output tier) { + $.tier = tier; + return this; + } + + /** + * @param tier Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + * + * @return builder + * + */ + public Builder tier(String tier) { + return tier(Output.of(tier)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(ResiliencyPolicyTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public ResiliencyPolicyState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyTimeoutsArgs.java new file mode 100644 index 00000000000..b21eed54404 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/inputs/ResiliencyPolicyTimeoutsArgs.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.resiliencehub.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 ResiliencyPolicyTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResiliencyPolicyTimeoutsArgs Empty = new ResiliencyPolicyTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.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 ResiliencyPolicyTimeoutsArgs() {} + + private ResiliencyPolicyTimeoutsArgs(ResiliencyPolicyTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResiliencyPolicyTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResiliencyPolicyTimeoutsArgs $; + + public Builder() { + $ = new ResiliencyPolicyTimeoutsArgs(); + } + + public Builder(ResiliencyPolicyTimeoutsArgs defaults) { + $ = new ResiliencyPolicyTimeoutsArgs(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 ResiliencyPolicyTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicy.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicy.java new file mode 100644 index 00000000000..6f28c211149 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicy.java @@ -0,0 +1,127 @@ +// *** 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.resiliencehub.outputs; + +import com.pulumi.aws.resiliencehub.outputs.ResiliencyPolicyPolicyAz; +import com.pulumi.aws.resiliencehub.outputs.ResiliencyPolicyPolicyHardware; +import com.pulumi.aws.resiliencehub.outputs.ResiliencyPolicyPolicyRegion; +import com.pulumi.aws.resiliencehub.outputs.ResiliencyPolicyPolicySoftware; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResiliencyPolicyPolicy { + /** + * @return Specifies Availability Zone failure policy. See `policy.az` + * + */ + private @Nullable ResiliencyPolicyPolicyAz az; + /** + * @return Specifies Infrastructure failure policy. See `policy.hardware` + * + */ + private @Nullable ResiliencyPolicyPolicyHardware hardware; + /** + * @return Specifies Region failure policy. `policy.region` + * + */ + private @Nullable ResiliencyPolicyPolicyRegion region; + /** + * @return Specifies Application failure policy. See `policy.software` + * + * The following arguments are optional: + * + */ + private @Nullable ResiliencyPolicyPolicySoftware software; + + private ResiliencyPolicyPolicy() {} + /** + * @return Specifies Availability Zone failure policy. See `policy.az` + * + */ + public Optional az() { + return Optional.ofNullable(this.az); + } + /** + * @return Specifies Infrastructure failure policy. See `policy.hardware` + * + */ + public Optional hardware() { + return Optional.ofNullable(this.hardware); + } + /** + * @return Specifies Region failure policy. `policy.region` + * + */ + public Optional region() { + return Optional.ofNullable(this.region); + } + /** + * @return Specifies Application failure policy. See `policy.software` + * + * The following arguments are optional: + * + */ + public Optional software() { + return Optional.ofNullable(this.software); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResiliencyPolicyPolicy defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable ResiliencyPolicyPolicyAz az; + private @Nullable ResiliencyPolicyPolicyHardware hardware; + private @Nullable ResiliencyPolicyPolicyRegion region; + private @Nullable ResiliencyPolicyPolicySoftware software; + public Builder() {} + public Builder(ResiliencyPolicyPolicy defaults) { + Objects.requireNonNull(defaults); + this.az = defaults.az; + this.hardware = defaults.hardware; + this.region = defaults.region; + this.software = defaults.software; + } + + @CustomType.Setter + public Builder az(@Nullable ResiliencyPolicyPolicyAz az) { + + this.az = az; + return this; + } + @CustomType.Setter + public Builder hardware(@Nullable ResiliencyPolicyPolicyHardware hardware) { + + this.hardware = hardware; + return this; + } + @CustomType.Setter + public Builder region(@Nullable ResiliencyPolicyPolicyRegion region) { + + this.region = region; + return this; + } + @CustomType.Setter + public Builder software(@Nullable ResiliencyPolicyPolicySoftware software) { + + this.software = software; + return this; + } + public ResiliencyPolicyPolicy build() { + final var _resultValue = new ResiliencyPolicyPolicy(); + _resultValue.az = az; + _resultValue.hardware = hardware; + _resultValue.region = region; + _resultValue.software = software; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicyAz.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicyAz.java new file mode 100644 index 00000000000..2c173c9e745 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicyAz.java @@ -0,0 +1,81 @@ +// *** 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.resiliencehub.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class ResiliencyPolicyPolicyAz { + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + private String rpo; + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + private String rto; + + private ResiliencyPolicyPolicyAz() {} + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + public String rpo() { + return this.rpo; + } + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + public String rto() { + return this.rto; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResiliencyPolicyPolicyAz defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String rpo; + private String rto; + public Builder() {} + public Builder(ResiliencyPolicyPolicyAz defaults) { + Objects.requireNonNull(defaults); + this.rpo = defaults.rpo; + this.rto = defaults.rto; + } + + @CustomType.Setter + public Builder rpo(String rpo) { + if (rpo == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicyAz", "rpo"); + } + this.rpo = rpo; + return this; + } + @CustomType.Setter + public Builder rto(String rto) { + if (rto == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicyAz", "rto"); + } + this.rto = rto; + return this; + } + public ResiliencyPolicyPolicyAz build() { + final var _resultValue = new ResiliencyPolicyPolicyAz(); + _resultValue.rpo = rpo; + _resultValue.rto = rto; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicyHardware.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicyHardware.java new file mode 100644 index 00000000000..5a365807f0c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicyHardware.java @@ -0,0 +1,81 @@ +// *** 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.resiliencehub.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class ResiliencyPolicyPolicyHardware { + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + private String rpo; + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + private String rto; + + private ResiliencyPolicyPolicyHardware() {} + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + public String rpo() { + return this.rpo; + } + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + public String rto() { + return this.rto; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResiliencyPolicyPolicyHardware defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String rpo; + private String rto; + public Builder() {} + public Builder(ResiliencyPolicyPolicyHardware defaults) { + Objects.requireNonNull(defaults); + this.rpo = defaults.rpo; + this.rto = defaults.rto; + } + + @CustomType.Setter + public Builder rpo(String rpo) { + if (rpo == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicyHardware", "rpo"); + } + this.rpo = rpo; + return this; + } + @CustomType.Setter + public Builder rto(String rto) { + if (rto == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicyHardware", "rto"); + } + this.rto = rto; + return this; + } + public ResiliencyPolicyPolicyHardware build() { + final var _resultValue = new ResiliencyPolicyPolicyHardware(); + _resultValue.rpo = rpo; + _resultValue.rto = rto; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicyRegion.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicyRegion.java new file mode 100644 index 00000000000..29f18e55fe8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicyRegion.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.resiliencehub.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 ResiliencyPolicyPolicyRegion { + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + private @Nullable String rpo; + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + private @Nullable String rto; + + private ResiliencyPolicyPolicyRegion() {} + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + public Optional rpo() { + return Optional.ofNullable(this.rpo); + } + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + public Optional rto() { + return Optional.ofNullable(this.rto); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResiliencyPolicyPolicyRegion defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String rpo; + private @Nullable String rto; + public Builder() {} + public Builder(ResiliencyPolicyPolicyRegion defaults) { + Objects.requireNonNull(defaults); + this.rpo = defaults.rpo; + this.rto = defaults.rto; + } + + @CustomType.Setter + public Builder rpo(@Nullable String rpo) { + + this.rpo = rpo; + return this; + } + @CustomType.Setter + public Builder rto(@Nullable String rto) { + + this.rto = rto; + return this; + } + public ResiliencyPolicyPolicyRegion build() { + final var _resultValue = new ResiliencyPolicyPolicyRegion(); + _resultValue.rpo = rpo; + _resultValue.rto = rto; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicySoftware.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicySoftware.java new file mode 100644 index 00000000000..40ee938c5e7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyPolicySoftware.java @@ -0,0 +1,81 @@ +// *** 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.resiliencehub.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class ResiliencyPolicyPolicySoftware { + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + private String rpo; + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + private String rto; + + private ResiliencyPolicyPolicySoftware() {} + /** + * @return Recovery Point Objective (RPO) as a Go duration. + * + */ + public String rpo() { + return this.rpo; + } + /** + * @return Recovery Time Objective (RTO) as a Go duration. + * + */ + public String rto() { + return this.rto; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResiliencyPolicyPolicySoftware defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String rpo; + private String rto; + public Builder() {} + public Builder(ResiliencyPolicyPolicySoftware defaults) { + Objects.requireNonNull(defaults); + this.rpo = defaults.rpo; + this.rto = defaults.rto; + } + + @CustomType.Setter + public Builder rpo(String rpo) { + if (rpo == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicySoftware", "rpo"); + } + this.rpo = rpo; + return this; + } + @CustomType.Setter + public Builder rto(String rto) { + if (rto == null) { + throw new MissingRequiredPropertyException("ResiliencyPolicyPolicySoftware", "rto"); + } + this.rto = rto; + return this; + } + public ResiliencyPolicyPolicySoftware build() { + final var _resultValue = new ResiliencyPolicyPolicySoftware(); + _resultValue.rpo = rpo; + _resultValue.rto = rto; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyTimeouts.java new file mode 100644 index 00000000000..527160a1ae6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resiliencehub/outputs/ResiliencyPolicyTimeouts.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.resiliencehub.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 ResiliencyPolicyTimeouts { + /** + * @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 ResiliencyPolicyTimeouts() {} + /** + * @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(ResiliencyPolicyTimeouts 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(ResiliencyPolicyTimeouts 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 ResiliencyPolicyTimeouts build() { + final var _resultValue = new ResiliencyPolicyTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/route53/ProfilesAssociation.java b/sdk/java/src/main/java/com/pulumi/aws/route53/ProfilesAssociation.java index fb687fbb94c..b120c36d97f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/route53/ProfilesAssociation.java +++ b/sdk/java/src/main/java/com/pulumi/aws/route53/ProfilesAssociation.java @@ -44,14 +44,14 @@ public Output arn() { return this.arn; } /** - * Name of the Profile Association. + * Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. * */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; /** - * @return Name of the Profile Association. + * @return Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. * */ public Output name() { @@ -92,14 +92,14 @@ public Output resourceId() { return this.resourceId; } /** - * Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + * Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. * */ @Export(name="status", refs={String.class}, tree="[0]") private Output status; /** - * @return Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + * @return Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. * */ public Output status() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/route53/ProfilesAssociationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/route53/ProfilesAssociationArgs.java index f39fcc30fa8..d4aeace91b2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/route53/ProfilesAssociationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/route53/ProfilesAssociationArgs.java @@ -19,14 +19,14 @@ public final class ProfilesAssociationArgs extends com.pulumi.resources.Resource public static final ProfilesAssociationArgs Empty = new ProfilesAssociationArgs(); /** - * Name of the Profile Association. + * Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. * */ @Import(name="name") private @Nullable Output name; /** - * @return Name of the Profile Association. + * @return Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. * */ public Optional> name() { @@ -106,7 +106,7 @@ public Builder(ProfilesAssociationArgs defaults) { } /** - * @param name Name of the Profile Association. + * @param name Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. * * @return builder * @@ -117,7 +117,7 @@ public Builder name(@Nullable Output name) { } /** - * @param name Name of the Profile Association. + * @param name Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/route53/inputs/ProfilesAssociationState.java b/sdk/java/src/main/java/com/pulumi/aws/route53/inputs/ProfilesAssociationState.java index 1bd7afc5d82..15800fbae5f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/route53/inputs/ProfilesAssociationState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/route53/inputs/ProfilesAssociationState.java @@ -25,14 +25,14 @@ public Optional> arn() { } /** - * Name of the Profile Association. + * Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. * */ @Import(name="name") private @Nullable Output name; /** - * @return Name of the Profile Association. + * @return Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. * */ public Optional> name() { @@ -77,14 +77,14 @@ public Optional> resourceId() { } /** - * Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + * Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. * */ @Import(name="status") private @Nullable Output status; /** - * @return Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + * @return Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. * */ public Optional> status() { @@ -182,7 +182,7 @@ public Builder arn(String arn) { } /** - * @param name Name of the Profile Association. + * @param name Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. * * @return builder * @@ -193,7 +193,7 @@ public Builder name(@Nullable Output name) { } /** - * @param name Name of the Profile Association. + * @param name Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. * * @return builder * @@ -254,7 +254,7 @@ public Builder resourceId(String resourceId) { } /** - * @param status Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + * @param status Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. * * @return builder * @@ -265,7 +265,7 @@ public Builder status(@Nullable Output status) { } /** - * @param status Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + * @param status Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/route53/inputs/ProfilesAssociationTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/route53/inputs/ProfilesAssociationTimeoutsArgs.java index be6a1e5a24c..b5cb47b2586 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/route53/inputs/ProfilesAssociationTimeoutsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/route53/inputs/ProfilesAssociationTimeoutsArgs.java @@ -46,18 +46,18 @@ public Optional> 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). Read operations occur during any refresh or planning operation when refresh is enabled. + * A string that can be [parsed as a duration](https://pkg.go.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="read") - private @Nullable Output read; + @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). Read operations occur during any refresh or planning operation when refresh is enabled. + * @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> read() { - return Optional.ofNullable(this.read); + public Optional> update() { + return Optional.ofNullable(this.update); } private ProfilesAssociationTimeoutsArgs() {} @@ -65,7 +65,7 @@ private ProfilesAssociationTimeoutsArgs() {} private ProfilesAssociationTimeoutsArgs(ProfilesAssociationTimeoutsArgs $) { this.create = $.create; this.delete = $.delete; - this.read = $.read; + this.update = $.update; } public static Builder builder() { @@ -129,24 +129,24 @@ public Builder delete(String delete) { } /** - * @param read A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. + * @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 read(@Nullable Output read) { - $.read = read; + public Builder update(@Nullable Output update) { + $.update = update; return this; } /** - * @param read A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. + * @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 read(String read) { - return read(Output.of(read)); + public Builder update(String update) { + return update(Output.of(update)); } public ProfilesAssociationTimeoutsArgs build() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/route53/outputs/ProfilesAssociationTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/route53/outputs/ProfilesAssociationTimeouts.java index 38344d31d42..d2d24105f1e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/route53/outputs/ProfilesAssociationTimeouts.java +++ b/sdk/java/src/main/java/com/pulumi/aws/route53/outputs/ProfilesAssociationTimeouts.java @@ -22,10 +22,10 @@ public final class ProfilesAssociationTimeouts { */ 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). Read operations occur during any refresh or planning operation when refresh is enabled. + * @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 read; + private @Nullable String update; private ProfilesAssociationTimeouts() {} /** @@ -43,11 +43,11 @@ 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). Read operations occur during any refresh or planning operation when refresh is enabled. + * @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 read() { - return Optional.ofNullable(this.read); + public Optional update() { + return Optional.ofNullable(this.update); } public static Builder builder() { @@ -61,13 +61,13 @@ public static Builder builder(ProfilesAssociationTimeouts defaults) { public static final class Builder { private @Nullable String create; private @Nullable String delete; - private @Nullable String read; + private @Nullable String update; public Builder() {} public Builder(ProfilesAssociationTimeouts defaults) { Objects.requireNonNull(defaults); this.create = defaults.create; this.delete = defaults.delete; - this.read = defaults.read; + this.update = defaults.update; } @CustomType.Setter @@ -83,16 +83,16 @@ public Builder delete(@Nullable String delete) { return this; } @CustomType.Setter - public Builder read(@Nullable String read) { + public Builder update(@Nullable String update) { - this.read = read; + this.update = update; return this; } public ProfilesAssociationTimeouts build() { final var _resultValue = new ProfilesAssociationTimeouts(); _resultValue.create = create; _resultValue.delete = delete; - _resultValue.read = read; + _resultValue.update = update; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Domain.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Domain.java index 5375cddaef9..47c754b54d4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Domain.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Domain.java @@ -381,6 +381,20 @@ public Output singleSignOnManagedApplicationInstanceId() { public Output> subnetIds() { return this.subnetIds; } + /** + * Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + * + */ + @Export(name="tagPropagation", refs={String.class}, tree="[0]") + private Output tagPropagation; + + /** + * @return Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + * + */ + public Output> tagPropagation() { + return Codegen.optional(this.tagPropagation); + } /** * A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/DomainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/DomainArgs.java index 722b2571f6a..8a41353a774 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/DomainArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/DomainArgs.java @@ -172,6 +172,21 @@ public Output> subnetIds() { return this.subnetIds; } + /** + * Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + * + */ + @Import(name="tagPropagation") + private @Nullable Output tagPropagation; + + /** + * @return Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + * + */ + public Optional> tagPropagation() { + return Optional.ofNullable(this.tagPropagation); + } + /** * A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. * @@ -219,6 +234,7 @@ private DomainArgs(DomainArgs $) { this.kmsKeyId = $.kmsKeyId; this.retentionPolicy = $.retentionPolicy; this.subnetIds = $.subnetIds; + this.tagPropagation = $.tagPropagation; this.tags = $.tags; this.vpcId = $.vpcId; } @@ -461,6 +477,27 @@ public Builder subnetIds(String... subnetIds) { return subnetIds(List.of(subnetIds)); } + /** + * @param tagPropagation Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder tagPropagation(@Nullable Output tagPropagation) { + $.tagPropagation = tagPropagation; + return this; + } + + /** + * @param tagPropagation Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder tagPropagation(String tagPropagation) { + return tagPropagation(Output.of(tagPropagation)); + } + /** * @param tags A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/FeatureGroup.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/FeatureGroup.java index 8ab4526c6bd..00427aec00e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/FeatureGroup.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/FeatureGroup.java @@ -9,6 +9,7 @@ import com.pulumi.aws.sagemaker.outputs.FeatureGroupFeatureDefinition; import com.pulumi.aws.sagemaker.outputs.FeatureGroupOfflineStoreConfig; import com.pulumi.aws.sagemaker.outputs.FeatureGroupOnlineStoreConfig; +import com.pulumi.aws.sagemaker.outputs.FeatureGroupThroughputConfig; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; @@ -240,6 +241,12 @@ public Output>> tags() { public Output> tagsAll() { return this.tagsAll; } + @Export(name="throughputConfig", refs={FeatureGroupThroughputConfig.class}, tree="[0]") + private Output throughputConfig; + + public Output throughputConfig() { + return this.throughputConfig; + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/FeatureGroupArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/FeatureGroupArgs.java index 688062df30a..29c4e35782d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/FeatureGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/FeatureGroupArgs.java @@ -6,6 +6,7 @@ import com.pulumi.aws.sagemaker.inputs.FeatureGroupFeatureDefinitionArgs; import com.pulumi.aws.sagemaker.inputs.FeatureGroupOfflineStoreConfigArgs; import com.pulumi.aws.sagemaker.inputs.FeatureGroupOnlineStoreConfigArgs; +import com.pulumi.aws.sagemaker.inputs.FeatureGroupThroughputConfigArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; @@ -156,6 +157,13 @@ public Optional>> tags() { return Optional.ofNullable(this.tags); } + @Import(name="throughputConfig") + private @Nullable Output throughputConfig; + + public Optional> throughputConfig() { + return Optional.ofNullable(this.throughputConfig); + } + private FeatureGroupArgs() {} private FeatureGroupArgs(FeatureGroupArgs $) { @@ -168,6 +176,7 @@ private FeatureGroupArgs(FeatureGroupArgs $) { this.recordIdentifierFeatureName = $.recordIdentifierFeatureName; this.roleArn = $.roleArn; this.tags = $.tags; + this.throughputConfig = $.throughputConfig; } public static Builder builder() { @@ -387,6 +396,15 @@ public Builder tags(Map tags) { return tags(Output.of(tags)); } + public Builder throughputConfig(@Nullable Output throughputConfig) { + $.throughputConfig = throughputConfig; + return this; + } + + public Builder throughputConfig(FeatureGroupThroughputConfigArgs throughputConfig) { + return throughputConfig(Output.of(throughputConfig)); + } + public FeatureGroupArgs build() { if ($.eventTimeFeatureName == null) { throw new MissingRequiredPropertyException("FeatureGroupArgs", "eventTimeFeatureName"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Hub.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Hub.java new file mode 100644 index 00000000000..f2a9f8a38fc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/Hub.java @@ -0,0 +1,244 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.sagemaker; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.sagemaker.HubArgs; +import com.pulumi.aws.sagemaker.inputs.HubState; +import com.pulumi.aws.sagemaker.outputs.HubS3StorageConfig; +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 java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Provides a SageMaker Hub resource. + * + * ## 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.sagemaker.Hub;
+ * import com.pulumi.aws.sagemaker.HubArgs;
+ * 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 Hub("example", HubArgs.builder()
+ *             .hubName("example")
+ *             .hubDescription("example")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import SageMaker Hubs using the `name`. For example: + * + * ```sh + * $ pulumi import aws:sagemaker/hub:Hub test_hub my-code-repo + * ``` + * + */ +@ResourceType(type="aws:sagemaker/hub:Hub") +public class Hub extends com.pulumi.resources.CustomResource { + /** + * The Amazon Resource Name (ARN) assigned by AWS to this Hub. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return The Amazon Resource Name (ARN) assigned by AWS to this Hub. + * + */ + public Output arn() { + return this.arn; + } + /** + * A description of the hub. + * + */ + @Export(name="hubDescription", refs={String.class}, tree="[0]") + private Output hubDescription; + + /** + * @return A description of the hub. + * + */ + public Output hubDescription() { + return this.hubDescription; + } + /** + * The display name of the hub. + * + */ + @Export(name="hubDisplayName", refs={String.class}, tree="[0]") + private Output hubDisplayName; + + /** + * @return The display name of the hub. + * + */ + public Output> hubDisplayName() { + return Codegen.optional(this.hubDisplayName); + } + /** + * The name of the hub. + * + */ + @Export(name="hubName", refs={String.class}, tree="[0]") + private Output hubName; + + /** + * @return The name of the hub. + * + */ + public Output hubName() { + return this.hubName; + } + /** + * The searchable keywords for the hub. + * + */ + @Export(name="hubSearchKeywords", refs={List.class,String.class}, tree="[0,1]") + private Output> hubSearchKeywords; + + /** + * @return The searchable keywords for the hub. + * + */ + public Output>> hubSearchKeywords() { + return Codegen.optional(this.hubSearchKeywords); + } + /** + * The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + * + */ + @Export(name="s3StorageConfig", refs={HubS3StorageConfig.class}, tree="[0]") + private Output s3StorageConfig; + + /** + * @return The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + * + */ + public Output> s3StorageConfig() { + return Codegen.optional(this.s3StorageConfig); + } + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + */ + public Output> tagsAll() { + return this.tagsAll; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Hub(java.lang.String name) { + this(name, HubArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Hub(java.lang.String name, HubArgs 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 Hub(java.lang.String name, HubArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:sagemaker/hub:Hub", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private Hub(java.lang.String name, Output id, @Nullable HubState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:sagemaker/hub:Hub", name, state, makeResourceOptions(options, id), false); + } + + private static HubArgs makeArgs(HubArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HubArgs.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 Hub get(java.lang.String name, Output id, @Nullable HubState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Hub(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/HubArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/HubArgs.java new file mode 100644 index 00000000000..db71d3cfce5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/HubArgs.java @@ -0,0 +1,288 @@ +// *** 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.sagemaker; + +import com.pulumi.aws.sagemaker.inputs.HubS3StorageConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class HubArgs extends com.pulumi.resources.ResourceArgs { + + public static final HubArgs Empty = new HubArgs(); + + /** + * A description of the hub. + * + */ + @Import(name="hubDescription", required=true) + private Output hubDescription; + + /** + * @return A description of the hub. + * + */ + public Output hubDescription() { + return this.hubDescription; + } + + /** + * The display name of the hub. + * + */ + @Import(name="hubDisplayName") + private @Nullable Output hubDisplayName; + + /** + * @return The display name of the hub. + * + */ + public Optional> hubDisplayName() { + return Optional.ofNullable(this.hubDisplayName); + } + + /** + * The name of the hub. + * + */ + @Import(name="hubName", required=true) + private Output hubName; + + /** + * @return The name of the hub. + * + */ + public Output hubName() { + return this.hubName; + } + + /** + * The searchable keywords for the hub. + * + */ + @Import(name="hubSearchKeywords") + private @Nullable Output> hubSearchKeywords; + + /** + * @return The searchable keywords for the hub. + * + */ + public Optional>> hubSearchKeywords() { + return Optional.ofNullable(this.hubSearchKeywords); + } + + /** + * The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + * + */ + @Import(name="s3StorageConfig") + private @Nullable Output s3StorageConfig; + + /** + * @return The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + * + */ + public Optional> s3StorageConfig() { + return Optional.ofNullable(this.s3StorageConfig); + } + + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + private HubArgs() {} + + private HubArgs(HubArgs $) { + this.hubDescription = $.hubDescription; + this.hubDisplayName = $.hubDisplayName; + this.hubName = $.hubName; + this.hubSearchKeywords = $.hubSearchKeywords; + this.s3StorageConfig = $.s3StorageConfig; + this.tags = $.tags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(HubArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private HubArgs $; + + public Builder() { + $ = new HubArgs(); + } + + public Builder(HubArgs defaults) { + $ = new HubArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param hubDescription A description of the hub. + * + * @return builder + * + */ + public Builder hubDescription(Output hubDescription) { + $.hubDescription = hubDescription; + return this; + } + + /** + * @param hubDescription A description of the hub. + * + * @return builder + * + */ + public Builder hubDescription(String hubDescription) { + return hubDescription(Output.of(hubDescription)); + } + + /** + * @param hubDisplayName The display name of the hub. + * + * @return builder + * + */ + public Builder hubDisplayName(@Nullable Output hubDisplayName) { + $.hubDisplayName = hubDisplayName; + return this; + } + + /** + * @param hubDisplayName The display name of the hub. + * + * @return builder + * + */ + public Builder hubDisplayName(String hubDisplayName) { + return hubDisplayName(Output.of(hubDisplayName)); + } + + /** + * @param hubName The name of the hub. + * + * @return builder + * + */ + public Builder hubName(Output hubName) { + $.hubName = hubName; + return this; + } + + /** + * @param hubName The name of the hub. + * + * @return builder + * + */ + public Builder hubName(String hubName) { + return hubName(Output.of(hubName)); + } + + /** + * @param hubSearchKeywords The searchable keywords for the hub. + * + * @return builder + * + */ + public Builder hubSearchKeywords(@Nullable Output> hubSearchKeywords) { + $.hubSearchKeywords = hubSearchKeywords; + return this; + } + + /** + * @param hubSearchKeywords The searchable keywords for the hub. + * + * @return builder + * + */ + public Builder hubSearchKeywords(List hubSearchKeywords) { + return hubSearchKeywords(Output.of(hubSearchKeywords)); + } + + /** + * @param hubSearchKeywords The searchable keywords for the hub. + * + * @return builder + * + */ + public Builder hubSearchKeywords(String... hubSearchKeywords) { + return hubSearchKeywords(List.of(hubSearchKeywords)); + } + + /** + * @param s3StorageConfig The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + * + * @return builder + * + */ + public Builder s3StorageConfig(@Nullable Output s3StorageConfig) { + $.s3StorageConfig = s3StorageConfig; + return this; + } + + /** + * @param s3StorageConfig The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + * + * @return builder + * + */ + public Builder s3StorageConfig(HubS3StorageConfigArgs s3StorageConfig) { + return s3StorageConfig(Output.of(s3StorageConfig)); + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public HubArgs build() { + if ($.hubDescription == null) { + throw new MissingRequiredPropertyException("HubArgs", "hubDescription"); + } + if ($.hubName == null) { + throw new MissingRequiredPropertyException("HubArgs", "hubName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/MlflowTrackingServer.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/MlflowTrackingServer.java new file mode 100644 index 00000000000..9bb2a53238e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/MlflowTrackingServer.java @@ -0,0 +1,286 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.sagemaker; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.sagemaker.MlflowTrackingServerArgs; +import com.pulumi.aws.sagemaker.inputs.MlflowTrackingServerState; +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.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Provides a SageMaker MLFlow Tracking Server resource. + * + * ## Example Usage + * + * ### Cognito Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.sagemaker.MlflowTrackingServer;
+ * import com.pulumi.aws.sagemaker.MlflowTrackingServerArgs;
+ * 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 MlflowTrackingServer("example", MlflowTrackingServerArgs.builder()
+ *             .trackingServerName("example")
+ *             .roleArn(exampleAwsIamRole.arn())
+ *             .artifactStoreUri(String.format("s3://%s/path", exampleAwsS3Bucket.bucket()))
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import SageMaker MLFlow Tracking Servers using the `workteam_name`. For example: + * + * ```sh + * $ pulumi import aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer example example + * ``` + * + */ +@ResourceType(type="aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer") +public class MlflowTrackingServer extends com.pulumi.resources.CustomResource { + /** + * The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + * + */ + public Output arn() { + return this.arn; + } + /** + * The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + * + */ + @Export(name="artifactStoreUri", refs={String.class}, tree="[0]") + private Output artifactStoreUri; + + /** + * @return The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + * + */ + public Output artifactStoreUri() { + return this.artifactStoreUri; + } + /** + * A list of Member Definitions that contains objects that identify the workers that make up the work team. + * + */ + @Export(name="automaticModelRegistration", refs={Boolean.class}, tree="[0]") + private Output automaticModelRegistration; + + /** + * @return A list of Member Definitions that contains objects that identify the workers that make up the work team. + * + */ + public Output> automaticModelRegistration() { + return Codegen.optional(this.automaticModelRegistration); + } + /** + * The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + * + */ + @Export(name="mlflowVersion", refs={String.class}, tree="[0]") + private Output mlflowVersion; + + /** + * @return The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + * + */ + public Output mlflowVersion() { + return this.mlflowVersion; + } + /** + * The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + * + */ + @Export(name="roleArn", refs={String.class}, tree="[0]") + private Output roleArn; + + /** + * @return The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + * + */ + public Output roleArn() { + return this.roleArn; + } + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + */ + public Output> tagsAll() { + return this.tagsAll; + } + /** + * A unique string identifying the tracking server name. This string is part of the tracking server ARN. + * + */ + @Export(name="trackingServerName", refs={String.class}, tree="[0]") + private Output trackingServerName; + + /** + * @return A unique string identifying the tracking server name. This string is part of the tracking server ARN. + * + */ + public Output trackingServerName() { + return this.trackingServerName; + } + /** + * The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + * + */ + @Export(name="trackingServerSize", refs={String.class}, tree="[0]") + private Output trackingServerSize; + + /** + * @return The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + * + */ + public Output> trackingServerSize() { + return Codegen.optional(this.trackingServerSize); + } + /** + * The URL to connect to the MLflow user interface for the described tracking server. + * + */ + @Export(name="trackingServerUrl", refs={String.class}, tree="[0]") + private Output trackingServerUrl; + + /** + * @return The URL to connect to the MLflow user interface for the described tracking server. + * + */ + public Output trackingServerUrl() { + return this.trackingServerUrl; + } + /** + * The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + * + */ + @Export(name="weeklyMaintenanceWindowStart", refs={String.class}, tree="[0]") + private Output weeklyMaintenanceWindowStart; + + /** + * @return The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + * + */ + public Output weeklyMaintenanceWindowStart() { + return this.weeklyMaintenanceWindowStart; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public MlflowTrackingServer(java.lang.String name) { + this(name, MlflowTrackingServerArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public MlflowTrackingServer(java.lang.String name, MlflowTrackingServerArgs 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 MlflowTrackingServer(java.lang.String name, MlflowTrackingServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private MlflowTrackingServer(java.lang.String name, Output id, @Nullable MlflowTrackingServerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer", name, state, makeResourceOptions(options, id), false); + } + + private static MlflowTrackingServerArgs makeArgs(MlflowTrackingServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MlflowTrackingServerArgs.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 MlflowTrackingServer get(java.lang.String name, Output id, @Nullable MlflowTrackingServerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new MlflowTrackingServer(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/MlflowTrackingServerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/MlflowTrackingServerArgs.java new file mode 100644 index 00000000000..77fcfdd117b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/MlflowTrackingServerArgs.java @@ -0,0 +1,354 @@ +// *** 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.sagemaker; + +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.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MlflowTrackingServerArgs extends com.pulumi.resources.ResourceArgs { + + public static final MlflowTrackingServerArgs Empty = new MlflowTrackingServerArgs(); + + /** + * The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + * + */ + @Import(name="artifactStoreUri", required=true) + private Output artifactStoreUri; + + /** + * @return The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + * + */ + public Output artifactStoreUri() { + return this.artifactStoreUri; + } + + /** + * A list of Member Definitions that contains objects that identify the workers that make up the work team. + * + */ + @Import(name="automaticModelRegistration") + private @Nullable Output automaticModelRegistration; + + /** + * @return A list of Member Definitions that contains objects that identify the workers that make up the work team. + * + */ + public Optional> automaticModelRegistration() { + return Optional.ofNullable(this.automaticModelRegistration); + } + + /** + * The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + * + */ + @Import(name="mlflowVersion") + private @Nullable Output mlflowVersion; + + /** + * @return The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + * + */ + public Optional> mlflowVersion() { + return Optional.ofNullable(this.mlflowVersion); + } + + /** + * The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + * + */ + @Import(name="roleArn", required=true) + private Output roleArn; + + /** + * @return The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + * + */ + public Output roleArn() { + return this.roleArn; + } + + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * A unique string identifying the tracking server name. This string is part of the tracking server ARN. + * + */ + @Import(name="trackingServerName", required=true) + private Output trackingServerName; + + /** + * @return A unique string identifying the tracking server name. This string is part of the tracking server ARN. + * + */ + public Output trackingServerName() { + return this.trackingServerName; + } + + /** + * The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + * + */ + @Import(name="trackingServerSize") + private @Nullable Output trackingServerSize; + + /** + * @return The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + * + */ + public Optional> trackingServerSize() { + return Optional.ofNullable(this.trackingServerSize); + } + + /** + * The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + * + */ + @Import(name="weeklyMaintenanceWindowStart") + private @Nullable Output weeklyMaintenanceWindowStart; + + /** + * @return The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + * + */ + public Optional> weeklyMaintenanceWindowStart() { + return Optional.ofNullable(this.weeklyMaintenanceWindowStart); + } + + private MlflowTrackingServerArgs() {} + + private MlflowTrackingServerArgs(MlflowTrackingServerArgs $) { + this.artifactStoreUri = $.artifactStoreUri; + this.automaticModelRegistration = $.automaticModelRegistration; + this.mlflowVersion = $.mlflowVersion; + this.roleArn = $.roleArn; + this.tags = $.tags; + this.trackingServerName = $.trackingServerName; + this.trackingServerSize = $.trackingServerSize; + this.weeklyMaintenanceWindowStart = $.weeklyMaintenanceWindowStart; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MlflowTrackingServerArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MlflowTrackingServerArgs $; + + public Builder() { + $ = new MlflowTrackingServerArgs(); + } + + public Builder(MlflowTrackingServerArgs defaults) { + $ = new MlflowTrackingServerArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param artifactStoreUri The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + * + * @return builder + * + */ + public Builder artifactStoreUri(Output artifactStoreUri) { + $.artifactStoreUri = artifactStoreUri; + return this; + } + + /** + * @param artifactStoreUri The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + * + * @return builder + * + */ + public Builder artifactStoreUri(String artifactStoreUri) { + return artifactStoreUri(Output.of(artifactStoreUri)); + } + + /** + * @param automaticModelRegistration A list of Member Definitions that contains objects that identify the workers that make up the work team. + * + * @return builder + * + */ + public Builder automaticModelRegistration(@Nullable Output automaticModelRegistration) { + $.automaticModelRegistration = automaticModelRegistration; + return this; + } + + /** + * @param automaticModelRegistration A list of Member Definitions that contains objects that identify the workers that make up the work team. + * + * @return builder + * + */ + public Builder automaticModelRegistration(Boolean automaticModelRegistration) { + return automaticModelRegistration(Output.of(automaticModelRegistration)); + } + + /** + * @param mlflowVersion The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + * + * @return builder + * + */ + public Builder mlflowVersion(@Nullable Output mlflowVersion) { + $.mlflowVersion = mlflowVersion; + return this; + } + + /** + * @param mlflowVersion The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + * + * @return builder + * + */ + public Builder mlflowVersion(String mlflowVersion) { + return mlflowVersion(Output.of(mlflowVersion)); + } + + /** + * @param roleArn The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + * + * @return builder + * + */ + public Builder roleArn(Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param trackingServerName A unique string identifying the tracking server name. This string is part of the tracking server ARN. + * + * @return builder + * + */ + public Builder trackingServerName(Output trackingServerName) { + $.trackingServerName = trackingServerName; + return this; + } + + /** + * @param trackingServerName A unique string identifying the tracking server name. This string is part of the tracking server ARN. + * + * @return builder + * + */ + public Builder trackingServerName(String trackingServerName) { + return trackingServerName(Output.of(trackingServerName)); + } + + /** + * @param trackingServerSize The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + * + * @return builder + * + */ + public Builder trackingServerSize(@Nullable Output trackingServerSize) { + $.trackingServerSize = trackingServerSize; + return this; + } + + /** + * @param trackingServerSize The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + * + * @return builder + * + */ + public Builder trackingServerSize(String trackingServerSize) { + return trackingServerSize(Output.of(trackingServerSize)); + } + + /** + * @param weeklyMaintenanceWindowStart The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + * + * @return builder + * + */ + public Builder weeklyMaintenanceWindowStart(@Nullable Output weeklyMaintenanceWindowStart) { + $.weeklyMaintenanceWindowStart = weeklyMaintenanceWindowStart; + return this; + } + + /** + * @param weeklyMaintenanceWindowStart The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + * + * @return builder + * + */ + public Builder weeklyMaintenanceWindowStart(String weeklyMaintenanceWindowStart) { + return weeklyMaintenanceWindowStart(Output.of(weeklyMaintenanceWindowStart)); + } + + public MlflowTrackingServerArgs build() { + if ($.artifactStoreUri == null) { + throw new MissingRequiredPropertyException("MlflowTrackingServerArgs", "artifactStoreUri"); + } + if ($.roleArn == null) { + throw new MissingRequiredPropertyException("MlflowTrackingServerArgs", "roleArn"); + } + if ($.trackingServerName == null) { + throw new MissingRequiredPropertyException("MlflowTrackingServerArgs", "trackingServerName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.java new file mode 100644 index 00000000000..065f4a813d2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.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.sagemaker.inputs; + +import com.pulumi.aws.sagemaker.inputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs; +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 DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs extends com.pulumi.resources.ResourceArgs { + + public static final DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs Empty = new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + + /** + * Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + @Import(name="idleSettings") + private @Nullable Output idleSettings; + + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + public Optional> idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + private DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs() {} + + private DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs $) { + this.idleSettings = $.idleSettings; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs $; + + public Builder() { + $ = new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + } + + public Builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs defaults) { + $ = new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(@Nullable Output idleSettings) { + $.idleSettings = idleSettings; + return this; + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs idleSettings) { + return idleSettings(Output.of(idleSettings)); + } + + public DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java new file mode 100644 index 00000000000..0d64f2b5888 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java @@ -0,0 +1,195 @@ +// *** 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.sagemaker.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs Empty = new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + @Import(name="idleTimeoutInMinutes") + private @Nullable Output idleTimeoutInMinutes; + + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional> idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + @Import(name="lifecycleManagement") + private @Nullable Output lifecycleManagement; + + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + public Optional> lifecycleManagement() { + return Optional.ofNullable(this.lifecycleManagement); + } + + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + @Import(name="maxIdleTimeoutInMinutes") + private @Nullable Output maxIdleTimeoutInMinutes; + + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional> maxIdleTimeoutInMinutes() { + return Optional.ofNullable(this.maxIdleTimeoutInMinutes); + } + + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + @Import(name="minIdleTimeoutInMinutes") + private @Nullable Output minIdleTimeoutInMinutes; + + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional> minIdleTimeoutInMinutes() { + return Optional.ofNullable(this.minIdleTimeoutInMinutes); + } + + private DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs() {} + + private DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs $) { + this.idleTimeoutInMinutes = $.idleTimeoutInMinutes; + this.lifecycleManagement = $.lifecycleManagement; + this.maxIdleTimeoutInMinutes = $.maxIdleTimeoutInMinutes; + this.minIdleTimeoutInMinutes = $.minIdleTimeoutInMinutes; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs $; + + public Builder() { + $ = new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } + + public Builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + $ = new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(@Nullable Output idleTimeoutInMinutes) { + $.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(Integer idleTimeoutInMinutes) { + return idleTimeoutInMinutes(Output.of(idleTimeoutInMinutes)); + } + + /** + * @param lifecycleManagement Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder lifecycleManagement(@Nullable Output lifecycleManagement) { + $.lifecycleManagement = lifecycleManagement; + return this; + } + + /** + * @param lifecycleManagement Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder lifecycleManagement(String lifecycleManagement) { + return lifecycleManagement(Output.of(lifecycleManagement)); + } + + /** + * @param maxIdleTimeoutInMinutes The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder maxIdleTimeoutInMinutes(@Nullable Output maxIdleTimeoutInMinutes) { + $.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + return this; + } + + /** + * @param maxIdleTimeoutInMinutes The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder maxIdleTimeoutInMinutes(Integer maxIdleTimeoutInMinutes) { + return maxIdleTimeoutInMinutes(Output.of(maxIdleTimeoutInMinutes)); + } + + /** + * @param minIdleTimeoutInMinutes The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder minIdleTimeoutInMinutes(@Nullable Output minIdleTimeoutInMinutes) { + $.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return this; + } + + /** + * @param minIdleTimeoutInMinutes The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder minIdleTimeoutInMinutes(Integer minIdleTimeoutInMinutes) { + return minIdleTimeoutInMinutes(Output.of(minIdleTimeoutInMinutes)); + } + + public DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs.java index 6bcc6297387..ccd1d09b36a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs.java @@ -3,9 +3,11 @@ package com.pulumi.aws.sagemaker.inputs; +import com.pulumi.aws.sagemaker.inputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs; +import com.pulumi.aws.sagemaker.inputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.String; @@ -19,6 +21,36 @@ public final class DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs extends c public static final DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs Empty = new DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs(); + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + @Import(name="appLifecycleManagement") + private @Nullable Output appLifecycleManagement; + + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + public Optional> appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + @Import(name="builtInLifecycleConfigArn") + private @Nullable Output builtInLifecycleConfigArn; + + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + public Optional> builtInLifecycleConfigArn() { + return Optional.ofNullable(this.builtInLifecycleConfigArn); + } + /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. * @@ -64,6 +96,21 @@ public Optional emrSettings; + + /** + * @return The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + */ + public Optional> emrSettings() { + return Optional.ofNullable(this.emrSettings); + } + /** * The Amazon Resource Name (ARN) of the Lifecycle Configurations. * @@ -82,9 +129,12 @@ public Optional>> lifecycleConfigArns() { private DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs() {} private DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs(DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs $) { + this.appLifecycleManagement = $.appLifecycleManagement; + this.builtInLifecycleConfigArn = $.builtInLifecycleConfigArn; this.codeRepositories = $.codeRepositories; this.customImages = $.customImages; this.defaultResourceSpec = $.defaultResourceSpec; + this.emrSettings = $.emrSettings; this.lifecycleConfigArns = $.lifecycleConfigArns; } @@ -106,6 +156,48 @@ public Builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs defaults) { $ = new DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs(Objects.requireNonNull(defaults)); } + /** + * @param appLifecycleManagement Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(@Nullable Output appLifecycleManagement) { + $.appLifecycleManagement = appLifecycleManagement; + return this; + } + + /** + * @param appLifecycleManagement Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs appLifecycleManagement) { + return appLifecycleManagement(Output.of(appLifecycleManagement)); + } + + /** + * @param builtInLifecycleConfigArn The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + * @return builder + * + */ + public Builder builtInLifecycleConfigArn(@Nullable Output builtInLifecycleConfigArn) { + $.builtInLifecycleConfigArn = builtInLifecycleConfigArn; + return this; + } + + /** + * @param builtInLifecycleConfigArn The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + * @return builder + * + */ + public Builder builtInLifecycleConfigArn(String builtInLifecycleConfigArn) { + return builtInLifecycleConfigArn(Output.of(builtInLifecycleConfigArn)); + } + /** * @param codeRepositories A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. * @@ -189,6 +281,27 @@ public Builder defaultResourceSpec(DomainDefaultSpaceSettingsJupyterLabAppSettin return defaultResourceSpec(Output.of(defaultResourceSpec)); } + /** + * @param emrSettings The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + * @return builder + * + */ + public Builder emrSettings(@Nullable Output emrSettings) { + $.emrSettings = emrSettings; + return this; + } + + /** + * @param emrSettings The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + * @return builder + * + */ + public Builder emrSettings(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs emrSettings) { + return emrSettings(Output.of(emrSettings)); + } + /** * @param lifecycleConfigArns The Amazon Resource Name (ARN) of the Lifecycle Configurations. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs.java new file mode 100644 index 00000000000..03a4c81f4c5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs.java @@ -0,0 +1,141 @@ +// *** 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.sagemaker.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 DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs Empty = new DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs(); + + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + @Import(name="assumableRoleArns") + private @Nullable Output> assumableRoleArns; + + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + public Optional>> assumableRoleArns() { + return Optional.ofNullable(this.assumableRoleArns); + } + + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + @Import(name="executionRoleArns") + private @Nullable Output> executionRoleArns; + + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + public Optional>> executionRoleArns() { + return Optional.ofNullable(this.executionRoleArns); + } + + private DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs() {} + + private DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs $) { + this.assumableRoleArns = $.assumableRoleArns; + this.executionRoleArns = $.executionRoleArns; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs $; + + public Builder() { + $ = new DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs(); + } + + public Builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs defaults) { + $ = new DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param assumableRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + * @return builder + * + */ + public Builder assumableRoleArns(@Nullable Output> assumableRoleArns) { + $.assumableRoleArns = assumableRoleArns; + return this; + } + + /** + * @param assumableRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + * @return builder + * + */ + public Builder assumableRoleArns(List assumableRoleArns) { + return assumableRoleArns(Output.of(assumableRoleArns)); + } + + /** + * @param assumableRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + * @return builder + * + */ + public Builder assumableRoleArns(String... assumableRoleArns) { + return assumableRoleArns(List.of(assumableRoleArns)); + } + + /** + * @param executionRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + * @return builder + * + */ + public Builder executionRoleArns(@Nullable Output> executionRoleArns) { + $.executionRoleArns = executionRoleArns; + return this; + } + + /** + * @param executionRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + * @return builder + * + */ + public Builder executionRoleArns(List executionRoleArns) { + return executionRoleArns(Output.of(executionRoleArns)); + } + + /** + * @param executionRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + * @return builder + * + */ + public Builder executionRoleArns(String... executionRoleArns) { + return executionRoleArns(List.of(executionRoleArns)); + } + + public DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsArgs.java index 46280b7ae16..777819b0242 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsArgs.java @@ -30,6 +30,21 @@ public final class DomainDefaultUserSettingsArgs extends com.pulumi.resources.Re public static final DomainDefaultUserSettingsArgs Empty = new DomainDefaultUserSettingsArgs(); + /** + * Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + */ + @Import(name="autoMountHomeEfs") + private @Nullable Output autoMountHomeEfs; + + /** + * @return Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + */ + public Optional> autoMountHomeEfs() { + return Optional.ofNullable(this.autoMountHomeEfs); + } + /** * The Canvas app settings. See `canvas_app_settings` Block below. * @@ -288,6 +303,7 @@ public Optional> ten private DomainDefaultUserSettingsArgs() {} private DomainDefaultUserSettingsArgs(DomainDefaultUserSettingsArgs $) { + this.autoMountHomeEfs = $.autoMountHomeEfs; this.canvasAppSettings = $.canvasAppSettings; this.codeEditorAppSettings = $.codeEditorAppSettings; this.customFileSystemConfigs = $.customFileSystemConfigs; @@ -325,6 +341,27 @@ public Builder(DomainDefaultUserSettingsArgs defaults) { $ = new DomainDefaultUserSettingsArgs(Objects.requireNonNull(defaults)); } + /** + * @param autoMountHomeEfs Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + * @return builder + * + */ + public Builder autoMountHomeEfs(@Nullable Output autoMountHomeEfs) { + $.autoMountHomeEfs = autoMountHomeEfs; + return this; + } + + /** + * @param autoMountHomeEfs Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + * @return builder + * + */ + public Builder autoMountHomeEfs(String autoMountHomeEfs) { + return autoMountHomeEfs(Output.of(autoMountHomeEfs)); + } + /** * @param canvasAppSettings The Canvas app settings. See `canvas_app_settings` Block below. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCanvasAppSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCanvasAppSettingsArgs.java index 643c4889716..1473758c6cb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCanvasAppSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCanvasAppSettingsArgs.java @@ -4,6 +4,7 @@ package com.pulumi.aws.sagemaker.inputs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsArgs; +import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsCanvasAppSettingsKendraSettingsArgs; @@ -37,6 +38,21 @@ public Optional emrServerlessSettings; + + /** + * @return The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + * + */ + public Optional> emrServerlessSettings() { + return Optional.ofNullable(this.emrServerlessSettings); + } + @Import(name="generativeAiSettings") private @Nullable Output generativeAiSettings; @@ -123,6 +139,7 @@ private DomainDefaultUserSettingsCanvasAppSettingsArgs() {} private DomainDefaultUserSettingsCanvasAppSettingsArgs(DomainDefaultUserSettingsCanvasAppSettingsArgs $) { this.directDeploySettings = $.directDeploySettings; + this.emrServerlessSettings = $.emrServerlessSettings; this.generativeAiSettings = $.generativeAiSettings; this.identityProviderOauthSettings = $.identityProviderOauthSettings; this.kendraSettings = $.kendraSettings; @@ -170,6 +187,27 @@ public Builder directDeploySettings(DomainDefaultUserSettingsCanvasAppSettingsDi return directDeploySettings(Output.of(directDeploySettings)); } + /** + * @param emrServerlessSettings The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + * + * @return builder + * + */ + public Builder emrServerlessSettings(@Nullable Output emrServerlessSettings) { + $.emrServerlessSettings = emrServerlessSettings; + return this; + } + + /** + * @param emrServerlessSettings The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + * + * @return builder + * + */ + public Builder emrServerlessSettings(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs emrServerlessSettings) { + return emrServerlessSettings(Output.of(emrServerlessSettings)); + } + public Builder generativeAiSettings(@Nullable Output generativeAiSettings) { $.generativeAiSettings = generativeAiSettings; return this; diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.java new file mode 100644 index 00000000000..69634a3d607 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.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.sagemaker.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 DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs Empty = new DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs(); + + /** + * The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + */ + @Import(name="executionRoleArn") + private @Nullable Output executionRoleArn; + + /** + * @return The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + */ + public Optional> executionRoleArn() { + return Optional.ofNullable(this.executionRoleArn); + } + + /** + * Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + private DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs() {} + + private DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs $) { + this.executionRoleArn = $.executionRoleArn; + this.status = $.status; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs $; + + public Builder() { + $ = new DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs(); + } + + public Builder(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs defaults) { + $ = new DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param executionRoleArn The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + * @return builder + * + */ + public Builder executionRoleArn(@Nullable Output executionRoleArn) { + $.executionRoleArn = executionRoleArn; + return this; + } + + /** + * @param executionRoleArn The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + * @return builder + * + */ + public Builder executionRoleArn(String executionRoleArn) { + return executionRoleArn(Output.of(executionRoleArn)); + } + + /** + * @param status Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + public DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.java new file mode 100644 index 00000000000..1cb790837c5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.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.sagemaker.inputs; + +import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs; +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 DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs extends com.pulumi.resources.ResourceArgs { + + public static final DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs Empty = new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(); + + /** + * Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + @Import(name="idleSettings") + private @Nullable Output idleSettings; + + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + public Optional> idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + private DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs() {} + + private DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs $) { + this.idleSettings = $.idleSettings; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs $; + + public Builder() { + $ = new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(); + } + + public Builder(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs defaults) { + $ = new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(@Nullable Output idleSettings) { + $.idleSettings = idleSettings; + return this; + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs idleSettings) { + return idleSettings(Output.of(idleSettings)); + } + + public DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.java new file mode 100644 index 00000000000..8f6b8542d72 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.java @@ -0,0 +1,195 @@ +// *** 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.sagemaker.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs Empty = new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(); + + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + @Import(name="idleTimeoutInMinutes") + private @Nullable Output idleTimeoutInMinutes; + + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional> idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + @Import(name="lifecycleManagement") + private @Nullable Output lifecycleManagement; + + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + public Optional> lifecycleManagement() { + return Optional.ofNullable(this.lifecycleManagement); + } + + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + @Import(name="maxIdleTimeoutInMinutes") + private @Nullable Output maxIdleTimeoutInMinutes; + + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional> maxIdleTimeoutInMinutes() { + return Optional.ofNullable(this.maxIdleTimeoutInMinutes); + } + + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + @Import(name="minIdleTimeoutInMinutes") + private @Nullable Output minIdleTimeoutInMinutes; + + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional> minIdleTimeoutInMinutes() { + return Optional.ofNullable(this.minIdleTimeoutInMinutes); + } + + private DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs() {} + + private DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs $) { + this.idleTimeoutInMinutes = $.idleTimeoutInMinutes; + this.lifecycleManagement = $.lifecycleManagement; + this.maxIdleTimeoutInMinutes = $.maxIdleTimeoutInMinutes; + this.minIdleTimeoutInMinutes = $.minIdleTimeoutInMinutes; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs $; + + public Builder() { + $ = new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } + + public Builder(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + $ = new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(@Nullable Output idleTimeoutInMinutes) { + $.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(Integer idleTimeoutInMinutes) { + return idleTimeoutInMinutes(Output.of(idleTimeoutInMinutes)); + } + + /** + * @param lifecycleManagement Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder lifecycleManagement(@Nullable Output lifecycleManagement) { + $.lifecycleManagement = lifecycleManagement; + return this; + } + + /** + * @param lifecycleManagement Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder lifecycleManagement(String lifecycleManagement) { + return lifecycleManagement(Output.of(lifecycleManagement)); + } + + /** + * @param maxIdleTimeoutInMinutes The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder maxIdleTimeoutInMinutes(@Nullable Output maxIdleTimeoutInMinutes) { + $.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + return this; + } + + /** + * @param maxIdleTimeoutInMinutes The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder maxIdleTimeoutInMinutes(Integer maxIdleTimeoutInMinutes) { + return maxIdleTimeoutInMinutes(Output.of(maxIdleTimeoutInMinutes)); + } + + /** + * @param minIdleTimeoutInMinutes The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder minIdleTimeoutInMinutes(@Nullable Output minIdleTimeoutInMinutes) { + $.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return this; + } + + /** + * @param minIdleTimeoutInMinutes The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder minIdleTimeoutInMinutes(Integer minIdleTimeoutInMinutes) { + return minIdleTimeoutInMinutes(Output.of(minIdleTimeoutInMinutes)); + } + + public DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCodeEditorAppSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCodeEditorAppSettingsArgs.java index 78612a7afea..212c6d029ab 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCodeEditorAppSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsCodeEditorAppSettingsArgs.java @@ -3,6 +3,7 @@ package com.pulumi.aws.sagemaker.inputs; +import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs; import com.pulumi.core.Output; @@ -18,6 +19,36 @@ public final class DomainDefaultUserSettingsCodeEditorAppSettingsArgs extends co public static final DomainDefaultUserSettingsCodeEditorAppSettingsArgs Empty = new DomainDefaultUserSettingsCodeEditorAppSettingsArgs(); + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + @Import(name="appLifecycleManagement") + private @Nullable Output appLifecycleManagement; + + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + public Optional> appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + @Import(name="builtInLifecycleConfigArn") + private @Nullable Output builtInLifecycleConfigArn; + + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + public Optional> builtInLifecycleConfigArn() { + return Optional.ofNullable(this.builtInLifecycleConfigArn); + } + /** * A list of custom SageMaker images that are configured to run as a CodeEditor app. see `custom_image` Block below. * @@ -66,6 +97,8 @@ public Optional>> lifecycleConfigArns() { private DomainDefaultUserSettingsCodeEditorAppSettingsArgs() {} private DomainDefaultUserSettingsCodeEditorAppSettingsArgs(DomainDefaultUserSettingsCodeEditorAppSettingsArgs $) { + this.appLifecycleManagement = $.appLifecycleManagement; + this.builtInLifecycleConfigArn = $.builtInLifecycleConfigArn; this.customImages = $.customImages; this.defaultResourceSpec = $.defaultResourceSpec; this.lifecycleConfigArns = $.lifecycleConfigArns; @@ -89,6 +122,48 @@ public Builder(DomainDefaultUserSettingsCodeEditorAppSettingsArgs defaults) { $ = new DomainDefaultUserSettingsCodeEditorAppSettingsArgs(Objects.requireNonNull(defaults)); } + /** + * @param appLifecycleManagement Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(@Nullable Output appLifecycleManagement) { + $.appLifecycleManagement = appLifecycleManagement; + return this; + } + + /** + * @param appLifecycleManagement Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs appLifecycleManagement) { + return appLifecycleManagement(Output.of(appLifecycleManagement)); + } + + /** + * @param builtInLifecycleConfigArn The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + * @return builder + * + */ + public Builder builtInLifecycleConfigArn(@Nullable Output builtInLifecycleConfigArn) { + $.builtInLifecycleConfigArn = builtInLifecycleConfigArn; + return this; + } + + /** + * @param builtInLifecycleConfigArn The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + * @return builder + * + */ + public Builder builtInLifecycleConfigArn(String builtInLifecycleConfigArn) { + return builtInLifecycleConfigArn(Output.of(builtInLifecycleConfigArn)); + } + /** * @param customImages A list of custom SageMaker images that are configured to run as a CodeEditor app. see `custom_image` Block below. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.java new file mode 100644 index 00000000000..2f5d665de4b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.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.sagemaker.inputs; + +import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs; +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 DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs extends com.pulumi.resources.ResourceArgs { + + public static final DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs Empty = new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + + /** + * Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + @Import(name="idleSettings") + private @Nullable Output idleSettings; + + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + public Optional> idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + private DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs() {} + + private DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs $) { + this.idleSettings = $.idleSettings; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs $; + + public Builder() { + $ = new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + } + + public Builder(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs defaults) { + $ = new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(@Nullable Output idleSettings) { + $.idleSettings = idleSettings; + return this; + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs idleSettings) { + return idleSettings(Output.of(idleSettings)); + } + + public DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java new file mode 100644 index 00000000000..445d7348a86 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java @@ -0,0 +1,195 @@ +// *** 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.sagemaker.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs Empty = new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + @Import(name="idleTimeoutInMinutes") + private @Nullable Output idleTimeoutInMinutes; + + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional> idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + @Import(name="lifecycleManagement") + private @Nullable Output lifecycleManagement; + + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + public Optional> lifecycleManagement() { + return Optional.ofNullable(this.lifecycleManagement); + } + + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + @Import(name="maxIdleTimeoutInMinutes") + private @Nullable Output maxIdleTimeoutInMinutes; + + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional> maxIdleTimeoutInMinutes() { + return Optional.ofNullable(this.maxIdleTimeoutInMinutes); + } + + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + @Import(name="minIdleTimeoutInMinutes") + private @Nullable Output minIdleTimeoutInMinutes; + + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional> minIdleTimeoutInMinutes() { + return Optional.ofNullable(this.minIdleTimeoutInMinutes); + } + + private DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs() {} + + private DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs $) { + this.idleTimeoutInMinutes = $.idleTimeoutInMinutes; + this.lifecycleManagement = $.lifecycleManagement; + this.maxIdleTimeoutInMinutes = $.maxIdleTimeoutInMinutes; + this.minIdleTimeoutInMinutes = $.minIdleTimeoutInMinutes; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs $; + + public Builder() { + $ = new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } + + public Builder(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + $ = new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(@Nullable Output idleTimeoutInMinutes) { + $.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(Integer idleTimeoutInMinutes) { + return idleTimeoutInMinutes(Output.of(idleTimeoutInMinutes)); + } + + /** + * @param lifecycleManagement Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder lifecycleManagement(@Nullable Output lifecycleManagement) { + $.lifecycleManagement = lifecycleManagement; + return this; + } + + /** + * @param lifecycleManagement Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder lifecycleManagement(String lifecycleManagement) { + return lifecycleManagement(Output.of(lifecycleManagement)); + } + + /** + * @param maxIdleTimeoutInMinutes The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder maxIdleTimeoutInMinutes(@Nullable Output maxIdleTimeoutInMinutes) { + $.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + return this; + } + + /** + * @param maxIdleTimeoutInMinutes The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder maxIdleTimeoutInMinutes(Integer maxIdleTimeoutInMinutes) { + return maxIdleTimeoutInMinutes(Output.of(maxIdleTimeoutInMinutes)); + } + + /** + * @param minIdleTimeoutInMinutes The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder minIdleTimeoutInMinutes(@Nullable Output minIdleTimeoutInMinutes) { + $.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return this; + } + + /** + * @param minIdleTimeoutInMinutes The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder minIdleTimeoutInMinutes(Integer minIdleTimeoutInMinutes) { + return minIdleTimeoutInMinutes(Output.of(minIdleTimeoutInMinutes)); + } + + public DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsArgs.java index 8c8cdaa23fb..b109f19dff1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsArgs.java @@ -3,9 +3,11 @@ package com.pulumi.aws.sagemaker.inputs; +import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArgs; import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs; +import com.pulumi.aws.sagemaker.inputs.DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.String; @@ -19,6 +21,36 @@ public final class DomainDefaultUserSettingsJupyterLabAppSettingsArgs extends co public static final DomainDefaultUserSettingsJupyterLabAppSettingsArgs Empty = new DomainDefaultUserSettingsJupyterLabAppSettingsArgs(); + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + @Import(name="appLifecycleManagement") + private @Nullable Output appLifecycleManagement; + + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + public Optional> appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + @Import(name="builtInLifecycleConfigArn") + private @Nullable Output builtInLifecycleConfigArn; + + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + public Optional> builtInLifecycleConfigArn() { + return Optional.ofNullable(this.builtInLifecycleConfigArn); + } + /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. * @@ -64,6 +96,21 @@ public Optional emrSettings; + + /** + * @return The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + */ + public Optional> emrSettings() { + return Optional.ofNullable(this.emrSettings); + } + /** * The Amazon Resource Name (ARN) of the Lifecycle Configurations. * @@ -82,9 +129,12 @@ public Optional>> lifecycleConfigArns() { private DomainDefaultUserSettingsJupyterLabAppSettingsArgs() {} private DomainDefaultUserSettingsJupyterLabAppSettingsArgs(DomainDefaultUserSettingsJupyterLabAppSettingsArgs $) { + this.appLifecycleManagement = $.appLifecycleManagement; + this.builtInLifecycleConfigArn = $.builtInLifecycleConfigArn; this.codeRepositories = $.codeRepositories; this.customImages = $.customImages; this.defaultResourceSpec = $.defaultResourceSpec; + this.emrSettings = $.emrSettings; this.lifecycleConfigArns = $.lifecycleConfigArns; } @@ -106,6 +156,48 @@ public Builder(DomainDefaultUserSettingsJupyterLabAppSettingsArgs defaults) { $ = new DomainDefaultUserSettingsJupyterLabAppSettingsArgs(Objects.requireNonNull(defaults)); } + /** + * @param appLifecycleManagement Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(@Nullable Output appLifecycleManagement) { + $.appLifecycleManagement = appLifecycleManagement; + return this; + } + + /** + * @param appLifecycleManagement Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs appLifecycleManagement) { + return appLifecycleManagement(Output.of(appLifecycleManagement)); + } + + /** + * @param builtInLifecycleConfigArn The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + * @return builder + * + */ + public Builder builtInLifecycleConfigArn(@Nullable Output builtInLifecycleConfigArn) { + $.builtInLifecycleConfigArn = builtInLifecycleConfigArn; + return this; + } + + /** + * @param builtInLifecycleConfigArn The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + * @return builder + * + */ + public Builder builtInLifecycleConfigArn(String builtInLifecycleConfigArn) { + return builtInLifecycleConfigArn(Output.of(builtInLifecycleConfigArn)); + } + /** * @param codeRepositories A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. * @@ -189,6 +281,27 @@ public Builder defaultResourceSpec(DomainDefaultUserSettingsJupyterLabAppSetting return defaultResourceSpec(Output.of(defaultResourceSpec)); } + /** + * @param emrSettings The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + * @return builder + * + */ + public Builder emrSettings(@Nullable Output emrSettings) { + $.emrSettings = emrSettings; + return this; + } + + /** + * @param emrSettings The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + * @return builder + * + */ + public Builder emrSettings(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs emrSettings) { + return emrSettings(Output.of(emrSettings)); + } + /** * @param lifecycleConfigArns The Amazon Resource Name (ARN) of the Lifecycle Configurations. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs.java new file mode 100644 index 00000000000..7fe26f2c61c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs.java @@ -0,0 +1,141 @@ +// *** 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.sagemaker.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 DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs Empty = new DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs(); + + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + @Import(name="assumableRoleArns") + private @Nullable Output> assumableRoleArns; + + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + public Optional>> assumableRoleArns() { + return Optional.ofNullable(this.assumableRoleArns); + } + + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + @Import(name="executionRoleArns") + private @Nullable Output> executionRoleArns; + + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + public Optional>> executionRoleArns() { + return Optional.ofNullable(this.executionRoleArns); + } + + private DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs() {} + + private DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs $) { + this.assumableRoleArns = $.assumableRoleArns; + this.executionRoleArns = $.executionRoleArns; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs $; + + public Builder() { + $ = new DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs(); + } + + public Builder(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs defaults) { + $ = new DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param assumableRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + * @return builder + * + */ + public Builder assumableRoleArns(@Nullable Output> assumableRoleArns) { + $.assumableRoleArns = assumableRoleArns; + return this; + } + + /** + * @param assumableRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + * @return builder + * + */ + public Builder assumableRoleArns(List assumableRoleArns) { + return assumableRoleArns(Output.of(assumableRoleArns)); + } + + /** + * @param assumableRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + * @return builder + * + */ + public Builder assumableRoleArns(String... assumableRoleArns) { + return assumableRoleArns(List.of(assumableRoleArns)); + } + + /** + * @param executionRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + * @return builder + * + */ + public Builder executionRoleArns(@Nullable Output> executionRoleArns) { + $.executionRoleArns = executionRoleArns; + return this; + } + + /** + * @param executionRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + * @return builder + * + */ + public Builder executionRoleArns(List executionRoleArns) { + return executionRoleArns(Output.of(executionRoleArns)); + } + + /** + * @param executionRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + * @return builder + * + */ + public Builder executionRoleArns(String... executionRoleArns) { + return executionRoleArns(List.of(executionRoleArns)); + } + + public DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsStudioWebPortalSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsStudioWebPortalSettingsArgs.java index 8d4b37cddd7..398db888128 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsStudioWebPortalSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainDefaultUserSettingsStudioWebPortalSettingsArgs.java @@ -31,6 +31,21 @@ public Optional>> hiddenAppTypes() { return Optional.ofNullable(this.hiddenAppTypes); } + /** + * The instance types you are hiding from the Studio user interface. + * + */ + @Import(name="hiddenInstanceTypes") + private @Nullable Output> hiddenInstanceTypes; + + /** + * @return The instance types you are hiding from the Studio user interface. + * + */ + public Optional>> hiddenInstanceTypes() { + return Optional.ofNullable(this.hiddenInstanceTypes); + } + /** * The machine learning tools that are hidden from the Studio left navigation pane. * @@ -50,6 +65,7 @@ private DomainDefaultUserSettingsStudioWebPortalSettingsArgs() {} private DomainDefaultUserSettingsStudioWebPortalSettingsArgs(DomainDefaultUserSettingsStudioWebPortalSettingsArgs $) { this.hiddenAppTypes = $.hiddenAppTypes; + this.hiddenInstanceTypes = $.hiddenInstanceTypes; this.hiddenMlTools = $.hiddenMlTools; } @@ -102,6 +118,37 @@ public Builder hiddenAppTypes(String... hiddenAppTypes) { return hiddenAppTypes(List.of(hiddenAppTypes)); } + /** + * @param hiddenInstanceTypes The instance types you are hiding from the Studio user interface. + * + * @return builder + * + */ + public Builder hiddenInstanceTypes(@Nullable Output> hiddenInstanceTypes) { + $.hiddenInstanceTypes = hiddenInstanceTypes; + return this; + } + + /** + * @param hiddenInstanceTypes The instance types you are hiding from the Studio user interface. + * + * @return builder + * + */ + public Builder hiddenInstanceTypes(List hiddenInstanceTypes) { + return hiddenInstanceTypes(Output.of(hiddenInstanceTypes)); + } + + /** + * @param hiddenInstanceTypes The instance types you are hiding from the Studio user interface. + * + * @return builder + * + */ + public Builder hiddenInstanceTypes(String... hiddenInstanceTypes) { + return hiddenInstanceTypes(List.of(hiddenInstanceTypes)); + } + /** * @param hiddenMlTools The machine learning tools that are hidden from the Studio left navigation pane. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainState.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainState.java index 8eb39587331..06ecff83dd4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/DomainState.java @@ -246,6 +246,21 @@ public Optional>> subnetIds() { return Optional.ofNullable(this.subnetIds); } + /** + * Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + * + */ + @Import(name="tagPropagation") + private @Nullable Output tagPropagation; + + /** + * @return Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + * + */ + public Optional> tagPropagation() { + return Optional.ofNullable(this.tagPropagation); + } + /** * A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. * @@ -336,6 +351,7 @@ private DomainState(DomainState $) { this.singleSignOnApplicationArn = $.singleSignOnApplicationArn; this.singleSignOnManagedApplicationInstanceId = $.singleSignOnManagedApplicationInstanceId; this.subnetIds = $.subnetIds; + this.tagPropagation = $.tagPropagation; this.tags = $.tags; this.tagsAll = $.tagsAll; this.url = $.url; @@ -685,6 +701,27 @@ public Builder subnetIds(String... subnetIds) { return subnetIds(List.of(subnetIds)); } + /** + * @param tagPropagation Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder tagPropagation(@Nullable Output tagPropagation) { + $.tagPropagation = tagPropagation; + return this; + } + + /** + * @param tagPropagation Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder tagPropagation(String tagPropagation) { + return tagPropagation(Output.of(tagPropagation)); + } + /** * @param tags A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupFeatureDefinitionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupFeatureDefinitionArgs.java index 0de97c0c2d2..eddbca6ef4c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupFeatureDefinitionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupFeatureDefinitionArgs.java @@ -3,6 +3,7 @@ package com.pulumi.aws.sagemaker.inputs; +import com.pulumi.aws.sagemaker.inputs.FeatureGroupFeatureDefinitionCollectionConfigArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.String; @@ -15,6 +16,20 @@ public final class FeatureGroupFeatureDefinitionArgs extends com.pulumi.resource public static final FeatureGroupFeatureDefinitionArgs Empty = new FeatureGroupFeatureDefinitionArgs(); + @Import(name="collectionConfig") + private @Nullable Output collectionConfig; + + public Optional> collectionConfig() { + return Optional.ofNullable(this.collectionConfig); + } + + @Import(name="collectionType") + private @Nullable Output collectionType; + + public Optional> collectionType() { + return Optional.ofNullable(this.collectionType); + } + /** * The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. * @@ -48,6 +63,8 @@ public Optional> featureType() { private FeatureGroupFeatureDefinitionArgs() {} private FeatureGroupFeatureDefinitionArgs(FeatureGroupFeatureDefinitionArgs $) { + this.collectionConfig = $.collectionConfig; + this.collectionType = $.collectionType; this.featureName = $.featureName; this.featureType = $.featureType; } @@ -70,6 +87,24 @@ public Builder(FeatureGroupFeatureDefinitionArgs defaults) { $ = new FeatureGroupFeatureDefinitionArgs(Objects.requireNonNull(defaults)); } + public Builder collectionConfig(@Nullable Output collectionConfig) { + $.collectionConfig = collectionConfig; + return this; + } + + public Builder collectionConfig(FeatureGroupFeatureDefinitionCollectionConfigArgs collectionConfig) { + return collectionConfig(Output.of(collectionConfig)); + } + + public Builder collectionType(@Nullable Output collectionType) { + $.collectionType = collectionType; + return this; + } + + public Builder collectionType(String collectionType) { + return collectionType(Output.of(collectionType)); + } + /** * @param featureName The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupFeatureDefinitionCollectionConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupFeatureDefinitionCollectionConfigArgs.java new file mode 100644 index 00000000000..b2351f033d1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupFeatureDefinitionCollectionConfigArgs.java @@ -0,0 +1,63 @@ +// *** 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.sagemaker.inputs; + +import com.pulumi.aws.sagemaker.inputs.FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs; +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 FeatureGroupFeatureDefinitionCollectionConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final FeatureGroupFeatureDefinitionCollectionConfigArgs Empty = new FeatureGroupFeatureDefinitionCollectionConfigArgs(); + + @Import(name="vectorConfig") + private @Nullable Output vectorConfig; + + public Optional> vectorConfig() { + return Optional.ofNullable(this.vectorConfig); + } + + private FeatureGroupFeatureDefinitionCollectionConfigArgs() {} + + private FeatureGroupFeatureDefinitionCollectionConfigArgs(FeatureGroupFeatureDefinitionCollectionConfigArgs $) { + this.vectorConfig = $.vectorConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FeatureGroupFeatureDefinitionCollectionConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FeatureGroupFeatureDefinitionCollectionConfigArgs $; + + public Builder() { + $ = new FeatureGroupFeatureDefinitionCollectionConfigArgs(); + } + + public Builder(FeatureGroupFeatureDefinitionCollectionConfigArgs defaults) { + $ = new FeatureGroupFeatureDefinitionCollectionConfigArgs(Objects.requireNonNull(defaults)); + } + + public Builder vectorConfig(@Nullable Output vectorConfig) { + $.vectorConfig = vectorConfig; + return this; + } + + public Builder vectorConfig(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs vectorConfig) { + return vectorConfig(Output.of(vectorConfig)); + } + + public FeatureGroupFeatureDefinitionCollectionConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs.java new file mode 100644 index 00000000000..54dc608f18b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs.java @@ -0,0 +1,63 @@ +// *** 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.sagemaker.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs Empty = new FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs(); + + @Import(name="dimension") + private @Nullable Output dimension; + + public Optional> dimension() { + return Optional.ofNullable(this.dimension); + } + + private FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs() {} + + private FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs $) { + this.dimension = $.dimension; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs $; + + public Builder() { + $ = new FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs(); + } + + public Builder(FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs defaults) { + $ = new FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs(Objects.requireNonNull(defaults)); + } + + public Builder dimension(@Nullable Output dimension) { + $.dimension = dimension; + return this; + } + + public Builder dimension(Integer dimension) { + return dimension(Output.of(dimension)); + } + + public FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupState.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupState.java index 67adbc175aa..28c3403ad3c 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupState.java @@ -6,6 +6,7 @@ import com.pulumi.aws.sagemaker.inputs.FeatureGroupFeatureDefinitionArgs; import com.pulumi.aws.sagemaker.inputs.FeatureGroupOfflineStoreConfigArgs; import com.pulumi.aws.sagemaker.inputs.FeatureGroupOnlineStoreConfigArgs; +import com.pulumi.aws.sagemaker.inputs.FeatureGroupThroughputConfigArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.String; @@ -193,6 +194,13 @@ public Optional>> tagsAll() { return Optional.ofNullable(this.tagsAll); } + @Import(name="throughputConfig") + private @Nullable Output throughputConfig; + + public Optional> throughputConfig() { + return Optional.ofNullable(this.throughputConfig); + } + private FeatureGroupState() {} private FeatureGroupState(FeatureGroupState $) { @@ -207,6 +215,7 @@ private FeatureGroupState(FeatureGroupState $) { this.roleArn = $.roleArn; this.tags = $.tags; this.tagsAll = $.tagsAll; + this.throughputConfig = $.throughputConfig; } public static Builder builder() { @@ -476,6 +485,15 @@ public Builder tagsAll(Map tagsAll) { return tagsAll(Output.of(tagsAll)); } + public Builder throughputConfig(@Nullable Output throughputConfig) { + $.throughputConfig = throughputConfig; + return this; + } + + public Builder throughputConfig(FeatureGroupThroughputConfigArgs throughputConfig) { + return throughputConfig(Output.of(throughputConfig)); + } + public FeatureGroupState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupThroughputConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupThroughputConfigArgs.java new file mode 100644 index 00000000000..39b24291413 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/FeatureGroupThroughputConfigArgs.java @@ -0,0 +1,98 @@ +// *** 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.sagemaker.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FeatureGroupThroughputConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final FeatureGroupThroughputConfigArgs Empty = new FeatureGroupThroughputConfigArgs(); + + @Import(name="provisionedReadCapacityUnits") + private @Nullable Output provisionedReadCapacityUnits; + + public Optional> provisionedReadCapacityUnits() { + return Optional.ofNullable(this.provisionedReadCapacityUnits); + } + + @Import(name="provisionedWriteCapacityUnits") + private @Nullable Output provisionedWriteCapacityUnits; + + public Optional> provisionedWriteCapacityUnits() { + return Optional.ofNullable(this.provisionedWriteCapacityUnits); + } + + @Import(name="throughputMode") + private @Nullable Output throughputMode; + + public Optional> throughputMode() { + return Optional.ofNullable(this.throughputMode); + } + + private FeatureGroupThroughputConfigArgs() {} + + private FeatureGroupThroughputConfigArgs(FeatureGroupThroughputConfigArgs $) { + this.provisionedReadCapacityUnits = $.provisionedReadCapacityUnits; + this.provisionedWriteCapacityUnits = $.provisionedWriteCapacityUnits; + this.throughputMode = $.throughputMode; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FeatureGroupThroughputConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FeatureGroupThroughputConfigArgs $; + + public Builder() { + $ = new FeatureGroupThroughputConfigArgs(); + } + + public Builder(FeatureGroupThroughputConfigArgs defaults) { + $ = new FeatureGroupThroughputConfigArgs(Objects.requireNonNull(defaults)); + } + + public Builder provisionedReadCapacityUnits(@Nullable Output provisionedReadCapacityUnits) { + $.provisionedReadCapacityUnits = provisionedReadCapacityUnits; + return this; + } + + public Builder provisionedReadCapacityUnits(Integer provisionedReadCapacityUnits) { + return provisionedReadCapacityUnits(Output.of(provisionedReadCapacityUnits)); + } + + public Builder provisionedWriteCapacityUnits(@Nullable Output provisionedWriteCapacityUnits) { + $.provisionedWriteCapacityUnits = provisionedWriteCapacityUnits; + return this; + } + + public Builder provisionedWriteCapacityUnits(Integer provisionedWriteCapacityUnits) { + return provisionedWriteCapacityUnits(Output.of(provisionedWriteCapacityUnits)); + } + + public Builder throughputMode(@Nullable Output throughputMode) { + $.throughputMode = throughputMode; + return this; + } + + public Builder throughputMode(String throughputMode) { + return throughputMode(Output.of(throughputMode)); + } + + public FeatureGroupThroughputConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/HubS3StorageConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/HubS3StorageConfigArgs.java new file mode 100644 index 00000000000..26c70bebd65 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/HubS3StorageConfigArgs.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.sagemaker.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 HubS3StorageConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final HubS3StorageConfigArgs Empty = new HubS3StorageConfigArgs(); + + /** + * The Amazon S3 bucket prefix for hosting hub content.interface. + * + */ + @Import(name="s3OutputPath") + private @Nullable Output s3OutputPath; + + /** + * @return The Amazon S3 bucket prefix for hosting hub content.interface. + * + */ + public Optional> s3OutputPath() { + return Optional.ofNullable(this.s3OutputPath); + } + + private HubS3StorageConfigArgs() {} + + private HubS3StorageConfigArgs(HubS3StorageConfigArgs $) { + this.s3OutputPath = $.s3OutputPath; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(HubS3StorageConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private HubS3StorageConfigArgs $; + + public Builder() { + $ = new HubS3StorageConfigArgs(); + } + + public Builder(HubS3StorageConfigArgs defaults) { + $ = new HubS3StorageConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param s3OutputPath The Amazon S3 bucket prefix for hosting hub content.interface. + * + * @return builder + * + */ + public Builder s3OutputPath(@Nullable Output s3OutputPath) { + $.s3OutputPath = s3OutputPath; + return this; + } + + /** + * @param s3OutputPath The Amazon S3 bucket prefix for hosting hub content.interface. + * + * @return builder + * + */ + public Builder s3OutputPath(String s3OutputPath) { + return s3OutputPath(Output.of(s3OutputPath)); + } + + public HubS3StorageConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/HubState.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/HubState.java new file mode 100644 index 00000000000..7804cca9eca --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/HubState.java @@ -0,0 +1,371 @@ +// *** 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.sagemaker.inputs; + +import com.pulumi.aws.sagemaker.inputs.HubS3StorageConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class HubState extends com.pulumi.resources.ResourceArgs { + + public static final HubState Empty = new HubState(); + + /** + * The Amazon Resource Name (ARN) assigned by AWS to this Hub. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return The Amazon Resource Name (ARN) assigned by AWS to this Hub. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * A description of the hub. + * + */ + @Import(name="hubDescription") + private @Nullable Output hubDescription; + + /** + * @return A description of the hub. + * + */ + public Optional> hubDescription() { + return Optional.ofNullable(this.hubDescription); + } + + /** + * The display name of the hub. + * + */ + @Import(name="hubDisplayName") + private @Nullable Output hubDisplayName; + + /** + * @return The display name of the hub. + * + */ + public Optional> hubDisplayName() { + return Optional.ofNullable(this.hubDisplayName); + } + + /** + * The name of the hub. + * + */ + @Import(name="hubName") + private @Nullable Output hubName; + + /** + * @return The name of the hub. + * + */ + public Optional> hubName() { + return Optional.ofNullable(this.hubName); + } + + /** + * The searchable keywords for the hub. + * + */ + @Import(name="hubSearchKeywords") + private @Nullable Output> hubSearchKeywords; + + /** + * @return The searchable keywords for the hub. + * + */ + public Optional>> hubSearchKeywords() { + return Optional.ofNullable(this.hubSearchKeywords); + } + + /** + * The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + * + */ + @Import(name="s3StorageConfig") + private @Nullable Output s3StorageConfig; + + /** + * @return The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + * + */ + public Optional> s3StorageConfig() { + return Optional.ofNullable(this.s3StorageConfig); + } + + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + private HubState() {} + + private HubState(HubState $) { + this.arn = $.arn; + this.hubDescription = $.hubDescription; + this.hubDisplayName = $.hubDisplayName; + this.hubName = $.hubName; + this.hubSearchKeywords = $.hubSearchKeywords; + this.s3StorageConfig = $.s3StorageConfig; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(HubState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private HubState $; + + public Builder() { + $ = new HubState(); + } + + public Builder(HubState defaults) { + $ = new HubState(Objects.requireNonNull(defaults)); + } + + /** + * @param arn The Amazon Resource Name (ARN) assigned by AWS to this Hub. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn The Amazon Resource Name (ARN) assigned by AWS to this Hub. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param hubDescription A description of the hub. + * + * @return builder + * + */ + public Builder hubDescription(@Nullable Output hubDescription) { + $.hubDescription = hubDescription; + return this; + } + + /** + * @param hubDescription A description of the hub. + * + * @return builder + * + */ + public Builder hubDescription(String hubDescription) { + return hubDescription(Output.of(hubDescription)); + } + + /** + * @param hubDisplayName The display name of the hub. + * + * @return builder + * + */ + public Builder hubDisplayName(@Nullable Output hubDisplayName) { + $.hubDisplayName = hubDisplayName; + return this; + } + + /** + * @param hubDisplayName The display name of the hub. + * + * @return builder + * + */ + public Builder hubDisplayName(String hubDisplayName) { + return hubDisplayName(Output.of(hubDisplayName)); + } + + /** + * @param hubName The name of the hub. + * + * @return builder + * + */ + public Builder hubName(@Nullable Output hubName) { + $.hubName = hubName; + return this; + } + + /** + * @param hubName The name of the hub. + * + * @return builder + * + */ + public Builder hubName(String hubName) { + return hubName(Output.of(hubName)); + } + + /** + * @param hubSearchKeywords The searchable keywords for the hub. + * + * @return builder + * + */ + public Builder hubSearchKeywords(@Nullable Output> hubSearchKeywords) { + $.hubSearchKeywords = hubSearchKeywords; + return this; + } + + /** + * @param hubSearchKeywords The searchable keywords for the hub. + * + * @return builder + * + */ + public Builder hubSearchKeywords(List hubSearchKeywords) { + return hubSearchKeywords(Output.of(hubSearchKeywords)); + } + + /** + * @param hubSearchKeywords The searchable keywords for the hub. + * + * @return builder + * + */ + public Builder hubSearchKeywords(String... hubSearchKeywords) { + return hubSearchKeywords(List.of(hubSearchKeywords)); + } + + /** + * @param s3StorageConfig The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + * + * @return builder + * + */ + public Builder s3StorageConfig(@Nullable Output s3StorageConfig) { + $.s3StorageConfig = s3StorageConfig; + return this; + } + + /** + * @param s3StorageConfig The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + * + * @return builder + * + */ + public Builder s3StorageConfig(HubS3StorageConfigArgs s3StorageConfig) { + return s3StorageConfig(Output.of(s3StorageConfig)); + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + public HubState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/MlflowTrackingServerState.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/MlflowTrackingServerState.java new file mode 100644 index 00000000000..c07847a92f3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/MlflowTrackingServerState.java @@ -0,0 +1,471 @@ +// *** 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.sagemaker.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MlflowTrackingServerState extends com.pulumi.resources.ResourceArgs { + + public static final MlflowTrackingServerState Empty = new MlflowTrackingServerState(); + + /** + * The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + * + */ + @Import(name="artifactStoreUri") + private @Nullable Output artifactStoreUri; + + /** + * @return The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + * + */ + public Optional> artifactStoreUri() { + return Optional.ofNullable(this.artifactStoreUri); + } + + /** + * A list of Member Definitions that contains objects that identify the workers that make up the work team. + * + */ + @Import(name="automaticModelRegistration") + private @Nullable Output automaticModelRegistration; + + /** + * @return A list of Member Definitions that contains objects that identify the workers that make up the work team. + * + */ + public Optional> automaticModelRegistration() { + return Optional.ofNullable(this.automaticModelRegistration); + } + + /** + * The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + * + */ + @Import(name="mlflowVersion") + private @Nullable Output mlflowVersion; + + /** + * @return The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + * + */ + public Optional> mlflowVersion() { + return Optional.ofNullable(this.mlflowVersion); + } + + /** + * The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + * + */ + @Import(name="roleArn") + private @Nullable Output roleArn; + + /** + * @return The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + * + */ + public Optional> roleArn() { + return Optional.ofNullable(this.roleArn); + } + + /** + * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + /** + * A unique string identifying the tracking server name. This string is part of the tracking server ARN. + * + */ + @Import(name="trackingServerName") + private @Nullable Output trackingServerName; + + /** + * @return A unique string identifying the tracking server name. This string is part of the tracking server ARN. + * + */ + public Optional> trackingServerName() { + return Optional.ofNullable(this.trackingServerName); + } + + /** + * The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + * + */ + @Import(name="trackingServerSize") + private @Nullable Output trackingServerSize; + + /** + * @return The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + * + */ + public Optional> trackingServerSize() { + return Optional.ofNullable(this.trackingServerSize); + } + + /** + * The URL to connect to the MLflow user interface for the described tracking server. + * + */ + @Import(name="trackingServerUrl") + private @Nullable Output trackingServerUrl; + + /** + * @return The URL to connect to the MLflow user interface for the described tracking server. + * + */ + public Optional> trackingServerUrl() { + return Optional.ofNullable(this.trackingServerUrl); + } + + /** + * The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + * + */ + @Import(name="weeklyMaintenanceWindowStart") + private @Nullable Output weeklyMaintenanceWindowStart; + + /** + * @return The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + * + */ + public Optional> weeklyMaintenanceWindowStart() { + return Optional.ofNullable(this.weeklyMaintenanceWindowStart); + } + + private MlflowTrackingServerState() {} + + private MlflowTrackingServerState(MlflowTrackingServerState $) { + this.arn = $.arn; + this.artifactStoreUri = $.artifactStoreUri; + this.automaticModelRegistration = $.automaticModelRegistration; + this.mlflowVersion = $.mlflowVersion; + this.roleArn = $.roleArn; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.trackingServerName = $.trackingServerName; + this.trackingServerSize = $.trackingServerSize; + this.trackingServerUrl = $.trackingServerUrl; + this.weeklyMaintenanceWindowStart = $.weeklyMaintenanceWindowStart; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MlflowTrackingServerState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MlflowTrackingServerState $; + + public Builder() { + $ = new MlflowTrackingServerState(); + } + + public Builder(MlflowTrackingServerState defaults) { + $ = new MlflowTrackingServerState(Objects.requireNonNull(defaults)); + } + + /** + * @param arn The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param artifactStoreUri The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + * + * @return builder + * + */ + public Builder artifactStoreUri(@Nullable Output artifactStoreUri) { + $.artifactStoreUri = artifactStoreUri; + return this; + } + + /** + * @param artifactStoreUri The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + * + * @return builder + * + */ + public Builder artifactStoreUri(String artifactStoreUri) { + return artifactStoreUri(Output.of(artifactStoreUri)); + } + + /** + * @param automaticModelRegistration A list of Member Definitions that contains objects that identify the workers that make up the work team. + * + * @return builder + * + */ + public Builder automaticModelRegistration(@Nullable Output automaticModelRegistration) { + $.automaticModelRegistration = automaticModelRegistration; + return this; + } + + /** + * @param automaticModelRegistration A list of Member Definitions that contains objects that identify the workers that make up the work team. + * + * @return builder + * + */ + public Builder automaticModelRegistration(Boolean automaticModelRegistration) { + return automaticModelRegistration(Output.of(automaticModelRegistration)); + } + + /** + * @param mlflowVersion The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + * + * @return builder + * + */ + public Builder mlflowVersion(@Nullable Output mlflowVersion) { + $.mlflowVersion = mlflowVersion; + return this; + } + + /** + * @param mlflowVersion The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + * + * @return builder + * + */ + public Builder mlflowVersion(String mlflowVersion) { + return mlflowVersion(Output.of(mlflowVersion)); + } + + /** + * @param roleArn The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + * + * @return builder + * + */ + public Builder roleArn(@Nullable Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + /** + * @param trackingServerName A unique string identifying the tracking server name. This string is part of the tracking server ARN. + * + * @return builder + * + */ + public Builder trackingServerName(@Nullable Output trackingServerName) { + $.trackingServerName = trackingServerName; + return this; + } + + /** + * @param trackingServerName A unique string identifying the tracking server name. This string is part of the tracking server ARN. + * + * @return builder + * + */ + public Builder trackingServerName(String trackingServerName) { + return trackingServerName(Output.of(trackingServerName)); + } + + /** + * @param trackingServerSize The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + * + * @return builder + * + */ + public Builder trackingServerSize(@Nullable Output trackingServerSize) { + $.trackingServerSize = trackingServerSize; + return this; + } + + /** + * @param trackingServerSize The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + * + * @return builder + * + */ + public Builder trackingServerSize(String trackingServerSize) { + return trackingServerSize(Output.of(trackingServerSize)); + } + + /** + * @param trackingServerUrl The URL to connect to the MLflow user interface for the described tracking server. + * + * @return builder + * + */ + public Builder trackingServerUrl(@Nullable Output trackingServerUrl) { + $.trackingServerUrl = trackingServerUrl; + return this; + } + + /** + * @param trackingServerUrl The URL to connect to the MLflow user interface for the described tracking server. + * + * @return builder + * + */ + public Builder trackingServerUrl(String trackingServerUrl) { + return trackingServerUrl(Output.of(trackingServerUrl)); + } + + /** + * @param weeklyMaintenanceWindowStart The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + * + * @return builder + * + */ + public Builder weeklyMaintenanceWindowStart(@Nullable Output weeklyMaintenanceWindowStart) { + $.weeklyMaintenanceWindowStart = weeklyMaintenanceWindowStart; + return this; + } + + /** + * @param weeklyMaintenanceWindowStart The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + * + * @return builder + * + */ + public Builder weeklyMaintenanceWindowStart(String weeklyMaintenanceWindowStart) { + return weeklyMaintenanceWindowStart(Output.of(weeklyMaintenanceWindowStart)); + } + + public MlflowTrackingServerState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.java new file mode 100644 index 00000000000..ce0b2bd5866 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.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.sagemaker.inputs; + +import com.pulumi.aws.sagemaker.inputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs; +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 SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs extends com.pulumi.resources.ResourceArgs { + + public static final SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs Empty = new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(); + + /** + * Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + */ + @Import(name="idleSettings") + private @Nullable Output idleSettings; + + /** + * @return Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + */ + public Optional> idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + private SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs() {} + + private SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs $) { + this.idleSettings = $.idleSettings; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs $; + + public Builder() { + $ = new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(); + } + + public Builder(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs defaults) { + $ = new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(@Nullable Output idleSettings) { + $.idleSettings = idleSettings; + return this; + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs idleSettings) { + return idleSettings(Output.of(idleSettings)); + } + + public SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.java new file mode 100644 index 00000000000..14e58452d92 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.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.sagemaker.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs Empty = new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(); + + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + @Import(name="idleTimeoutInMinutes") + private @Nullable Output idleTimeoutInMinutes; + + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional> idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + + private SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs() {} + + private SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs $) { + this.idleTimeoutInMinutes = $.idleTimeoutInMinutes; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs $; + + public Builder() { + $ = new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } + + public Builder(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + $ = new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(@Nullable Output idleTimeoutInMinutes) { + $.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(Integer idleTimeoutInMinutes) { + return idleTimeoutInMinutes(Output.of(idleTimeoutInMinutes)); + } + + public SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.java index c994ea56303..206b6d86c4a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsCodeEditorAppSettingsArgs.java @@ -3,17 +3,35 @@ package com.pulumi.aws.sagemaker.inputs; +import com.pulumi.aws.sagemaker.inputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs; import com.pulumi.aws.sagemaker.inputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; public final class SpaceSpaceSettingsCodeEditorAppSettingsArgs extends com.pulumi.resources.ResourceArgs { public static final SpaceSpaceSettingsCodeEditorAppSettingsArgs Empty = new SpaceSpaceSettingsCodeEditorAppSettingsArgs(); + /** + * Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + */ + @Import(name="appLifecycleManagement") + private @Nullable Output appLifecycleManagement; + + /** + * @return Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + */ + public Optional> appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + /** * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * @@ -32,6 +50,7 @@ public Output de private SpaceSpaceSettingsCodeEditorAppSettingsArgs() {} private SpaceSpaceSettingsCodeEditorAppSettingsArgs(SpaceSpaceSettingsCodeEditorAppSettingsArgs $) { + this.appLifecycleManagement = $.appLifecycleManagement; this.defaultResourceSpec = $.defaultResourceSpec; } @@ -53,6 +72,27 @@ public Builder(SpaceSpaceSettingsCodeEditorAppSettingsArgs defaults) { $ = new SpaceSpaceSettingsCodeEditorAppSettingsArgs(Objects.requireNonNull(defaults)); } + /** + * @param appLifecycleManagement Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(@Nullable Output appLifecycleManagement) { + $.appLifecycleManagement = appLifecycleManagement; + return this; + } + + /** + * @param appLifecycleManagement Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs appLifecycleManagement) { + return appLifecycleManagement(Output.of(appLifecycleManagement)); + } + /** * @param defaultResourceSpec The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.java new file mode 100644 index 00000000000..873d101e4c3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.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.sagemaker.inputs; + +import com.pulumi.aws.sagemaker.inputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs; +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 SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs extends com.pulumi.resources.ResourceArgs { + + public static final SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs Empty = new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + + /** + * Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + */ + @Import(name="idleSettings") + private @Nullable Output idleSettings; + + /** + * @return Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + */ + public Optional> idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + private SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs() {} + + private SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs $) { + this.idleSettings = $.idleSettings; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs $; + + public Builder() { + $ = new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + } + + public Builder(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs defaults) { + $ = new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(@Nullable Output idleSettings) { + $.idleSettings = idleSettings; + return this; + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs idleSettings) { + return idleSettings(Output.of(idleSettings)); + } + + public SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java new file mode 100644 index 00000000000..1168fd77f0d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.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.sagemaker.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs Empty = new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + @Import(name="idleTimeoutInMinutes") + private @Nullable Output idleTimeoutInMinutes; + + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional> idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + + private SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs() {} + + private SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs $) { + this.idleTimeoutInMinutes = $.idleTimeoutInMinutes; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs $; + + public Builder() { + $ = new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } + + public Builder(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + $ = new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(@Nullable Output idleTimeoutInMinutes) { + $.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(Integer idleTimeoutInMinutes) { + return idleTimeoutInMinutes(Output.of(idleTimeoutInMinutes)); + } + + public SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.java index faa3f4e8b52..715289458ae 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/SpaceSpaceSettingsJupyterLabAppSettingsArgs.java @@ -3,6 +3,7 @@ package com.pulumi.aws.sagemaker.inputs; +import com.pulumi.aws.sagemaker.inputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs; import com.pulumi.aws.sagemaker.inputs.SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs; import com.pulumi.aws.sagemaker.inputs.SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs; import com.pulumi.core.Output; @@ -18,6 +19,21 @@ public final class SpaceSpaceSettingsJupyterLabAppSettingsArgs extends com.pulum public static final SpaceSpaceSettingsJupyterLabAppSettingsArgs Empty = new SpaceSpaceSettingsJupyterLabAppSettingsArgs(); + /** + * Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + */ + @Import(name="appLifecycleManagement") + private @Nullable Output appLifecycleManagement; + + /** + * @return Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + */ + public Optional> appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * @@ -51,6 +67,7 @@ public Output de private SpaceSpaceSettingsJupyterLabAppSettingsArgs() {} private SpaceSpaceSettingsJupyterLabAppSettingsArgs(SpaceSpaceSettingsJupyterLabAppSettingsArgs $) { + this.appLifecycleManagement = $.appLifecycleManagement; this.codeRepositories = $.codeRepositories; this.defaultResourceSpec = $.defaultResourceSpec; } @@ -73,6 +90,27 @@ public Builder(SpaceSpaceSettingsJupyterLabAppSettingsArgs defaults) { $ = new SpaceSpaceSettingsJupyterLabAppSettingsArgs(Objects.requireNonNull(defaults)); } + /** + * @param appLifecycleManagement Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(@Nullable Output appLifecycleManagement) { + $.appLifecycleManagement = appLifecycleManagement; + return this; + } + + /** + * @param appLifecycleManagement Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs appLifecycleManagement) { + return appLifecycleManagement(Output.of(appLifecycleManagement)); + } + /** * @param codeRepositories A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsArgs.java index d512eca79c8..449984cc388 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsArgs.java @@ -30,6 +30,21 @@ public final class UserProfileUserSettingsArgs extends com.pulumi.resources.Reso public static final UserProfileUserSettingsArgs Empty = new UserProfileUserSettingsArgs(); + /** + * Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + */ + @Import(name="autoMountHomeEfs") + private @Nullable Output autoMountHomeEfs; + + /** + * @return Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + */ + public Optional> autoMountHomeEfs() { + return Optional.ofNullable(this.autoMountHomeEfs); + } + /** * The Canvas app settings. See Canvas App Settings below. * @@ -288,6 +303,7 @@ public Optional> tenso private UserProfileUserSettingsArgs() {} private UserProfileUserSettingsArgs(UserProfileUserSettingsArgs $) { + this.autoMountHomeEfs = $.autoMountHomeEfs; this.canvasAppSettings = $.canvasAppSettings; this.codeEditorAppSettings = $.codeEditorAppSettings; this.customFileSystemConfigs = $.customFileSystemConfigs; @@ -325,6 +341,27 @@ public Builder(UserProfileUserSettingsArgs defaults) { $ = new UserProfileUserSettingsArgs(Objects.requireNonNull(defaults)); } + /** + * @param autoMountHomeEfs Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + * @return builder + * + */ + public Builder autoMountHomeEfs(@Nullable Output autoMountHomeEfs) { + $.autoMountHomeEfs = autoMountHomeEfs; + return this; + } + + /** + * @param autoMountHomeEfs Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + * @return builder + * + */ + public Builder autoMountHomeEfs(String autoMountHomeEfs) { + return autoMountHomeEfs(Output.of(autoMountHomeEfs)); + } + /** * @param canvasAppSettings The Canvas app settings. See Canvas App Settings below. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCanvasAppSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCanvasAppSettingsArgs.java index 284c6c38c17..b16c897ff0b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCanvasAppSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCanvasAppSettingsArgs.java @@ -4,6 +4,7 @@ package com.pulumi.aws.sagemaker.inputs; import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsArgs; +import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs; import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs; import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs; import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsCanvasAppSettingsKendraSettingsArgs; @@ -37,6 +38,21 @@ public Optional emrServerlessSettings; + + /** + * @return The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + * + */ + public Optional> emrServerlessSettings() { + return Optional.ofNullable(this.emrServerlessSettings); + } + @Import(name="generativeAiSettings") private @Nullable Output generativeAiSettings; @@ -123,6 +139,7 @@ private UserProfileUserSettingsCanvasAppSettingsArgs() {} private UserProfileUserSettingsCanvasAppSettingsArgs(UserProfileUserSettingsCanvasAppSettingsArgs $) { this.directDeploySettings = $.directDeploySettings; + this.emrServerlessSettings = $.emrServerlessSettings; this.generativeAiSettings = $.generativeAiSettings; this.identityProviderOauthSettings = $.identityProviderOauthSettings; this.kendraSettings = $.kendraSettings; @@ -170,6 +187,27 @@ public Builder directDeploySettings(UserProfileUserSettingsCanvasAppSettingsDire return directDeploySettings(Output.of(directDeploySettings)); } + /** + * @param emrServerlessSettings The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + * + * @return builder + * + */ + public Builder emrServerlessSettings(@Nullable Output emrServerlessSettings) { + $.emrServerlessSettings = emrServerlessSettings; + return this; + } + + /** + * @param emrServerlessSettings The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + * + * @return builder + * + */ + public Builder emrServerlessSettings(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs emrServerlessSettings) { + return emrServerlessSettings(Output.of(emrServerlessSettings)); + } + public Builder generativeAiSettings(@Nullable Output generativeAiSettings) { $.generativeAiSettings = generativeAiSettings; return this; diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.java new file mode 100644 index 00000000000..56928f705c0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs.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.sagemaker.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 UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs Empty = new UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs(); + + /** + * The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + */ + @Import(name="executionRoleArn") + private @Nullable Output executionRoleArn; + + /** + * @return The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + */ + public Optional> executionRoleArn() { + return Optional.ofNullable(this.executionRoleArn); + } + + /** + * Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + private UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs() {} + + private UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs $) { + this.executionRoleArn = $.executionRoleArn; + this.status = $.status; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs $; + + public Builder() { + $ = new UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs(); + } + + public Builder(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs defaults) { + $ = new UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param executionRoleArn The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + * @return builder + * + */ + public Builder executionRoleArn(@Nullable Output executionRoleArn) { + $.executionRoleArn = executionRoleArn; + return this; + } + + /** + * @param executionRoleArn The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + * @return builder + * + */ + public Builder executionRoleArn(String executionRoleArn) { + return executionRoleArn(Output.of(executionRoleArn)); + } + + /** + * @param status Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + public UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.java new file mode 100644 index 00000000000..adf0c3ec62d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs.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.sagemaker.inputs; + +import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs; +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 UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs extends com.pulumi.resources.ResourceArgs { + + public static final UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs Empty = new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(); + + /** + * Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + @Import(name="idleSettings") + private @Nullable Output idleSettings; + + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + public Optional> idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + private UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs() {} + + private UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs $) { + this.idleSettings = $.idleSettings; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs $; + + public Builder() { + $ = new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(); + } + + public Builder(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs defaults) { + $ = new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(@Nullable Output idleSettings) { + $.idleSettings = idleSettings; + return this; + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs idleSettings) { + return idleSettings(Output.of(idleSettings)); + } + + public UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.java new file mode 100644 index 00000000000..60ef941381f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs.java @@ -0,0 +1,195 @@ +// *** 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.sagemaker.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs Empty = new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(); + + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + @Import(name="idleTimeoutInMinutes") + private @Nullable Output idleTimeoutInMinutes; + + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional> idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + @Import(name="lifecycleManagement") + private @Nullable Output lifecycleManagement; + + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + public Optional> lifecycleManagement() { + return Optional.ofNullable(this.lifecycleManagement); + } + + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + @Import(name="maxIdleTimeoutInMinutes") + private @Nullable Output maxIdleTimeoutInMinutes; + + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional> maxIdleTimeoutInMinutes() { + return Optional.ofNullable(this.maxIdleTimeoutInMinutes); + } + + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + @Import(name="minIdleTimeoutInMinutes") + private @Nullable Output minIdleTimeoutInMinutes; + + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional> minIdleTimeoutInMinutes() { + return Optional.ofNullable(this.minIdleTimeoutInMinutes); + } + + private UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs() {} + + private UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs $) { + this.idleTimeoutInMinutes = $.idleTimeoutInMinutes; + this.lifecycleManagement = $.lifecycleManagement; + this.maxIdleTimeoutInMinutes = $.maxIdleTimeoutInMinutes; + this.minIdleTimeoutInMinutes = $.minIdleTimeoutInMinutes; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs $; + + public Builder() { + $ = new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } + + public Builder(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + $ = new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(@Nullable Output idleTimeoutInMinutes) { + $.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(Integer idleTimeoutInMinutes) { + return idleTimeoutInMinutes(Output.of(idleTimeoutInMinutes)); + } + + /** + * @param lifecycleManagement Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder lifecycleManagement(@Nullable Output lifecycleManagement) { + $.lifecycleManagement = lifecycleManagement; + return this; + } + + /** + * @param lifecycleManagement Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder lifecycleManagement(String lifecycleManagement) { + return lifecycleManagement(Output.of(lifecycleManagement)); + } + + /** + * @param maxIdleTimeoutInMinutes The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder maxIdleTimeoutInMinutes(@Nullable Output maxIdleTimeoutInMinutes) { + $.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + return this; + } + + /** + * @param maxIdleTimeoutInMinutes The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder maxIdleTimeoutInMinutes(Integer maxIdleTimeoutInMinutes) { + return maxIdleTimeoutInMinutes(Output.of(maxIdleTimeoutInMinutes)); + } + + /** + * @param minIdleTimeoutInMinutes The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder minIdleTimeoutInMinutes(@Nullable Output minIdleTimeoutInMinutes) { + $.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return this; + } + + /** + * @param minIdleTimeoutInMinutes The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder minIdleTimeoutInMinutes(Integer minIdleTimeoutInMinutes) { + return minIdleTimeoutInMinutes(Output.of(minIdleTimeoutInMinutes)); + } + + public UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCodeEditorAppSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCodeEditorAppSettingsArgs.java index c488a1b4d20..dc938a3225a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCodeEditorAppSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsCodeEditorAppSettingsArgs.java @@ -3,6 +3,7 @@ package com.pulumi.aws.sagemaker.inputs; +import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs; import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs; import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs; import com.pulumi.core.Output; @@ -18,6 +19,36 @@ public final class UserProfileUserSettingsCodeEditorAppSettingsArgs extends com. public static final UserProfileUserSettingsCodeEditorAppSettingsArgs Empty = new UserProfileUserSettingsCodeEditorAppSettingsArgs(); + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + @Import(name="appLifecycleManagement") + private @Nullable Output appLifecycleManagement; + + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + public Optional> appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + @Import(name="builtInLifecycleConfigArn") + private @Nullable Output builtInLifecycleConfigArn; + + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + public Optional> builtInLifecycleConfigArn() { + return Optional.ofNullable(this.builtInLifecycleConfigArn); + } + /** * A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. * @@ -66,6 +97,8 @@ public Optional>> lifecycleConfigArns() { private UserProfileUserSettingsCodeEditorAppSettingsArgs() {} private UserProfileUserSettingsCodeEditorAppSettingsArgs(UserProfileUserSettingsCodeEditorAppSettingsArgs $) { + this.appLifecycleManagement = $.appLifecycleManagement; + this.builtInLifecycleConfigArn = $.builtInLifecycleConfigArn; this.customImages = $.customImages; this.defaultResourceSpec = $.defaultResourceSpec; this.lifecycleConfigArns = $.lifecycleConfigArns; @@ -89,6 +122,48 @@ public Builder(UserProfileUserSettingsCodeEditorAppSettingsArgs defaults) { $ = new UserProfileUserSettingsCodeEditorAppSettingsArgs(Objects.requireNonNull(defaults)); } + /** + * @param appLifecycleManagement Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(@Nullable Output appLifecycleManagement) { + $.appLifecycleManagement = appLifecycleManagement; + return this; + } + + /** + * @param appLifecycleManagement Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs appLifecycleManagement) { + return appLifecycleManagement(Output.of(appLifecycleManagement)); + } + + /** + * @param builtInLifecycleConfigArn The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + * @return builder + * + */ + public Builder builtInLifecycleConfigArn(@Nullable Output builtInLifecycleConfigArn) { + $.builtInLifecycleConfigArn = builtInLifecycleConfigArn; + return this; + } + + /** + * @param builtInLifecycleConfigArn The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + * @return builder + * + */ + public Builder builtInLifecycleConfigArn(String builtInLifecycleConfigArn) { + return builtInLifecycleConfigArn(Output.of(builtInLifecycleConfigArn)); + } + /** * @param customImages A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.java new file mode 100644 index 00000000000..93d0ec4d571 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs.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.sagemaker.inputs; + +import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs; +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 UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs extends com.pulumi.resources.ResourceArgs { + + public static final UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs Empty = new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + + /** + * Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + @Import(name="idleSettings") + private @Nullable Output idleSettings; + + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + public Optional> idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + private UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs() {} + + private UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs $) { + this.idleSettings = $.idleSettings; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs $; + + public Builder() { + $ = new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(); + } + + public Builder(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs defaults) { + $ = new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(@Nullable Output idleSettings) { + $.idleSettings = idleSettings; + return this; + } + + /** + * @param idleSettings Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + * @return builder + * + */ + public Builder idleSettings(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs idleSettings) { + return idleSettings(Output.of(idleSettings)); + } + + public UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java new file mode 100644 index 00000000000..f61829c8f5d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs.java @@ -0,0 +1,195 @@ +// *** 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.sagemaker.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs Empty = new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + @Import(name="idleTimeoutInMinutes") + private @Nullable Output idleTimeoutInMinutes; + + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional> idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + @Import(name="lifecycleManagement") + private @Nullable Output lifecycleManagement; + + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + public Optional> lifecycleManagement() { + return Optional.ofNullable(this.lifecycleManagement); + } + + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + @Import(name="maxIdleTimeoutInMinutes") + private @Nullable Output maxIdleTimeoutInMinutes; + + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional> maxIdleTimeoutInMinutes() { + return Optional.ofNullable(this.maxIdleTimeoutInMinutes); + } + + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + @Import(name="minIdleTimeoutInMinutes") + private @Nullable Output minIdleTimeoutInMinutes; + + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional> minIdleTimeoutInMinutes() { + return Optional.ofNullable(this.minIdleTimeoutInMinutes); + } + + private UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs() {} + + private UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs $) { + this.idleTimeoutInMinutes = $.idleTimeoutInMinutes; + this.lifecycleManagement = $.lifecycleManagement; + this.maxIdleTimeoutInMinutes = $.maxIdleTimeoutInMinutes; + this.minIdleTimeoutInMinutes = $.minIdleTimeoutInMinutes; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs $; + + public Builder() { + $ = new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(); + } + + public Builder(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs defaults) { + $ = new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(@Nullable Output idleTimeoutInMinutes) { + $.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + + /** + * @param idleTimeoutInMinutes The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder idleTimeoutInMinutes(Integer idleTimeoutInMinutes) { + return idleTimeoutInMinutes(Output.of(idleTimeoutInMinutes)); + } + + /** + * @param lifecycleManagement Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder lifecycleManagement(@Nullable Output lifecycleManagement) { + $.lifecycleManagement = lifecycleManagement; + return this; + } + + /** + * @param lifecycleManagement Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder lifecycleManagement(String lifecycleManagement) { + return lifecycleManagement(Output.of(lifecycleManagement)); + } + + /** + * @param maxIdleTimeoutInMinutes The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder maxIdleTimeoutInMinutes(@Nullable Output maxIdleTimeoutInMinutes) { + $.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + return this; + } + + /** + * @param maxIdleTimeoutInMinutes The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder maxIdleTimeoutInMinutes(Integer maxIdleTimeoutInMinutes) { + return maxIdleTimeoutInMinutes(Output.of(maxIdleTimeoutInMinutes)); + } + + /** + * @param minIdleTimeoutInMinutes The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder minIdleTimeoutInMinutes(@Nullable Output minIdleTimeoutInMinutes) { + $.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return this; + } + + /** + * @param minIdleTimeoutInMinutes The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + * @return builder + * + */ + public Builder minIdleTimeoutInMinutes(Integer minIdleTimeoutInMinutes) { + return minIdleTimeoutInMinutes(Output.of(minIdleTimeoutInMinutes)); + } + + public UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsArgs.java index 07a07d29355..e742b5c824a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsArgs.java @@ -3,9 +3,11 @@ package com.pulumi.aws.sagemaker.inputs; +import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs; import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArgs; import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsJupyterLabAppSettingsCustomImageArgs; import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs; +import com.pulumi.aws.sagemaker.inputs.UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.String; @@ -19,6 +21,36 @@ public final class UserProfileUserSettingsJupyterLabAppSettingsArgs extends com. public static final UserProfileUserSettingsJupyterLabAppSettingsArgs Empty = new UserProfileUserSettingsJupyterLabAppSettingsArgs(); + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + @Import(name="appLifecycleManagement") + private @Nullable Output appLifecycleManagement; + + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + public Optional> appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + @Import(name="builtInLifecycleConfigArn") + private @Nullable Output builtInLifecycleConfigArn; + + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + public Optional> builtInLifecycleConfigArn() { + return Optional.ofNullable(this.builtInLifecycleConfigArn); + } + /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. * @@ -56,6 +88,21 @@ public Optional emrSettings; + + /** + * @return The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + */ + public Optional> emrSettings() { + return Optional.ofNullable(this.emrSettings); + } + /** * The Amazon Resource Name (ARN) of the Lifecycle Configurations. * @@ -74,9 +121,12 @@ public Optional>> lifecycleConfigArns() { private UserProfileUserSettingsJupyterLabAppSettingsArgs() {} private UserProfileUserSettingsJupyterLabAppSettingsArgs(UserProfileUserSettingsJupyterLabAppSettingsArgs $) { + this.appLifecycleManagement = $.appLifecycleManagement; + this.builtInLifecycleConfigArn = $.builtInLifecycleConfigArn; this.codeRepositories = $.codeRepositories; this.customImages = $.customImages; this.defaultResourceSpec = $.defaultResourceSpec; + this.emrSettings = $.emrSettings; this.lifecycleConfigArns = $.lifecycleConfigArns; } @@ -98,6 +148,48 @@ public Builder(UserProfileUserSettingsJupyterLabAppSettingsArgs defaults) { $ = new UserProfileUserSettingsJupyterLabAppSettingsArgs(Objects.requireNonNull(defaults)); } + /** + * @param appLifecycleManagement Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(@Nullable Output appLifecycleManagement) { + $.appLifecycleManagement = appLifecycleManagement; + return this; + } + + /** + * @param appLifecycleManagement Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + * @return builder + * + */ + public Builder appLifecycleManagement(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs appLifecycleManagement) { + return appLifecycleManagement(Output.of(appLifecycleManagement)); + } + + /** + * @param builtInLifecycleConfigArn The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + * @return builder + * + */ + public Builder builtInLifecycleConfigArn(@Nullable Output builtInLifecycleConfigArn) { + $.builtInLifecycleConfigArn = builtInLifecycleConfigArn; + return this; + } + + /** + * @param builtInLifecycleConfigArn The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + * @return builder + * + */ + public Builder builtInLifecycleConfigArn(String builtInLifecycleConfigArn) { + return builtInLifecycleConfigArn(Output.of(builtInLifecycleConfigArn)); + } + /** * @param codeRepositories A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. * @@ -163,6 +255,27 @@ public Builder defaultResourceSpec(UserProfileUserSettingsJupyterLabAppSettingsD return defaultResourceSpec(Output.of(defaultResourceSpec)); } + /** + * @param emrSettings The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + * @return builder + * + */ + public Builder emrSettings(@Nullable Output emrSettings) { + $.emrSettings = emrSettings; + return this; + } + + /** + * @param emrSettings The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + * @return builder + * + */ + public Builder emrSettings(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs emrSettings) { + return emrSettings(Output.of(emrSettings)); + } + /** * @param lifecycleConfigArns The Amazon Resource Name (ARN) of the Lifecycle Configurations. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs.java new file mode 100644 index 00000000000..15141cd8d16 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs.java @@ -0,0 +1,141 @@ +// *** 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.sagemaker.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 UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs extends com.pulumi.resources.ResourceArgs { + + public static final UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs Empty = new UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs(); + + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + @Import(name="assumableRoleArns") + private @Nullable Output> assumableRoleArns; + + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + public Optional>> assumableRoleArns() { + return Optional.ofNullable(this.assumableRoleArns); + } + + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + @Import(name="executionRoleArns") + private @Nullable Output> executionRoleArns; + + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + public Optional>> executionRoleArns() { + return Optional.ofNullable(this.executionRoleArns); + } + + private UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs() {} + + private UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs $) { + this.assumableRoleArns = $.assumableRoleArns; + this.executionRoleArns = $.executionRoleArns; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs $; + + public Builder() { + $ = new UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs(); + } + + public Builder(UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs defaults) { + $ = new UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param assumableRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + * @return builder + * + */ + public Builder assumableRoleArns(@Nullable Output> assumableRoleArns) { + $.assumableRoleArns = assumableRoleArns; + return this; + } + + /** + * @param assumableRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + * @return builder + * + */ + public Builder assumableRoleArns(List assumableRoleArns) { + return assumableRoleArns(Output.of(assumableRoleArns)); + } + + /** + * @param assumableRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + * @return builder + * + */ + public Builder assumableRoleArns(String... assumableRoleArns) { + return assumableRoleArns(List.of(assumableRoleArns)); + } + + /** + * @param executionRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + * @return builder + * + */ + public Builder executionRoleArns(@Nullable Output> executionRoleArns) { + $.executionRoleArns = executionRoleArns; + return this; + } + + /** + * @param executionRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + * @return builder + * + */ + public Builder executionRoleArns(List executionRoleArns) { + return executionRoleArns(Output.of(executionRoleArns)); + } + + /** + * @param executionRoleArns An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + * @return builder + * + */ + public Builder executionRoleArns(String... executionRoleArns) { + return executionRoleArns(List.of(executionRoleArns)); + } + + public UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsStudioWebPortalSettingsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsStudioWebPortalSettingsArgs.java index 6cbc268743b..c90d8631e3f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsStudioWebPortalSettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/UserProfileUserSettingsStudioWebPortalSettingsArgs.java @@ -31,6 +31,21 @@ public Optional>> hiddenAppTypes() { return Optional.ofNullable(this.hiddenAppTypes); } + /** + * The instance types you are hiding from the Studio user interface. + * + */ + @Import(name="hiddenInstanceTypes") + private @Nullable Output> hiddenInstanceTypes; + + /** + * @return The instance types you are hiding from the Studio user interface. + * + */ + public Optional>> hiddenInstanceTypes() { + return Optional.ofNullable(this.hiddenInstanceTypes); + } + /** * The machine learning tools that are hidden from the Studio left navigation pane. * @@ -50,6 +65,7 @@ private UserProfileUserSettingsStudioWebPortalSettingsArgs() {} private UserProfileUserSettingsStudioWebPortalSettingsArgs(UserProfileUserSettingsStudioWebPortalSettingsArgs $) { this.hiddenAppTypes = $.hiddenAppTypes; + this.hiddenInstanceTypes = $.hiddenInstanceTypes; this.hiddenMlTools = $.hiddenMlTools; } @@ -102,6 +118,37 @@ public Builder hiddenAppTypes(String... hiddenAppTypes) { return hiddenAppTypes(List.of(hiddenAppTypes)); } + /** + * @param hiddenInstanceTypes The instance types you are hiding from the Studio user interface. + * + * @return builder + * + */ + public Builder hiddenInstanceTypes(@Nullable Output> hiddenInstanceTypes) { + $.hiddenInstanceTypes = hiddenInstanceTypes; + return this; + } + + /** + * @param hiddenInstanceTypes The instance types you are hiding from the Studio user interface. + * + * @return builder + * + */ + public Builder hiddenInstanceTypes(List hiddenInstanceTypes) { + return hiddenInstanceTypes(Output.of(hiddenInstanceTypes)); + } + + /** + * @param hiddenInstanceTypes The instance types you are hiding from the Studio user interface. + * + * @return builder + * + */ + public Builder hiddenInstanceTypes(String... hiddenInstanceTypes) { + return hiddenInstanceTypes(List.of(hiddenInstanceTypes)); + } + /** * @param hiddenMlTools The machine learning tools that are hidden from the Studio left navigation pane. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettings.java index 0f9b264ed5d..74931efd1d0 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettings.java @@ -3,9 +3,11 @@ package com.pulumi.aws.sagemaker.outputs; +import com.pulumi.aws.sagemaker.outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement; import com.pulumi.aws.sagemaker.outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository; import com.pulumi.aws.sagemaker.outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImage; import com.pulumi.aws.sagemaker.outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec; +import com.pulumi.aws.sagemaker.outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings; import com.pulumi.core.annotations.CustomType; import java.lang.String; import java.util.List; @@ -15,6 +17,16 @@ @CustomType public final class DomainDefaultSpaceSettingsJupyterLabAppSettings { + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + private @Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement; + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + private @Nullable String builtInLifecycleConfigArn; /** * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. * @@ -30,6 +42,11 @@ public final class DomainDefaultSpaceSettingsJupyterLabAppSettings { * */ private @Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec; + /** + * @return The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + */ + private @Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings emrSettings; /** * @return The Amazon Resource Name (ARN) of the Lifecycle Configurations. * @@ -37,6 +54,20 @@ public final class DomainDefaultSpaceSettingsJupyterLabAppSettings { private @Nullable List lifecycleConfigArns; private DomainDefaultSpaceSettingsJupyterLabAppSettings() {} + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + public Optional appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + public Optional builtInLifecycleConfigArn() { + return Optional.ofNullable(this.builtInLifecycleConfigArn); + } /** * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. * @@ -58,6 +89,13 @@ public List customIm public Optional defaultResourceSpec() { return Optional.ofNullable(this.defaultResourceSpec); } + /** + * @return The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + */ + public Optional emrSettings() { + return Optional.ofNullable(this.emrSettings); + } /** * @return The Amazon Resource Name (ARN) of the Lifecycle Configurations. * @@ -75,19 +113,37 @@ public static Builder builder(DomainDefaultSpaceSettingsJupyterLabAppSettings de } @CustomType.Builder public static final class Builder { + private @Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement; + private @Nullable String builtInLifecycleConfigArn; private @Nullable List codeRepositories; private @Nullable List customImages; private @Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec; + private @Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings emrSettings; private @Nullable List lifecycleConfigArns; public Builder() {} public Builder(DomainDefaultSpaceSettingsJupyterLabAppSettings defaults) { Objects.requireNonNull(defaults); + this.appLifecycleManagement = defaults.appLifecycleManagement; + this.builtInLifecycleConfigArn = defaults.builtInLifecycleConfigArn; this.codeRepositories = defaults.codeRepositories; this.customImages = defaults.customImages; this.defaultResourceSpec = defaults.defaultResourceSpec; + this.emrSettings = defaults.emrSettings; this.lifecycleConfigArns = defaults.lifecycleConfigArns; } + @CustomType.Setter + public Builder appLifecycleManagement(@Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement) { + + this.appLifecycleManagement = appLifecycleManagement; + return this; + } + @CustomType.Setter + public Builder builtInLifecycleConfigArn(@Nullable String builtInLifecycleConfigArn) { + + this.builtInLifecycleConfigArn = builtInLifecycleConfigArn; + return this; + } @CustomType.Setter public Builder codeRepositories(@Nullable List codeRepositories) { @@ -113,6 +169,12 @@ public Builder defaultResourceSpec(@Nullable DomainDefaultSpaceSettingsJupyterLa return this; } @CustomType.Setter + public Builder emrSettings(@Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings emrSettings) { + + this.emrSettings = emrSettings; + return this; + } + @CustomType.Setter public Builder lifecycleConfigArns(@Nullable List lifecycleConfigArns) { this.lifecycleConfigArns = lifecycleConfigArns; @@ -123,9 +185,12 @@ public Builder lifecycleConfigArns(String... lifecycleConfigArns) { } public DomainDefaultSpaceSettingsJupyterLabAppSettings build() { final var _resultValue = new DomainDefaultSpaceSettingsJupyterLabAppSettings(); + _resultValue.appLifecycleManagement = appLifecycleManagement; + _resultValue.builtInLifecycleConfigArn = builtInLifecycleConfigArn; _resultValue.codeRepositories = codeRepositories; _resultValue.customImages = customImages; _resultValue.defaultResourceSpec = defaultResourceSpec; + _resultValue.emrSettings = emrSettings; _resultValue.lifecycleConfigArns = lifecycleConfigArns; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.java new file mode 100644 index 00000000000..ef5c517abba --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.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.sagemaker.outputs; + +import com.pulumi.aws.sagemaker.outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + private @Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings; + + private DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement() {} + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + public Optional idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings; + public Builder() {} + public Builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement defaults) { + Objects.requireNonNull(defaults); + this.idleSettings = defaults.idleSettings; + } + + @CustomType.Setter + public Builder idleSettings(@Nullable DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings) { + + this.idleSettings = idleSettings; + return this; + } + public DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement build() { + final var _resultValue = new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement(); + _resultValue.idleSettings = idleSettings; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java new file mode 100644 index 00000000000..44031108f69 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java @@ -0,0 +1,121 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer idleTimeoutInMinutes; + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + private @Nullable String lifecycleManagement; + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer maxIdleTimeoutInMinutes; + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer minIdleTimeoutInMinutes; + + private DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings() {} + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + public Optional lifecycleManagement() { + return Optional.ofNullable(this.lifecycleManagement); + } + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional maxIdleTimeoutInMinutes() { + return Optional.ofNullable(this.maxIdleTimeoutInMinutes); + } + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional minIdleTimeoutInMinutes() { + return Optional.ofNullable(this.minIdleTimeoutInMinutes); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer idleTimeoutInMinutes; + private @Nullable String lifecycleManagement; + private @Nullable Integer maxIdleTimeoutInMinutes; + private @Nullable Integer minIdleTimeoutInMinutes; + public Builder() {} + public Builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings defaults) { + Objects.requireNonNull(defaults); + this.idleTimeoutInMinutes = defaults.idleTimeoutInMinutes; + this.lifecycleManagement = defaults.lifecycleManagement; + this.maxIdleTimeoutInMinutes = defaults.maxIdleTimeoutInMinutes; + this.minIdleTimeoutInMinutes = defaults.minIdleTimeoutInMinutes; + } + + @CustomType.Setter + public Builder idleTimeoutInMinutes(@Nullable Integer idleTimeoutInMinutes) { + + this.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + @CustomType.Setter + public Builder lifecycleManagement(@Nullable String lifecycleManagement) { + + this.lifecycleManagement = lifecycleManagement; + return this; + } + @CustomType.Setter + public Builder maxIdleTimeoutInMinutes(@Nullable Integer maxIdleTimeoutInMinutes) { + + this.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + return this; + } + @CustomType.Setter + public Builder minIdleTimeoutInMinutes(@Nullable Integer minIdleTimeoutInMinutes) { + + this.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return this; + } + public DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings build() { + final var _resultValue = new DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings(); + _resultValue.idleTimeoutInMinutes = idleTimeoutInMinutes; + _resultValue.lifecycleManagement = lifecycleManagement; + _resultValue.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + _resultValue.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings.java new file mode 100644 index 00000000000..7c59f7909cc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings.java @@ -0,0 +1,84 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings { + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + private @Nullable List assumableRoleArns; + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + private @Nullable List executionRoleArns; + + private DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings() {} + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + public List assumableRoleArns() { + return this.assumableRoleArns == null ? List.of() : this.assumableRoleArns; + } + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + public List executionRoleArns() { + return this.executionRoleArns == null ? List.of() : this.executionRoleArns; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List assumableRoleArns; + private @Nullable List executionRoleArns; + public Builder() {} + public Builder(DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings defaults) { + Objects.requireNonNull(defaults); + this.assumableRoleArns = defaults.assumableRoleArns; + this.executionRoleArns = defaults.executionRoleArns; + } + + @CustomType.Setter + public Builder assumableRoleArns(@Nullable List assumableRoleArns) { + + this.assumableRoleArns = assumableRoleArns; + return this; + } + public Builder assumableRoleArns(String... assumableRoleArns) { + return assumableRoleArns(List.of(assumableRoleArns)); + } + @CustomType.Setter + public Builder executionRoleArns(@Nullable List executionRoleArns) { + + this.executionRoleArns = executionRoleArns; + return this; + } + public Builder executionRoleArns(String... executionRoleArns) { + return executionRoleArns(List.of(executionRoleArns)); + } + public DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings build() { + final var _resultValue = new DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings(); + _resultValue.assumableRoleArns = assumableRoleArns; + _resultValue.executionRoleArns = executionRoleArns; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettings.java index a1da84de259..45668c7af60 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettings.java @@ -26,6 +26,11 @@ @CustomType public final class DomainDefaultUserSettings { + /** + * @return Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + */ + private @Nullable String autoMountHomeEfs; /** * @return The Canvas app settings. See `canvas_app_settings` Block below. * @@ -113,6 +118,13 @@ public final class DomainDefaultUserSettings { private @Nullable DomainDefaultUserSettingsTensorBoardAppSettings tensorBoardAppSettings; private DomainDefaultUserSettings() {} + /** + * @return Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + */ + public Optional autoMountHomeEfs() { + return Optional.ofNullable(this.autoMountHomeEfs); + } /** * @return The Canvas app settings. See `canvas_app_settings` Block below. * @@ -242,6 +254,7 @@ public static Builder builder(DomainDefaultUserSettings defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable String autoMountHomeEfs; private @Nullable DomainDefaultUserSettingsCanvasAppSettings canvasAppSettings; private @Nullable DomainDefaultUserSettingsCodeEditorAppSettings codeEditorAppSettings; private @Nullable List customFileSystemConfigs; @@ -262,6 +275,7 @@ public static final class Builder { public Builder() {} public Builder(DomainDefaultUserSettings defaults) { Objects.requireNonNull(defaults); + this.autoMountHomeEfs = defaults.autoMountHomeEfs; this.canvasAppSettings = defaults.canvasAppSettings; this.codeEditorAppSettings = defaults.codeEditorAppSettings; this.customFileSystemConfigs = defaults.customFileSystemConfigs; @@ -281,6 +295,12 @@ public Builder(DomainDefaultUserSettings defaults) { this.tensorBoardAppSettings = defaults.tensorBoardAppSettings; } + @CustomType.Setter + public Builder autoMountHomeEfs(@Nullable String autoMountHomeEfs) { + + this.autoMountHomeEfs = autoMountHomeEfs; + return this; + } @CustomType.Setter public Builder canvasAppSettings(@Nullable DomainDefaultUserSettingsCanvasAppSettings canvasAppSettings) { @@ -393,6 +413,7 @@ public Builder tensorBoardAppSettings(@Nullable DomainDefaultUserSettingsTensorB } public DomainDefaultUserSettings build() { final var _resultValue = new DomainDefaultUserSettings(); + _resultValue.autoMountHomeEfs = autoMountHomeEfs; _resultValue.canvasAppSettings = canvasAppSettings; _resultValue.codeEditorAppSettings = codeEditorAppSettings; _resultValue.customFileSystemConfigs = customFileSystemConfigs; diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCanvasAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCanvasAppSettings.java index 6d6264f7a8c..3ff5c5a9f99 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCanvasAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCanvasAppSettings.java @@ -4,6 +4,7 @@ package com.pulumi.aws.sagemaker.outputs; import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings; +import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings; import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings; import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSetting; import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsCanvasAppSettingsKendraSettings; @@ -23,6 +24,11 @@ public final class DomainDefaultUserSettingsCanvasAppSettings { * */ private @Nullable DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings directDeploySettings; + /** + * @return The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + * + */ + private @Nullable DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings emrServerlessSettings; private @Nullable DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings generativeAiSettings; /** * @return The settings for connecting to an external data source with OAuth. See `identity_provider_oauth_settings` Block below. @@ -58,6 +64,13 @@ private DomainDefaultUserSettingsCanvasAppSettings() {} public Optional directDeploySettings() { return Optional.ofNullable(this.directDeploySettings); } + /** + * @return The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + * + */ + public Optional emrServerlessSettings() { + return Optional.ofNullable(this.emrServerlessSettings); + } public Optional generativeAiSettings() { return Optional.ofNullable(this.generativeAiSettings); } @@ -107,6 +120,7 @@ public static Builder builder(DomainDefaultUserSettingsCanvasAppSettings default @CustomType.Builder public static final class Builder { private @Nullable DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings directDeploySettings; + private @Nullable DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings emrServerlessSettings; private @Nullable DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings generativeAiSettings; private @Nullable List identityProviderOauthSettings; private @Nullable DomainDefaultUserSettingsCanvasAppSettingsKendraSettings kendraSettings; @@ -117,6 +131,7 @@ public Builder() {} public Builder(DomainDefaultUserSettingsCanvasAppSettings defaults) { Objects.requireNonNull(defaults); this.directDeploySettings = defaults.directDeploySettings; + this.emrServerlessSettings = defaults.emrServerlessSettings; this.generativeAiSettings = defaults.generativeAiSettings; this.identityProviderOauthSettings = defaults.identityProviderOauthSettings; this.kendraSettings = defaults.kendraSettings; @@ -132,6 +147,12 @@ public Builder directDeploySettings(@Nullable DomainDefaultUserSettingsCanvasApp return this; } @CustomType.Setter + public Builder emrServerlessSettings(@Nullable DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings emrServerlessSettings) { + + this.emrServerlessSettings = emrServerlessSettings; + return this; + } + @CustomType.Setter public Builder generativeAiSettings(@Nullable DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings generativeAiSettings) { this.generativeAiSettings = generativeAiSettings; @@ -173,6 +194,7 @@ public Builder workspaceSettings(@Nullable DomainDefaultUserSettingsCanvasAppSet public DomainDefaultUserSettingsCanvasAppSettings build() { final var _resultValue = new DomainDefaultUserSettingsCanvasAppSettings(); _resultValue.directDeploySettings = directDeploySettings; + _resultValue.emrServerlessSettings = emrServerlessSettings; _resultValue.generativeAiSettings = generativeAiSettings; _resultValue.identityProviderOauthSettings = identityProviderOauthSettings; _resultValue.kendraSettings = kendraSettings; diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings.java new file mode 100644 index 00000000000..ca8fa3fd09a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings.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.sagemaker.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 DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings { + /** + * @return The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + */ + private @Nullable String executionRoleArn; + /** + * @return Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + */ + private @Nullable String status; + + private DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings() {} + /** + * @return The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + */ + public Optional executionRoleArn() { + return Optional.ofNullable(this.executionRoleArn); + } + /** + * @return Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + */ + public Optional status() { + return Optional.ofNullable(this.status); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String executionRoleArn; + private @Nullable String status; + public Builder() {} + public Builder(DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings defaults) { + Objects.requireNonNull(defaults); + this.executionRoleArn = defaults.executionRoleArn; + this.status = defaults.status; + } + + @CustomType.Setter + public Builder executionRoleArn(@Nullable String executionRoleArn) { + + this.executionRoleArn = executionRoleArn; + return this; + } + @CustomType.Setter + public Builder status(@Nullable String status) { + + this.status = status; + return this; + } + public DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings build() { + final var _resultValue = new DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings(); + _resultValue.executionRoleArn = executionRoleArn; + _resultValue.status = status; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCodeEditorAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCodeEditorAppSettings.java index 24546c4b697..7f94fd5f02d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCodeEditorAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCodeEditorAppSettings.java @@ -3,6 +3,7 @@ package com.pulumi.aws.sagemaker.outputs; +import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement; import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage; import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpec; import com.pulumi.core.annotations.CustomType; @@ -14,6 +15,16 @@ @CustomType public final class DomainDefaultUserSettingsCodeEditorAppSettings { + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + private @Nullable DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement appLifecycleManagement; + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + private @Nullable String builtInLifecycleConfigArn; /** * @return A list of custom SageMaker images that are configured to run as a CodeEditor app. see `custom_image` Block below. * @@ -31,6 +42,20 @@ public final class DomainDefaultUserSettingsCodeEditorAppSettings { private @Nullable List lifecycleConfigArns; private DomainDefaultUserSettingsCodeEditorAppSettings() {} + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + public Optional appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + public Optional builtInLifecycleConfigArn() { + return Optional.ofNullable(this.builtInLifecycleConfigArn); + } /** * @return A list of custom SageMaker images that are configured to run as a CodeEditor app. see `custom_image` Block below. * @@ -62,17 +87,33 @@ public static Builder builder(DomainDefaultUserSettingsCodeEditorAppSettings def } @CustomType.Builder public static final class Builder { + private @Nullable DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement appLifecycleManagement; + private @Nullable String builtInLifecycleConfigArn; private @Nullable List customImages; private @Nullable DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpec defaultResourceSpec; private @Nullable List lifecycleConfigArns; public Builder() {} public Builder(DomainDefaultUserSettingsCodeEditorAppSettings defaults) { Objects.requireNonNull(defaults); + this.appLifecycleManagement = defaults.appLifecycleManagement; + this.builtInLifecycleConfigArn = defaults.builtInLifecycleConfigArn; this.customImages = defaults.customImages; this.defaultResourceSpec = defaults.defaultResourceSpec; this.lifecycleConfigArns = defaults.lifecycleConfigArns; } + @CustomType.Setter + public Builder appLifecycleManagement(@Nullable DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement appLifecycleManagement) { + + this.appLifecycleManagement = appLifecycleManagement; + return this; + } + @CustomType.Setter + public Builder builtInLifecycleConfigArn(@Nullable String builtInLifecycleConfigArn) { + + this.builtInLifecycleConfigArn = builtInLifecycleConfigArn; + return this; + } @CustomType.Setter public Builder customImages(@Nullable List customImages) { @@ -99,6 +140,8 @@ public Builder lifecycleConfigArns(String... lifecycleConfigArns) { } public DomainDefaultUserSettingsCodeEditorAppSettings build() { final var _resultValue = new DomainDefaultUserSettingsCodeEditorAppSettings(); + _resultValue.appLifecycleManagement = appLifecycleManagement; + _resultValue.builtInLifecycleConfigArn = builtInLifecycleConfigArn; _resultValue.customImages = customImages; _resultValue.defaultResourceSpec = defaultResourceSpec; _resultValue.lifecycleConfigArns = lifecycleConfigArns; diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement.java new file mode 100644 index 00000000000..413503fe253 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement.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.sagemaker.outputs; + +import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + private @Nullable DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings idleSettings; + + private DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement() {} + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + public Optional idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings idleSettings; + public Builder() {} + public Builder(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement defaults) { + Objects.requireNonNull(defaults); + this.idleSettings = defaults.idleSettings; + } + + @CustomType.Setter + public Builder idleSettings(@Nullable DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings idleSettings) { + + this.idleSettings = idleSettings; + return this; + } + public DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement build() { + final var _resultValue = new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement(); + _resultValue.idleSettings = idleSettings; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.java new file mode 100644 index 00000000000..bea3eba4b73 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.java @@ -0,0 +1,121 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer idleTimeoutInMinutes; + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + private @Nullable String lifecycleManagement; + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer maxIdleTimeoutInMinutes; + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer minIdleTimeoutInMinutes; + + private DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings() {} + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + public Optional lifecycleManagement() { + return Optional.ofNullable(this.lifecycleManagement); + } + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional maxIdleTimeoutInMinutes() { + return Optional.ofNullable(this.maxIdleTimeoutInMinutes); + } + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional minIdleTimeoutInMinutes() { + return Optional.ofNullable(this.minIdleTimeoutInMinutes); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer idleTimeoutInMinutes; + private @Nullable String lifecycleManagement; + private @Nullable Integer maxIdleTimeoutInMinutes; + private @Nullable Integer minIdleTimeoutInMinutes; + public Builder() {} + public Builder(DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings defaults) { + Objects.requireNonNull(defaults); + this.idleTimeoutInMinutes = defaults.idleTimeoutInMinutes; + this.lifecycleManagement = defaults.lifecycleManagement; + this.maxIdleTimeoutInMinutes = defaults.maxIdleTimeoutInMinutes; + this.minIdleTimeoutInMinutes = defaults.minIdleTimeoutInMinutes; + } + + @CustomType.Setter + public Builder idleTimeoutInMinutes(@Nullable Integer idleTimeoutInMinutes) { + + this.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + @CustomType.Setter + public Builder lifecycleManagement(@Nullable String lifecycleManagement) { + + this.lifecycleManagement = lifecycleManagement; + return this; + } + @CustomType.Setter + public Builder maxIdleTimeoutInMinutes(@Nullable Integer maxIdleTimeoutInMinutes) { + + this.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + return this; + } + @CustomType.Setter + public Builder minIdleTimeoutInMinutes(@Nullable Integer minIdleTimeoutInMinutes) { + + this.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return this; + } + public DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings build() { + final var _resultValue = new DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings(); + _resultValue.idleTimeoutInMinutes = idleTimeoutInMinutes; + _resultValue.lifecycleManagement = lifecycleManagement; + _resultValue.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + _resultValue.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettings.java index e58da0c1f2d..d1a03be6cf8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettings.java @@ -3,9 +3,11 @@ package com.pulumi.aws.sagemaker.outputs; +import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement; import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository; import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsJupyterLabAppSettingsCustomImage; import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec; +import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings; import com.pulumi.core.annotations.CustomType; import java.lang.String; import java.util.List; @@ -15,6 +17,16 @@ @CustomType public final class DomainDefaultUserSettingsJupyterLabAppSettings { + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + private @Nullable DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement; + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + private @Nullable String builtInLifecycleConfigArn; /** * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. * @@ -30,6 +42,11 @@ public final class DomainDefaultUserSettingsJupyterLabAppSettings { * */ private @Nullable DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec; + /** + * @return The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + */ + private @Nullable DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings emrSettings; /** * @return The Amazon Resource Name (ARN) of the Lifecycle Configurations. * @@ -37,6 +54,20 @@ public final class DomainDefaultUserSettingsJupyterLabAppSettings { private @Nullable List lifecycleConfigArns; private DomainDefaultUserSettingsJupyterLabAppSettings() {} + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + public Optional appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + public Optional builtInLifecycleConfigArn() { + return Optional.ofNullable(this.builtInLifecycleConfigArn); + } /** * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. * @@ -58,6 +89,13 @@ public List customIma public Optional defaultResourceSpec() { return Optional.ofNullable(this.defaultResourceSpec); } + /** + * @return The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + */ + public Optional emrSettings() { + return Optional.ofNullable(this.emrSettings); + } /** * @return The Amazon Resource Name (ARN) of the Lifecycle Configurations. * @@ -75,19 +113,37 @@ public static Builder builder(DomainDefaultUserSettingsJupyterLabAppSettings def } @CustomType.Builder public static final class Builder { + private @Nullable DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement; + private @Nullable String builtInLifecycleConfigArn; private @Nullable List codeRepositories; private @Nullable List customImages; private @Nullable DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec; + private @Nullable DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings emrSettings; private @Nullable List lifecycleConfigArns; public Builder() {} public Builder(DomainDefaultUserSettingsJupyterLabAppSettings defaults) { Objects.requireNonNull(defaults); + this.appLifecycleManagement = defaults.appLifecycleManagement; + this.builtInLifecycleConfigArn = defaults.builtInLifecycleConfigArn; this.codeRepositories = defaults.codeRepositories; this.customImages = defaults.customImages; this.defaultResourceSpec = defaults.defaultResourceSpec; + this.emrSettings = defaults.emrSettings; this.lifecycleConfigArns = defaults.lifecycleConfigArns; } + @CustomType.Setter + public Builder appLifecycleManagement(@Nullable DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement) { + + this.appLifecycleManagement = appLifecycleManagement; + return this; + } + @CustomType.Setter + public Builder builtInLifecycleConfigArn(@Nullable String builtInLifecycleConfigArn) { + + this.builtInLifecycleConfigArn = builtInLifecycleConfigArn; + return this; + } @CustomType.Setter public Builder codeRepositories(@Nullable List codeRepositories) { @@ -113,6 +169,12 @@ public Builder defaultResourceSpec(@Nullable DomainDefaultUserSettingsJupyterLab return this; } @CustomType.Setter + public Builder emrSettings(@Nullable DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings emrSettings) { + + this.emrSettings = emrSettings; + return this; + } + @CustomType.Setter public Builder lifecycleConfigArns(@Nullable List lifecycleConfigArns) { this.lifecycleConfigArns = lifecycleConfigArns; @@ -123,9 +185,12 @@ public Builder lifecycleConfigArns(String... lifecycleConfigArns) { } public DomainDefaultUserSettingsJupyterLabAppSettings build() { final var _resultValue = new DomainDefaultUserSettingsJupyterLabAppSettings(); + _resultValue.appLifecycleManagement = appLifecycleManagement; + _resultValue.builtInLifecycleConfigArn = builtInLifecycleConfigArn; _resultValue.codeRepositories = codeRepositories; _resultValue.customImages = customImages; _resultValue.defaultResourceSpec = defaultResourceSpec; + _resultValue.emrSettings = emrSettings; _resultValue.lifecycleConfigArns = lifecycleConfigArns; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement.java new file mode 100644 index 00000000000..0501bf67bb7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement.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.sagemaker.outputs; + +import com.pulumi.aws.sagemaker.outputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + private @Nullable DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings; + + private DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement() {} + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + public Optional idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings; + public Builder() {} + public Builder(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement defaults) { + Objects.requireNonNull(defaults); + this.idleSettings = defaults.idleSettings; + } + + @CustomType.Setter + public Builder idleSettings(@Nullable DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings) { + + this.idleSettings = idleSettings; + return this; + } + public DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement build() { + final var _resultValue = new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement(); + _resultValue.idleSettings = idleSettings; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java new file mode 100644 index 00000000000..587792e56e6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java @@ -0,0 +1,121 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer idleTimeoutInMinutes; + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + private @Nullable String lifecycleManagement; + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer maxIdleTimeoutInMinutes; + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer minIdleTimeoutInMinutes; + + private DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings() {} + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + public Optional lifecycleManagement() { + return Optional.ofNullable(this.lifecycleManagement); + } + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional maxIdleTimeoutInMinutes() { + return Optional.ofNullable(this.maxIdleTimeoutInMinutes); + } + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional minIdleTimeoutInMinutes() { + return Optional.ofNullable(this.minIdleTimeoutInMinutes); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer idleTimeoutInMinutes; + private @Nullable String lifecycleManagement; + private @Nullable Integer maxIdleTimeoutInMinutes; + private @Nullable Integer minIdleTimeoutInMinutes; + public Builder() {} + public Builder(DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings defaults) { + Objects.requireNonNull(defaults); + this.idleTimeoutInMinutes = defaults.idleTimeoutInMinutes; + this.lifecycleManagement = defaults.lifecycleManagement; + this.maxIdleTimeoutInMinutes = defaults.maxIdleTimeoutInMinutes; + this.minIdleTimeoutInMinutes = defaults.minIdleTimeoutInMinutes; + } + + @CustomType.Setter + public Builder idleTimeoutInMinutes(@Nullable Integer idleTimeoutInMinutes) { + + this.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + @CustomType.Setter + public Builder lifecycleManagement(@Nullable String lifecycleManagement) { + + this.lifecycleManagement = lifecycleManagement; + return this; + } + @CustomType.Setter + public Builder maxIdleTimeoutInMinutes(@Nullable Integer maxIdleTimeoutInMinutes) { + + this.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + return this; + } + @CustomType.Setter + public Builder minIdleTimeoutInMinutes(@Nullable Integer minIdleTimeoutInMinutes) { + + this.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return this; + } + public DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings build() { + final var _resultValue = new DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings(); + _resultValue.idleTimeoutInMinutes = idleTimeoutInMinutes; + _resultValue.lifecycleManagement = lifecycleManagement; + _resultValue.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + _resultValue.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings.java new file mode 100644 index 00000000000..56fe7928d08 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings.java @@ -0,0 +1,84 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings { + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + private @Nullable List assumableRoleArns; + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + private @Nullable List executionRoleArns; + + private DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings() {} + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + public List assumableRoleArns() { + return this.assumableRoleArns == null ? List.of() : this.assumableRoleArns; + } + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + public List executionRoleArns() { + return this.executionRoleArns == null ? List.of() : this.executionRoleArns; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List assumableRoleArns; + private @Nullable List executionRoleArns; + public Builder() {} + public Builder(DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings defaults) { + Objects.requireNonNull(defaults); + this.assumableRoleArns = defaults.assumableRoleArns; + this.executionRoleArns = defaults.executionRoleArns; + } + + @CustomType.Setter + public Builder assumableRoleArns(@Nullable List assumableRoleArns) { + + this.assumableRoleArns = assumableRoleArns; + return this; + } + public Builder assumableRoleArns(String... assumableRoleArns) { + return assumableRoleArns(List.of(assumableRoleArns)); + } + @CustomType.Setter + public Builder executionRoleArns(@Nullable List executionRoleArns) { + + this.executionRoleArns = executionRoleArns; + return this; + } + public Builder executionRoleArns(String... executionRoleArns) { + return executionRoleArns(List.of(executionRoleArns)); + } + public DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings build() { + final var _resultValue = new DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings(); + _resultValue.assumableRoleArns = assumableRoleArns; + _resultValue.executionRoleArns = executionRoleArns; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsStudioWebPortalSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsStudioWebPortalSettings.java index 359243193ef..00cee9e121e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsStudioWebPortalSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/DomainDefaultUserSettingsStudioWebPortalSettings.java @@ -16,6 +16,11 @@ public final class DomainDefaultUserSettingsStudioWebPortalSettings { * */ private @Nullable List hiddenAppTypes; + /** + * @return The instance types you are hiding from the Studio user interface. + * + */ + private @Nullable List hiddenInstanceTypes; /** * @return The machine learning tools that are hidden from the Studio left navigation pane. * @@ -30,6 +35,13 @@ private DomainDefaultUserSettingsStudioWebPortalSettings() {} public List hiddenAppTypes() { return this.hiddenAppTypes == null ? List.of() : this.hiddenAppTypes; } + /** + * @return The instance types you are hiding from the Studio user interface. + * + */ + public List hiddenInstanceTypes() { + return this.hiddenInstanceTypes == null ? List.of() : this.hiddenInstanceTypes; + } /** * @return The machine learning tools that are hidden from the Studio left navigation pane. * @@ -48,11 +60,13 @@ public static Builder builder(DomainDefaultUserSettingsStudioWebPortalSettings d @CustomType.Builder public static final class Builder { private @Nullable List hiddenAppTypes; + private @Nullable List hiddenInstanceTypes; private @Nullable List hiddenMlTools; public Builder() {} public Builder(DomainDefaultUserSettingsStudioWebPortalSettings defaults) { Objects.requireNonNull(defaults); this.hiddenAppTypes = defaults.hiddenAppTypes; + this.hiddenInstanceTypes = defaults.hiddenInstanceTypes; this.hiddenMlTools = defaults.hiddenMlTools; } @@ -66,6 +80,15 @@ public Builder hiddenAppTypes(String... hiddenAppTypes) { return hiddenAppTypes(List.of(hiddenAppTypes)); } @CustomType.Setter + public Builder hiddenInstanceTypes(@Nullable List hiddenInstanceTypes) { + + this.hiddenInstanceTypes = hiddenInstanceTypes; + return this; + } + public Builder hiddenInstanceTypes(String... hiddenInstanceTypes) { + return hiddenInstanceTypes(List.of(hiddenInstanceTypes)); + } + @CustomType.Setter public Builder hiddenMlTools(@Nullable List hiddenMlTools) { this.hiddenMlTools = hiddenMlTools; @@ -77,6 +100,7 @@ public Builder hiddenMlTools(String... hiddenMlTools) { public DomainDefaultUserSettingsStudioWebPortalSettings build() { final var _resultValue = new DomainDefaultUserSettingsStudioWebPortalSettings(); _resultValue.hiddenAppTypes = hiddenAppTypes; + _resultValue.hiddenInstanceTypes = hiddenInstanceTypes; _resultValue.hiddenMlTools = hiddenMlTools; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupFeatureDefinition.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupFeatureDefinition.java index a29cadf9403..f0549fac718 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupFeatureDefinition.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupFeatureDefinition.java @@ -3,6 +3,7 @@ package com.pulumi.aws.sagemaker.outputs; +import com.pulumi.aws.sagemaker.outputs.FeatureGroupFeatureDefinitionCollectionConfig; import com.pulumi.core.annotations.CustomType; import java.lang.String; import java.util.Objects; @@ -11,6 +12,8 @@ @CustomType public final class FeatureGroupFeatureDefinition { + private @Nullable FeatureGroupFeatureDefinitionCollectionConfig collectionConfig; + private @Nullable String collectionType; /** * @return The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. * @@ -23,6 +26,12 @@ public final class FeatureGroupFeatureDefinition { private @Nullable String featureType; private FeatureGroupFeatureDefinition() {} + public Optional collectionConfig() { + return Optional.ofNullable(this.collectionConfig); + } + public Optional collectionType() { + return Optional.ofNullable(this.collectionType); + } /** * @return The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. * @@ -47,15 +56,31 @@ public static Builder builder(FeatureGroupFeatureDefinition defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable FeatureGroupFeatureDefinitionCollectionConfig collectionConfig; + private @Nullable String collectionType; private @Nullable String featureName; private @Nullable String featureType; public Builder() {} public Builder(FeatureGroupFeatureDefinition defaults) { Objects.requireNonNull(defaults); + this.collectionConfig = defaults.collectionConfig; + this.collectionType = defaults.collectionType; this.featureName = defaults.featureName; this.featureType = defaults.featureType; } + @CustomType.Setter + public Builder collectionConfig(@Nullable FeatureGroupFeatureDefinitionCollectionConfig collectionConfig) { + + this.collectionConfig = collectionConfig; + return this; + } + @CustomType.Setter + public Builder collectionType(@Nullable String collectionType) { + + this.collectionType = collectionType; + return this; + } @CustomType.Setter public Builder featureName(@Nullable String featureName) { @@ -70,6 +95,8 @@ public Builder featureType(@Nullable String featureType) { } public FeatureGroupFeatureDefinition build() { final var _resultValue = new FeatureGroupFeatureDefinition(); + _resultValue.collectionConfig = collectionConfig; + _resultValue.collectionType = collectionType; _resultValue.featureName = featureName; _resultValue.featureType = featureType; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupFeatureDefinitionCollectionConfig.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupFeatureDefinitionCollectionConfig.java new file mode 100644 index 00000000000..7d8c57b49c1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupFeatureDefinitionCollectionConfig.java @@ -0,0 +1,49 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.aws.sagemaker.outputs.FeatureGroupFeatureDefinitionCollectionConfigVectorConfig; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FeatureGroupFeatureDefinitionCollectionConfig { + private @Nullable FeatureGroupFeatureDefinitionCollectionConfigVectorConfig vectorConfig; + + private FeatureGroupFeatureDefinitionCollectionConfig() {} + public Optional vectorConfig() { + return Optional.ofNullable(this.vectorConfig); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FeatureGroupFeatureDefinitionCollectionConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable FeatureGroupFeatureDefinitionCollectionConfigVectorConfig vectorConfig; + public Builder() {} + public Builder(FeatureGroupFeatureDefinitionCollectionConfig defaults) { + Objects.requireNonNull(defaults); + this.vectorConfig = defaults.vectorConfig; + } + + @CustomType.Setter + public Builder vectorConfig(@Nullable FeatureGroupFeatureDefinitionCollectionConfigVectorConfig vectorConfig) { + + this.vectorConfig = vectorConfig; + return this; + } + public FeatureGroupFeatureDefinitionCollectionConfig build() { + final var _resultValue = new FeatureGroupFeatureDefinitionCollectionConfig(); + _resultValue.vectorConfig = vectorConfig; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfig.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfig.java new file mode 100644 index 00000000000..9ae909e028e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupFeatureDefinitionCollectionConfigVectorConfig.java @@ -0,0 +1,49 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FeatureGroupFeatureDefinitionCollectionConfigVectorConfig { + private @Nullable Integer dimension; + + private FeatureGroupFeatureDefinitionCollectionConfigVectorConfig() {} + public Optional dimension() { + return Optional.ofNullable(this.dimension); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FeatureGroupFeatureDefinitionCollectionConfigVectorConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer dimension; + public Builder() {} + public Builder(FeatureGroupFeatureDefinitionCollectionConfigVectorConfig defaults) { + Objects.requireNonNull(defaults); + this.dimension = defaults.dimension; + } + + @CustomType.Setter + public Builder dimension(@Nullable Integer dimension) { + + this.dimension = dimension; + return this; + } + public FeatureGroupFeatureDefinitionCollectionConfigVectorConfig build() { + final var _resultValue = new FeatureGroupFeatureDefinitionCollectionConfigVectorConfig(); + _resultValue.dimension = dimension; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupThroughputConfig.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupThroughputConfig.java new file mode 100644 index 00000000000..ad2a9127caa --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/FeatureGroupThroughputConfig.java @@ -0,0 +1,76 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FeatureGroupThroughputConfig { + private @Nullable Integer provisionedReadCapacityUnits; + private @Nullable Integer provisionedWriteCapacityUnits; + private @Nullable String throughputMode; + + private FeatureGroupThroughputConfig() {} + public Optional provisionedReadCapacityUnits() { + return Optional.ofNullable(this.provisionedReadCapacityUnits); + } + public Optional provisionedWriteCapacityUnits() { + return Optional.ofNullable(this.provisionedWriteCapacityUnits); + } + public Optional throughputMode() { + return Optional.ofNullable(this.throughputMode); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FeatureGroupThroughputConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer provisionedReadCapacityUnits; + private @Nullable Integer provisionedWriteCapacityUnits; + private @Nullable String throughputMode; + public Builder() {} + public Builder(FeatureGroupThroughputConfig defaults) { + Objects.requireNonNull(defaults); + this.provisionedReadCapacityUnits = defaults.provisionedReadCapacityUnits; + this.provisionedWriteCapacityUnits = defaults.provisionedWriteCapacityUnits; + this.throughputMode = defaults.throughputMode; + } + + @CustomType.Setter + public Builder provisionedReadCapacityUnits(@Nullable Integer provisionedReadCapacityUnits) { + + this.provisionedReadCapacityUnits = provisionedReadCapacityUnits; + return this; + } + @CustomType.Setter + public Builder provisionedWriteCapacityUnits(@Nullable Integer provisionedWriteCapacityUnits) { + + this.provisionedWriteCapacityUnits = provisionedWriteCapacityUnits; + return this; + } + @CustomType.Setter + public Builder throughputMode(@Nullable String throughputMode) { + + this.throughputMode = throughputMode; + return this; + } + public FeatureGroupThroughputConfig build() { + final var _resultValue = new FeatureGroupThroughputConfig(); + _resultValue.provisionedReadCapacityUnits = provisionedReadCapacityUnits; + _resultValue.provisionedWriteCapacityUnits = provisionedWriteCapacityUnits; + _resultValue.throughputMode = throughputMode; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/HubS3StorageConfig.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/HubS3StorageConfig.java new file mode 100644 index 00000000000..6bf6f0ec558 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/HubS3StorageConfig.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.sagemaker.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 HubS3StorageConfig { + /** + * @return The Amazon S3 bucket prefix for hosting hub content.interface. + * + */ + private @Nullable String s3OutputPath; + + private HubS3StorageConfig() {} + /** + * @return The Amazon S3 bucket prefix for hosting hub content.interface. + * + */ + public Optional s3OutputPath() { + return Optional.ofNullable(this.s3OutputPath); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(HubS3StorageConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String s3OutputPath; + public Builder() {} + public Builder(HubS3StorageConfig defaults) { + Objects.requireNonNull(defaults); + this.s3OutputPath = defaults.s3OutputPath; + } + + @CustomType.Setter + public Builder s3OutputPath(@Nullable String s3OutputPath) { + + this.s3OutputPath = s3OutputPath; + return this; + } + public HubS3StorageConfig build() { + final var _resultValue = new HubS3StorageConfig(); + _resultValue.s3OutputPath = s3OutputPath; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettings.java index fb58505d2bb..0e160273ce1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettings.java @@ -3,13 +3,21 @@ package com.pulumi.aws.sagemaker.outputs; +import com.pulumi.aws.sagemaker.outputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement; import com.pulumi.aws.sagemaker.outputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec; import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; @CustomType public final class SpaceSpaceSettingsCodeEditorAppSettings { + /** + * @return Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + */ + private @Nullable SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement appLifecycleManagement; /** * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * @@ -17,6 +25,13 @@ public final class SpaceSpaceSettingsCodeEditorAppSettings { private SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec defaultResourceSpec; private SpaceSpaceSettingsCodeEditorAppSettings() {} + /** + * @return Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + */ + public Optional appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } /** * @return The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. * @@ -34,13 +49,21 @@ public static Builder builder(SpaceSpaceSettingsCodeEditorAppSettings defaults) } @CustomType.Builder public static final class Builder { + private @Nullable SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement appLifecycleManagement; private SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec defaultResourceSpec; public Builder() {} public Builder(SpaceSpaceSettingsCodeEditorAppSettings defaults) { Objects.requireNonNull(defaults); + this.appLifecycleManagement = defaults.appLifecycleManagement; this.defaultResourceSpec = defaults.defaultResourceSpec; } + @CustomType.Setter + public Builder appLifecycleManagement(@Nullable SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement appLifecycleManagement) { + + this.appLifecycleManagement = appLifecycleManagement; + return this; + } @CustomType.Setter public Builder defaultResourceSpec(SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec defaultResourceSpec) { if (defaultResourceSpec == null) { @@ -51,6 +74,7 @@ public Builder defaultResourceSpec(SpaceSpaceSettingsCodeEditorAppSettingsDefaul } public SpaceSpaceSettingsCodeEditorAppSettings build() { final var _resultValue = new SpaceSpaceSettingsCodeEditorAppSettings(); + _resultValue.appLifecycleManagement = appLifecycleManagement; _resultValue.defaultResourceSpec = defaultResourceSpec; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement.java new file mode 100644 index 00000000000..55583c9b379 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement.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.sagemaker.outputs; + +import com.pulumi.aws.sagemaker.outputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement { + /** + * @return Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + */ + private @Nullable SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings idleSettings; + + private SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement() {} + /** + * @return Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + */ + public Optional idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings idleSettings; + public Builder() {} + public Builder(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement defaults) { + Objects.requireNonNull(defaults); + this.idleSettings = defaults.idleSettings; + } + + @CustomType.Setter + public Builder idleSettings(@Nullable SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings idleSettings) { + + this.idleSettings = idleSettings; + return this; + } + public SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement build() { + final var _resultValue = new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement(); + _resultValue.idleSettings = idleSettings; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.java new file mode 100644 index 00000000000..c3ecc3dcaeb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer idleTimeoutInMinutes; + + private SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings() {} + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer idleTimeoutInMinutes; + public Builder() {} + public Builder(SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings defaults) { + Objects.requireNonNull(defaults); + this.idleTimeoutInMinutes = defaults.idleTimeoutInMinutes; + } + + @CustomType.Setter + public Builder idleTimeoutInMinutes(@Nullable Integer idleTimeoutInMinutes) { + + this.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + public SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings build() { + final var _resultValue = new SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings(); + _resultValue.idleTimeoutInMinutes = idleTimeoutInMinutes; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettings.java index ebd04a82ed6..2c96deb07f2 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettings.java @@ -3,16 +3,23 @@ package com.pulumi.aws.sagemaker.outputs; +import com.pulumi.aws.sagemaker.outputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement; import com.pulumi.aws.sagemaker.outputs.SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository; import com.pulumi.aws.sagemaker.outputs.SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec; import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.util.List; import java.util.Objects; +import java.util.Optional; import javax.annotation.Nullable; @CustomType public final class SpaceSpaceSettingsJupyterLabAppSettings { + /** + * @return Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + */ + private @Nullable SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement; /** * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * @@ -25,6 +32,13 @@ public final class SpaceSpaceSettingsJupyterLabAppSettings { private SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec; private SpaceSpaceSettingsJupyterLabAppSettings() {} + /** + * @return Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + * + */ + public Optional appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } /** * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. * @@ -49,15 +63,23 @@ public static Builder builder(SpaceSpaceSettingsJupyterLabAppSettings defaults) } @CustomType.Builder public static final class Builder { + private @Nullable SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement; private @Nullable List codeRepositories; private SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec; public Builder() {} public Builder(SpaceSpaceSettingsJupyterLabAppSettings defaults) { Objects.requireNonNull(defaults); + this.appLifecycleManagement = defaults.appLifecycleManagement; this.codeRepositories = defaults.codeRepositories; this.defaultResourceSpec = defaults.defaultResourceSpec; } + @CustomType.Setter + public Builder appLifecycleManagement(@Nullable SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement) { + + this.appLifecycleManagement = appLifecycleManagement; + return this; + } @CustomType.Setter public Builder codeRepositories(@Nullable List codeRepositories) { @@ -77,6 +99,7 @@ public Builder defaultResourceSpec(SpaceSpaceSettingsJupyterLabAppSettingsDefaul } public SpaceSpaceSettingsJupyterLabAppSettings build() { final var _resultValue = new SpaceSpaceSettingsJupyterLabAppSettings(); + _resultValue.appLifecycleManagement = appLifecycleManagement; _resultValue.codeRepositories = codeRepositories; _resultValue.defaultResourceSpec = defaultResourceSpec; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.java new file mode 100644 index 00000000000..306a66687c5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.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.sagemaker.outputs; + +import com.pulumi.aws.sagemaker.outputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * @return Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + */ + private @Nullable SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings; + + private SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement() {} + /** + * @return Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + * + */ + public Optional idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings; + public Builder() {} + public Builder(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement defaults) { + Objects.requireNonNull(defaults); + this.idleSettings = defaults.idleSettings; + } + + @CustomType.Setter + public Builder idleSettings(@Nullable SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings) { + + this.idleSettings = idleSettings; + return this; + } + public SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement build() { + final var _resultValue = new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement(); + _resultValue.idleSettings = idleSettings; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java new file mode 100644 index 00000000000..aa5396a66cb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer idleTimeoutInMinutes; + + private SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings() {} + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer idleTimeoutInMinutes; + public Builder() {} + public Builder(SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings defaults) { + Objects.requireNonNull(defaults); + this.idleTimeoutInMinutes = defaults.idleTimeoutInMinutes; + } + + @CustomType.Setter + public Builder idleTimeoutInMinutes(@Nullable Integer idleTimeoutInMinutes) { + + this.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + public SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings build() { + final var _resultValue = new SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings(); + _resultValue.idleTimeoutInMinutes = idleTimeoutInMinutes; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettings.java index bc1387cf964..5be7034aade 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettings.java @@ -26,6 +26,11 @@ @CustomType public final class UserProfileUserSettings { + /** + * @return Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + */ + private @Nullable String autoMountHomeEfs; /** * @return The Canvas app settings. See Canvas App Settings below. * @@ -113,6 +118,13 @@ public final class UserProfileUserSettings { private @Nullable UserProfileUserSettingsTensorBoardAppSettings tensorBoardAppSettings; private UserProfileUserSettings() {} + /** + * @return Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + * + */ + public Optional autoMountHomeEfs() { + return Optional.ofNullable(this.autoMountHomeEfs); + } /** * @return The Canvas app settings. See Canvas App Settings below. * @@ -242,6 +254,7 @@ public static Builder builder(UserProfileUserSettings defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable String autoMountHomeEfs; private @Nullable UserProfileUserSettingsCanvasAppSettings canvasAppSettings; private @Nullable UserProfileUserSettingsCodeEditorAppSettings codeEditorAppSettings; private @Nullable List customFileSystemConfigs; @@ -262,6 +275,7 @@ public static final class Builder { public Builder() {} public Builder(UserProfileUserSettings defaults) { Objects.requireNonNull(defaults); + this.autoMountHomeEfs = defaults.autoMountHomeEfs; this.canvasAppSettings = defaults.canvasAppSettings; this.codeEditorAppSettings = defaults.codeEditorAppSettings; this.customFileSystemConfigs = defaults.customFileSystemConfigs; @@ -281,6 +295,12 @@ public Builder(UserProfileUserSettings defaults) { this.tensorBoardAppSettings = defaults.tensorBoardAppSettings; } + @CustomType.Setter + public Builder autoMountHomeEfs(@Nullable String autoMountHomeEfs) { + + this.autoMountHomeEfs = autoMountHomeEfs; + return this; + } @CustomType.Setter public Builder canvasAppSettings(@Nullable UserProfileUserSettingsCanvasAppSettings canvasAppSettings) { @@ -393,6 +413,7 @@ public Builder tensorBoardAppSettings(@Nullable UserProfileUserSettingsTensorBoa } public UserProfileUserSettings build() { final var _resultValue = new UserProfileUserSettings(); + _resultValue.autoMountHomeEfs = autoMountHomeEfs; _resultValue.canvasAppSettings = canvasAppSettings; _resultValue.codeEditorAppSettings = codeEditorAppSettings; _resultValue.customFileSystemConfigs = customFileSystemConfigs; diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCanvasAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCanvasAppSettings.java index 133ca5c2d9c..844c3e10032 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCanvasAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCanvasAppSettings.java @@ -4,6 +4,7 @@ package com.pulumi.aws.sagemaker.outputs; import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings; +import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings; import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings; import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSetting; import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsCanvasAppSettingsKendraSettings; @@ -23,6 +24,11 @@ public final class UserProfileUserSettingsCanvasAppSettings { * */ private @Nullable UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings directDeploySettings; + /** + * @return The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + * + */ + private @Nullable UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings emrServerlessSettings; private @Nullable UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings generativeAiSettings; /** * @return The settings for connecting to an external data source with OAuth. See Identity Provider OAuth Settings below. @@ -58,6 +64,13 @@ private UserProfileUserSettingsCanvasAppSettings() {} public Optional directDeploySettings() { return Optional.ofNullable(this.directDeploySettings); } + /** + * @return The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + * + */ + public Optional emrServerlessSettings() { + return Optional.ofNullable(this.emrServerlessSettings); + } public Optional generativeAiSettings() { return Optional.ofNullable(this.generativeAiSettings); } @@ -107,6 +120,7 @@ public static Builder builder(UserProfileUserSettingsCanvasAppSettings defaults) @CustomType.Builder public static final class Builder { private @Nullable UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings directDeploySettings; + private @Nullable UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings emrServerlessSettings; private @Nullable UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings generativeAiSettings; private @Nullable List identityProviderOauthSettings; private @Nullable UserProfileUserSettingsCanvasAppSettingsKendraSettings kendraSettings; @@ -117,6 +131,7 @@ public Builder() {} public Builder(UserProfileUserSettingsCanvasAppSettings defaults) { Objects.requireNonNull(defaults); this.directDeploySettings = defaults.directDeploySettings; + this.emrServerlessSettings = defaults.emrServerlessSettings; this.generativeAiSettings = defaults.generativeAiSettings; this.identityProviderOauthSettings = defaults.identityProviderOauthSettings; this.kendraSettings = defaults.kendraSettings; @@ -132,6 +147,12 @@ public Builder directDeploySettings(@Nullable UserProfileUserSettingsCanvasAppSe return this; } @CustomType.Setter + public Builder emrServerlessSettings(@Nullable UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings emrServerlessSettings) { + + this.emrServerlessSettings = emrServerlessSettings; + return this; + } + @CustomType.Setter public Builder generativeAiSettings(@Nullable UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings generativeAiSettings) { this.generativeAiSettings = generativeAiSettings; @@ -173,6 +194,7 @@ public Builder workspaceSettings(@Nullable UserProfileUserSettingsCanvasAppSetti public UserProfileUserSettingsCanvasAppSettings build() { final var _resultValue = new UserProfileUserSettingsCanvasAppSettings(); _resultValue.directDeploySettings = directDeploySettings; + _resultValue.emrServerlessSettings = emrServerlessSettings; _resultValue.generativeAiSettings = generativeAiSettings; _resultValue.identityProviderOauthSettings = identityProviderOauthSettings; _resultValue.kendraSettings = kendraSettings; diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings.java new file mode 100644 index 00000000000..6b63ee6fe6d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings.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.sagemaker.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 UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings { + /** + * @return The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + */ + private @Nullable String executionRoleArn; + /** + * @return Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + */ + private @Nullable String status; + + private UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings() {} + /** + * @return The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + * + */ + public Optional executionRoleArn() { + return Optional.ofNullable(this.executionRoleArn); + } + /** + * @return Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + * + */ + public Optional status() { + return Optional.ofNullable(this.status); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String executionRoleArn; + private @Nullable String status; + public Builder() {} + public Builder(UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings defaults) { + Objects.requireNonNull(defaults); + this.executionRoleArn = defaults.executionRoleArn; + this.status = defaults.status; + } + + @CustomType.Setter + public Builder executionRoleArn(@Nullable String executionRoleArn) { + + this.executionRoleArn = executionRoleArn; + return this; + } + @CustomType.Setter + public Builder status(@Nullable String status) { + + this.status = status; + return this; + } + public UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings build() { + final var _resultValue = new UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings(); + _resultValue.executionRoleArn = executionRoleArn; + _resultValue.status = status; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCodeEditorAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCodeEditorAppSettings.java index 506d8cdaea0..b1015a0defb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCodeEditorAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCodeEditorAppSettings.java @@ -3,6 +3,7 @@ package com.pulumi.aws.sagemaker.outputs; +import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement; import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsCodeEditorAppSettingsCustomImage; import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpec; import com.pulumi.core.annotations.CustomType; @@ -14,6 +15,16 @@ @CustomType public final class UserProfileUserSettingsCodeEditorAppSettings { + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + private @Nullable UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement appLifecycleManagement; + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + private @Nullable String builtInLifecycleConfigArn; /** * @return A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. * @@ -31,6 +42,20 @@ public final class UserProfileUserSettingsCodeEditorAppSettings { private @Nullable List lifecycleConfigArns; private UserProfileUserSettingsCodeEditorAppSettings() {} + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + public Optional appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + public Optional builtInLifecycleConfigArn() { + return Optional.ofNullable(this.builtInLifecycleConfigArn); + } /** * @return A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. * @@ -62,17 +87,33 @@ public static Builder builder(UserProfileUserSettingsCodeEditorAppSettings defau } @CustomType.Builder public static final class Builder { + private @Nullable UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement appLifecycleManagement; + private @Nullable String builtInLifecycleConfigArn; private @Nullable List customImages; private @Nullable UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpec defaultResourceSpec; private @Nullable List lifecycleConfigArns; public Builder() {} public Builder(UserProfileUserSettingsCodeEditorAppSettings defaults) { Objects.requireNonNull(defaults); + this.appLifecycleManagement = defaults.appLifecycleManagement; + this.builtInLifecycleConfigArn = defaults.builtInLifecycleConfigArn; this.customImages = defaults.customImages; this.defaultResourceSpec = defaults.defaultResourceSpec; this.lifecycleConfigArns = defaults.lifecycleConfigArns; } + @CustomType.Setter + public Builder appLifecycleManagement(@Nullable UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement appLifecycleManagement) { + + this.appLifecycleManagement = appLifecycleManagement; + return this; + } + @CustomType.Setter + public Builder builtInLifecycleConfigArn(@Nullable String builtInLifecycleConfigArn) { + + this.builtInLifecycleConfigArn = builtInLifecycleConfigArn; + return this; + } @CustomType.Setter public Builder customImages(@Nullable List customImages) { @@ -99,6 +140,8 @@ public Builder lifecycleConfigArns(String... lifecycleConfigArns) { } public UserProfileUserSettingsCodeEditorAppSettings build() { final var _resultValue = new UserProfileUserSettingsCodeEditorAppSettings(); + _resultValue.appLifecycleManagement = appLifecycleManagement; + _resultValue.builtInLifecycleConfigArn = builtInLifecycleConfigArn; _resultValue.customImages = customImages; _resultValue.defaultResourceSpec = defaultResourceSpec; _resultValue.lifecycleConfigArns = lifecycleConfigArns; diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement.java new file mode 100644 index 00000000000..297fd06e050 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement.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.sagemaker.outputs; + +import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + private @Nullable UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings idleSettings; + + private UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement() {} + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + public Optional idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings idleSettings; + public Builder() {} + public Builder(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement defaults) { + Objects.requireNonNull(defaults); + this.idleSettings = defaults.idleSettings; + } + + @CustomType.Setter + public Builder idleSettings(@Nullable UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings idleSettings) { + + this.idleSettings = idleSettings; + return this; + } + public UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement build() { + final var _resultValue = new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement(); + _resultValue.idleSettings = idleSettings; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.java new file mode 100644 index 00000000000..e897e493fe7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.java @@ -0,0 +1,121 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer idleTimeoutInMinutes; + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + private @Nullable String lifecycleManagement; + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer maxIdleTimeoutInMinutes; + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer minIdleTimeoutInMinutes; + + private UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings() {} + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + public Optional lifecycleManagement() { + return Optional.ofNullable(this.lifecycleManagement); + } + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional maxIdleTimeoutInMinutes() { + return Optional.ofNullable(this.maxIdleTimeoutInMinutes); + } + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional minIdleTimeoutInMinutes() { + return Optional.ofNullable(this.minIdleTimeoutInMinutes); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer idleTimeoutInMinutes; + private @Nullable String lifecycleManagement; + private @Nullable Integer maxIdleTimeoutInMinutes; + private @Nullable Integer minIdleTimeoutInMinutes; + public Builder() {} + public Builder(UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings defaults) { + Objects.requireNonNull(defaults); + this.idleTimeoutInMinutes = defaults.idleTimeoutInMinutes; + this.lifecycleManagement = defaults.lifecycleManagement; + this.maxIdleTimeoutInMinutes = defaults.maxIdleTimeoutInMinutes; + this.minIdleTimeoutInMinutes = defaults.minIdleTimeoutInMinutes; + } + + @CustomType.Setter + public Builder idleTimeoutInMinutes(@Nullable Integer idleTimeoutInMinutes) { + + this.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + @CustomType.Setter + public Builder lifecycleManagement(@Nullable String lifecycleManagement) { + + this.lifecycleManagement = lifecycleManagement; + return this; + } + @CustomType.Setter + public Builder maxIdleTimeoutInMinutes(@Nullable Integer maxIdleTimeoutInMinutes) { + + this.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + return this; + } + @CustomType.Setter + public Builder minIdleTimeoutInMinutes(@Nullable Integer minIdleTimeoutInMinutes) { + + this.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return this; + } + public UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings build() { + final var _resultValue = new UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings(); + _resultValue.idleTimeoutInMinutes = idleTimeoutInMinutes; + _resultValue.lifecycleManagement = lifecycleManagement; + _resultValue.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + _resultValue.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettings.java index a3d6e083e71..d3375280195 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettings.java @@ -3,9 +3,11 @@ package com.pulumi.aws.sagemaker.outputs; +import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement; import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsJupyterLabAppSettingsCodeRepository; import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsJupyterLabAppSettingsCustomImage; import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec; +import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsJupyterLabAppSettingsEmrSettings; import com.pulumi.core.annotations.CustomType; import java.lang.String; import java.util.List; @@ -15,6 +17,16 @@ @CustomType public final class UserProfileUserSettingsJupyterLabAppSettings { + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + private @Nullable UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement; + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + private @Nullable String builtInLifecycleConfigArn; /** * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. * @@ -26,6 +38,11 @@ public final class UserProfileUserSettingsJupyterLabAppSettings { * */ private @Nullable UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec; + /** + * @return The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + */ + private @Nullable UserProfileUserSettingsJupyterLabAppSettingsEmrSettings emrSettings; /** * @return The Amazon Resource Name (ARN) of the Lifecycle Configurations. * @@ -33,6 +50,20 @@ public final class UserProfileUserSettingsJupyterLabAppSettings { private @Nullable List lifecycleConfigArns; private UserProfileUserSettingsJupyterLabAppSettings() {} + /** + * @return Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + * + */ + public Optional appLifecycleManagement() { + return Optional.ofNullable(this.appLifecycleManagement); + } + /** + * @return The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + * + */ + public Optional builtInLifecycleConfigArn() { + return Optional.ofNullable(this.builtInLifecycleConfigArn); + } /** * @return A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. * @@ -50,6 +81,13 @@ public List customImage public Optional defaultResourceSpec() { return Optional.ofNullable(this.defaultResourceSpec); } + /** + * @return The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + * + */ + public Optional emrSettings() { + return Optional.ofNullable(this.emrSettings); + } /** * @return The Amazon Resource Name (ARN) of the Lifecycle Configurations. * @@ -67,19 +105,37 @@ public static Builder builder(UserProfileUserSettingsJupyterLabAppSettings defau } @CustomType.Builder public static final class Builder { + private @Nullable UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement; + private @Nullable String builtInLifecycleConfigArn; private @Nullable List codeRepositories; private @Nullable List customImages; private @Nullable UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec defaultResourceSpec; + private @Nullable UserProfileUserSettingsJupyterLabAppSettingsEmrSettings emrSettings; private @Nullable List lifecycleConfigArns; public Builder() {} public Builder(UserProfileUserSettingsJupyterLabAppSettings defaults) { Objects.requireNonNull(defaults); + this.appLifecycleManagement = defaults.appLifecycleManagement; + this.builtInLifecycleConfigArn = defaults.builtInLifecycleConfigArn; this.codeRepositories = defaults.codeRepositories; this.customImages = defaults.customImages; this.defaultResourceSpec = defaults.defaultResourceSpec; + this.emrSettings = defaults.emrSettings; this.lifecycleConfigArns = defaults.lifecycleConfigArns; } + @CustomType.Setter + public Builder appLifecycleManagement(@Nullable UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement appLifecycleManagement) { + + this.appLifecycleManagement = appLifecycleManagement; + return this; + } + @CustomType.Setter + public Builder builtInLifecycleConfigArn(@Nullable String builtInLifecycleConfigArn) { + + this.builtInLifecycleConfigArn = builtInLifecycleConfigArn; + return this; + } @CustomType.Setter public Builder codeRepositories(@Nullable List codeRepositories) { @@ -105,6 +161,12 @@ public Builder defaultResourceSpec(@Nullable UserProfileUserSettingsJupyterLabAp return this; } @CustomType.Setter + public Builder emrSettings(@Nullable UserProfileUserSettingsJupyterLabAppSettingsEmrSettings emrSettings) { + + this.emrSettings = emrSettings; + return this; + } + @CustomType.Setter public Builder lifecycleConfigArns(@Nullable List lifecycleConfigArns) { this.lifecycleConfigArns = lifecycleConfigArns; @@ -115,9 +177,12 @@ public Builder lifecycleConfigArns(String... lifecycleConfigArns) { } public UserProfileUserSettingsJupyterLabAppSettings build() { final var _resultValue = new UserProfileUserSettingsJupyterLabAppSettings(); + _resultValue.appLifecycleManagement = appLifecycleManagement; + _resultValue.builtInLifecycleConfigArn = builtInLifecycleConfigArn; _resultValue.codeRepositories = codeRepositories; _resultValue.customImages = customImages; _resultValue.defaultResourceSpec = defaultResourceSpec; + _resultValue.emrSettings = emrSettings; _resultValue.lifecycleConfigArns = lifecycleConfigArns; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement.java new file mode 100644 index 00000000000..fe253bfbe8c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement.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.sagemaker.outputs; + +import com.pulumi.aws.sagemaker.outputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + private @Nullable UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings; + + private UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement() {} + /** + * @return Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + * + */ + public Optional idleSettings() { + return Optional.ofNullable(this.idleSettings); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings; + public Builder() {} + public Builder(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement defaults) { + Objects.requireNonNull(defaults); + this.idleSettings = defaults.idleSettings; + } + + @CustomType.Setter + public Builder idleSettings(@Nullable UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings idleSettings) { + + this.idleSettings = idleSettings; + return this; + } + public UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement build() { + final var _resultValue = new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement(); + _resultValue.idleSettings = idleSettings; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java new file mode 100644 index 00000000000..79ffb4b2ca9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.java @@ -0,0 +1,121 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer idleTimeoutInMinutes; + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + private @Nullable String lifecycleManagement; + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer maxIdleTimeoutInMinutes; + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + private @Nullable Integer minIdleTimeoutInMinutes; + + private UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings() {} + /** + * @return The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + * + */ + public Optional idleTimeoutInMinutes() { + return Optional.ofNullable(this.idleTimeoutInMinutes); + } + /** + * @return Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + * + */ + public Optional lifecycleManagement() { + return Optional.ofNullable(this.lifecycleManagement); + } + /** + * @return The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional maxIdleTimeoutInMinutes() { + return Optional.ofNullable(this.maxIdleTimeoutInMinutes); + } + /** + * @return The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + * + */ + public Optional minIdleTimeoutInMinutes() { + return Optional.ofNullable(this.minIdleTimeoutInMinutes); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer idleTimeoutInMinutes; + private @Nullable String lifecycleManagement; + private @Nullable Integer maxIdleTimeoutInMinutes; + private @Nullable Integer minIdleTimeoutInMinutes; + public Builder() {} + public Builder(UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings defaults) { + Objects.requireNonNull(defaults); + this.idleTimeoutInMinutes = defaults.idleTimeoutInMinutes; + this.lifecycleManagement = defaults.lifecycleManagement; + this.maxIdleTimeoutInMinutes = defaults.maxIdleTimeoutInMinutes; + this.minIdleTimeoutInMinutes = defaults.minIdleTimeoutInMinutes; + } + + @CustomType.Setter + public Builder idleTimeoutInMinutes(@Nullable Integer idleTimeoutInMinutes) { + + this.idleTimeoutInMinutes = idleTimeoutInMinutes; + return this; + } + @CustomType.Setter + public Builder lifecycleManagement(@Nullable String lifecycleManagement) { + + this.lifecycleManagement = lifecycleManagement; + return this; + } + @CustomType.Setter + public Builder maxIdleTimeoutInMinutes(@Nullable Integer maxIdleTimeoutInMinutes) { + + this.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + return this; + } + @CustomType.Setter + public Builder minIdleTimeoutInMinutes(@Nullable Integer minIdleTimeoutInMinutes) { + + this.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return this; + } + public UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings build() { + final var _resultValue = new UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings(); + _resultValue.idleTimeoutInMinutes = idleTimeoutInMinutes; + _resultValue.lifecycleManagement = lifecycleManagement; + _resultValue.maxIdleTimeoutInMinutes = maxIdleTimeoutInMinutes; + _resultValue.minIdleTimeoutInMinutes = minIdleTimeoutInMinutes; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettings.java new file mode 100644 index 00000000000..89ffa974e23 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsJupyterLabAppSettingsEmrSettings.java @@ -0,0 +1,84 @@ +// *** 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.sagemaker.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class UserProfileUserSettingsJupyterLabAppSettingsEmrSettings { + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + private @Nullable List assumableRoleArns; + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + private @Nullable List executionRoleArns; + + private UserProfileUserSettingsJupyterLabAppSettingsEmrSettings() {} + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + * + */ + public List assumableRoleArns() { + return this.assumableRoleArns == null ? List.of() : this.assumableRoleArns; + } + /** + * @return An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + * + */ + public List executionRoleArns() { + return this.executionRoleArns == null ? List.of() : this.executionRoleArns; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(UserProfileUserSettingsJupyterLabAppSettingsEmrSettings defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List assumableRoleArns; + private @Nullable List executionRoleArns; + public Builder() {} + public Builder(UserProfileUserSettingsJupyterLabAppSettingsEmrSettings defaults) { + Objects.requireNonNull(defaults); + this.assumableRoleArns = defaults.assumableRoleArns; + this.executionRoleArns = defaults.executionRoleArns; + } + + @CustomType.Setter + public Builder assumableRoleArns(@Nullable List assumableRoleArns) { + + this.assumableRoleArns = assumableRoleArns; + return this; + } + public Builder assumableRoleArns(String... assumableRoleArns) { + return assumableRoleArns(List.of(assumableRoleArns)); + } + @CustomType.Setter + public Builder executionRoleArns(@Nullable List executionRoleArns) { + + this.executionRoleArns = executionRoleArns; + return this; + } + public Builder executionRoleArns(String... executionRoleArns) { + return executionRoleArns(List.of(executionRoleArns)); + } + public UserProfileUserSettingsJupyterLabAppSettingsEmrSettings build() { + final var _resultValue = new UserProfileUserSettingsJupyterLabAppSettingsEmrSettings(); + _resultValue.assumableRoleArns = assumableRoleArns; + _resultValue.executionRoleArns = executionRoleArns; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsStudioWebPortalSettings.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsStudioWebPortalSettings.java index db1ff8da12f..ba8d18cffac 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsStudioWebPortalSettings.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/outputs/UserProfileUserSettingsStudioWebPortalSettings.java @@ -16,6 +16,11 @@ public final class UserProfileUserSettingsStudioWebPortalSettings { * */ private @Nullable List hiddenAppTypes; + /** + * @return The instance types you are hiding from the Studio user interface. + * + */ + private @Nullable List hiddenInstanceTypes; /** * @return The machine learning tools that are hidden from the Studio left navigation pane. * @@ -30,6 +35,13 @@ private UserProfileUserSettingsStudioWebPortalSettings() {} public List hiddenAppTypes() { return this.hiddenAppTypes == null ? List.of() : this.hiddenAppTypes; } + /** + * @return The instance types you are hiding from the Studio user interface. + * + */ + public List hiddenInstanceTypes() { + return this.hiddenInstanceTypes == null ? List.of() : this.hiddenInstanceTypes; + } /** * @return The machine learning tools that are hidden from the Studio left navigation pane. * @@ -48,11 +60,13 @@ public static Builder builder(UserProfileUserSettingsStudioWebPortalSettings def @CustomType.Builder public static final class Builder { private @Nullable List hiddenAppTypes; + private @Nullable List hiddenInstanceTypes; private @Nullable List hiddenMlTools; public Builder() {} public Builder(UserProfileUserSettingsStudioWebPortalSettings defaults) { Objects.requireNonNull(defaults); this.hiddenAppTypes = defaults.hiddenAppTypes; + this.hiddenInstanceTypes = defaults.hiddenInstanceTypes; this.hiddenMlTools = defaults.hiddenMlTools; } @@ -66,6 +80,15 @@ public Builder hiddenAppTypes(String... hiddenAppTypes) { return hiddenAppTypes(List.of(hiddenAppTypes)); } @CustomType.Setter + public Builder hiddenInstanceTypes(@Nullable List hiddenInstanceTypes) { + + this.hiddenInstanceTypes = hiddenInstanceTypes; + return this; + } + public Builder hiddenInstanceTypes(String... hiddenInstanceTypes) { + return hiddenInstanceTypes(List.of(hiddenInstanceTypes)); + } + @CustomType.Setter public Builder hiddenMlTools(@Nullable List hiddenMlTools) { this.hiddenMlTools = hiddenMlTools; @@ -77,6 +100,7 @@ public Builder hiddenMlTools(String... hiddenMlTools) { public UserProfileUserSettingsStudioWebPortalSettings build() { final var _resultValue = new UserProfileUserSettingsStudioWebPortalSettings(); _resultValue.hiddenAppTypes = hiddenAppTypes; + _resultValue.hiddenInstanceTypes = hiddenInstanceTypes; _resultValue.hiddenMlTools = hiddenMlTools; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsSubscription.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsSubscription.java index a645259d60c..b37477ad034 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsSubscription.java +++ b/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsSubscription.java @@ -95,6 +95,7 @@ public class StandardsSubscription extends com.pulumi.resources.CustomResource { * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | * @@ -113,6 +114,7 @@ public class StandardsSubscription extends com.pulumi.resources.CustomResource { * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | * diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsSubscriptionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsSubscriptionArgs.java index 0f53978987a..73463ac7015 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsSubscriptionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/securityhub/StandardsSubscriptionArgs.java @@ -25,6 +25,7 @@ public final class StandardsSubscriptionArgs extends com.pulumi.resources.Resour * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | * @@ -43,6 +44,7 @@ public final class StandardsSubscriptionArgs extends com.pulumi.resources.Resour * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | * @@ -86,6 +88,7 @@ public Builder(StandardsSubscriptionArgs defaults) { * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | * @@ -108,6 +111,7 @@ public Builder standardsArn(Output standardsArn) { * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | * diff --git a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/StandardsSubscriptionState.java b/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/StandardsSubscriptionState.java index 2013628317f..abb85202c98 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/StandardsSubscriptionState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/securityhub/inputs/StandardsSubscriptionState.java @@ -26,6 +26,7 @@ public final class StandardsSubscriptionState extends com.pulumi.resources.Resou * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | * @@ -44,6 +45,7 @@ public final class StandardsSubscriptionState extends com.pulumi.resources.Resou * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | * @@ -87,6 +89,7 @@ public Builder(StandardsSubscriptionState defaults) { * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | * @@ -109,6 +112,7 @@ public Builder standardsArn(@Nullable Output standardsArn) { * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ssm/SsmFunctions.java b/sdk/java/src/main/java/com/pulumi/aws/ssm/SsmFunctions.java index aa56a5b76f1..193210dfa48 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ssm/SsmFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ssm/SsmFunctions.java @@ -18,6 +18,8 @@ import com.pulumi.aws.ssm.inputs.GetParametersByPathPlainArgs; import com.pulumi.aws.ssm.inputs.GetPatchBaselineArgs; import com.pulumi.aws.ssm.inputs.GetPatchBaselinePlainArgs; +import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs; +import com.pulumi.aws.ssm.inputs.GetPatchBaselinesPlainArgs; import com.pulumi.aws.ssm.outputs.GetContactsRotationResult; import com.pulumi.aws.ssm.outputs.GetDocumentResult; import com.pulumi.aws.ssm.outputs.GetInstancesResult; @@ -25,6 +27,7 @@ import com.pulumi.aws.ssm.outputs.GetParameterResult; import com.pulumi.aws.ssm.outputs.GetParametersByPathResult; import com.pulumi.aws.ssm.outputs.GetPatchBaselineResult; +import com.pulumi.aws.ssm.outputs.GetPatchBaselinesResult; import com.pulumi.core.Output; import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; @@ -1592,4 +1595,514 @@ public static Output getPatchBaseline(GetPatchBaselineAr public static CompletableFuture getPatchBaselinePlain(GetPatchBaselinePlainArgs args, InvokeOptions options) { return Deployment.getInstance().invokeAsync("aws:ssm/getPatchBaseline:getPatchBaseline", TypeShape.of(GetPatchBaselineResult.class), args, Utilities.withVersion(options)); } + /** + * Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + * + * ## 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.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * ### With Filters + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines(GetPatchBaselinesArgs.builder()
+     *             .filters(            
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OWNER")
+     *                     .values("AWS")
+     *                     .build(),
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OPERATING_SYSTEM")
+     *                     .values("WINDOWS")
+     *                     .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getPatchBaselines() { + return getPatchBaselines(GetPatchBaselinesArgs.Empty, InvokeOptions.Empty); + } + /** + * Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + * + * ## 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.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * ### With Filters + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines(GetPatchBaselinesArgs.builder()
+     *             .filters(            
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OWNER")
+     *                     .values("AWS")
+     *                     .build(),
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OPERATING_SYSTEM")
+     *                     .values("WINDOWS")
+     *                     .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getPatchBaselinesPlain() { + return getPatchBaselinesPlain(GetPatchBaselinesPlainArgs.Empty, InvokeOptions.Empty); + } + /** + * Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + * + * ## 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.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * ### With Filters + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines(GetPatchBaselinesArgs.builder()
+     *             .filters(            
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OWNER")
+     *                     .values("AWS")
+     *                     .build(),
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OPERATING_SYSTEM")
+     *                     .values("WINDOWS")
+     *                     .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getPatchBaselines(GetPatchBaselinesArgs args) { + return getPatchBaselines(args, InvokeOptions.Empty); + } + /** + * Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + * + * ## 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.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * ### With Filters + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines(GetPatchBaselinesArgs.builder()
+     *             .filters(            
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OWNER")
+     *                     .values("AWS")
+     *                     .build(),
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OPERATING_SYSTEM")
+     *                     .values("WINDOWS")
+     *                     .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getPatchBaselinesPlain(GetPatchBaselinesPlainArgs args) { + return getPatchBaselinesPlain(args, InvokeOptions.Empty); + } + /** + * Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + * + * ## 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.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * ### With Filters + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines(GetPatchBaselinesArgs.builder()
+     *             .filters(            
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OWNER")
+     *                     .values("AWS")
+     *                     .build(),
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OPERATING_SYSTEM")
+     *                     .values("WINDOWS")
+     *                     .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getPatchBaselines(GetPatchBaselinesArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("aws:ssm/getPatchBaselines:getPatchBaselines", TypeShape.of(GetPatchBaselinesResult.class), args, Utilities.withVersion(options)); + } + /** + * Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + * + * ## 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.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * ### With Filters + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.ssm.SsmFunctions;
+     * import com.pulumi.aws.ssm.inputs.GetPatchBaselinesArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = SsmFunctions.getPatchBaselines(GetPatchBaselinesArgs.builder()
+     *             .filters(            
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OWNER")
+     *                     .values("AWS")
+     *                     .build(),
+     *                 GetPatchBaselinesFilterArgs.builder()
+     *                     .key("OPERATING_SYSTEM")
+     *                     .values("WINDOWS")
+     *                     .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getPatchBaselinesPlain(GetPatchBaselinesPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("aws:ssm/getPatchBaselines:getPatchBaselines", TypeShape.of(GetPatchBaselinesResult.class), args, Utilities.withVersion(options)); + } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesArgs.java new file mode 100644 index 00000000000..638f4933333 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesArgs.java @@ -0,0 +1,132 @@ +// *** 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.ssm.inputs; + +import com.pulumi.aws.ssm.inputs.GetPatchBaselinesFilterArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetPatchBaselinesArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetPatchBaselinesArgs Empty = new GetPatchBaselinesArgs(); + + /** + * Only return baseline identities where `default_baseline` is `true`. + * + */ + @Import(name="defaultBaselines") + private @Nullable Output defaultBaselines; + + /** + * @return Only return baseline identities where `default_baseline` is `true`. + * + */ + public Optional> defaultBaselines() { + return Optional.ofNullable(this.defaultBaselines); + } + + /** + * Key-value pairs used to filter the results. See `filter` below. + * + */ + @Import(name="filters") + private @Nullable Output> filters; + + /** + * @return Key-value pairs used to filter the results. See `filter` below. + * + */ + public Optional>> filters() { + return Optional.ofNullable(this.filters); + } + + private GetPatchBaselinesArgs() {} + + private GetPatchBaselinesArgs(GetPatchBaselinesArgs $) { + this.defaultBaselines = $.defaultBaselines; + this.filters = $.filters; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetPatchBaselinesArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetPatchBaselinesArgs $; + + public Builder() { + $ = new GetPatchBaselinesArgs(); + } + + public Builder(GetPatchBaselinesArgs defaults) { + $ = new GetPatchBaselinesArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param defaultBaselines Only return baseline identities where `default_baseline` is `true`. + * + * @return builder + * + */ + public Builder defaultBaselines(@Nullable Output defaultBaselines) { + $.defaultBaselines = defaultBaselines; + return this; + } + + /** + * @param defaultBaselines Only return baseline identities where `default_baseline` is `true`. + * + * @return builder + * + */ + public Builder defaultBaselines(Boolean defaultBaselines) { + return defaultBaselines(Output.of(defaultBaselines)); + } + + /** + * @param filters Key-value pairs used to filter the results. See `filter` below. + * + * @return builder + * + */ + public Builder filters(@Nullable Output> filters) { + $.filters = filters; + return this; + } + + /** + * @param filters Key-value pairs used to filter the results. See `filter` below. + * + * @return builder + * + */ + public Builder filters(List filters) { + return filters(Output.of(filters)); + } + + /** + * @param filters Key-value pairs used to filter the results. See `filter` below. + * + * @return builder + * + */ + public Builder filters(GetPatchBaselinesFilterArgs... filters) { + return filters(List.of(filters)); + } + + public GetPatchBaselinesArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesFilter.java b/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesFilter.java new file mode 100644 index 00000000000..7e4a2dbf4d3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesFilter.java @@ -0,0 +1,115 @@ +// *** 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.ssm.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 GetPatchBaselinesFilter extends com.pulumi.resources.InvokeArgs { + + public static final GetPatchBaselinesFilter Empty = new GetPatchBaselinesFilter(); + + /** + * Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + * + */ + @Import(name="key", required=true) + private String key; + + /** + * @return Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + * + */ + public String key() { + return this.key; + } + + /** + * Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + */ + @Import(name="values", required=true) + private List values; + + /** + * @return Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + */ + public List values() { + return this.values; + } + + private GetPatchBaselinesFilter() {} + + private GetPatchBaselinesFilter(GetPatchBaselinesFilter $) { + this.key = $.key; + this.values = $.values; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetPatchBaselinesFilter defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetPatchBaselinesFilter $; + + public Builder() { + $ = new GetPatchBaselinesFilter(); + } + + public Builder(GetPatchBaselinesFilter defaults) { + $ = new GetPatchBaselinesFilter(Objects.requireNonNull(defaults)); + } + + /** + * @param key Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + * + * @return builder + * + */ + public Builder key(String key) { + $.key = key; + return this; + } + + /** + * @param values Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + * @return builder + * + */ + public Builder values(List values) { + $.values = values; + return this; + } + + /** + * @param values Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + * @return builder + * + */ + public Builder values(String... values) { + return values(List.of(values)); + } + + public GetPatchBaselinesFilter build() { + if ($.key == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesFilter", "key"); + } + if ($.values == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesFilter", "values"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesFilterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesFilterArgs.java new file mode 100644 index 00000000000..b4e04073997 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesFilterArgs.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.ssm.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 GetPatchBaselinesFilterArgs extends com.pulumi.resources.ResourceArgs { + + public static final GetPatchBaselinesFilterArgs Empty = new GetPatchBaselinesFilterArgs(); + + /** + * Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + * + */ + @Import(name="key", required=true) + private Output key; + + /** + * @return Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + * + */ + public Output key() { + return this.key; + } + + /** + * Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + */ + @Import(name="values", required=true) + private Output> values; + + /** + * @return Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + */ + public Output> values() { + return this.values; + } + + private GetPatchBaselinesFilterArgs() {} + + private GetPatchBaselinesFilterArgs(GetPatchBaselinesFilterArgs $) { + this.key = $.key; + this.values = $.values; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetPatchBaselinesFilterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetPatchBaselinesFilterArgs $; + + public Builder() { + $ = new GetPatchBaselinesFilterArgs(); + } + + public Builder(GetPatchBaselinesFilterArgs defaults) { + $ = new GetPatchBaselinesFilterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param key Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + * + * @return builder + * + */ + public Builder key(Output key) { + $.key = key; + return this; + } + + /** + * @param key Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + * + * @return builder + * + */ + public Builder key(String key) { + return key(Output.of(key)); + } + + /** + * @param values Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + * @return builder + * + */ + public Builder values(Output> values) { + $.values = values; + return this; + } + + /** + * @param values Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + * @return builder + * + */ + public Builder values(List values) { + return values(Output.of(values)); + } + + /** + * @param values Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + * @return builder + * + */ + public Builder values(String... values) { + return values(List.of(values)); + } + + public GetPatchBaselinesFilterArgs build() { + if ($.key == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesFilterArgs", "key"); + } + if ($.values == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesFilterArgs", "values"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesPlainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesPlainArgs.java new file mode 100644 index 00000000000..c79b7771d2c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ssm/inputs/GetPatchBaselinesPlainArgs.java @@ -0,0 +1,111 @@ +// *** 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.ssm.inputs; + +import com.pulumi.aws.ssm.inputs.GetPatchBaselinesFilter; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetPatchBaselinesPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetPatchBaselinesPlainArgs Empty = new GetPatchBaselinesPlainArgs(); + + /** + * Only return baseline identities where `default_baseline` is `true`. + * + */ + @Import(name="defaultBaselines") + private @Nullable Boolean defaultBaselines; + + /** + * @return Only return baseline identities where `default_baseline` is `true`. + * + */ + public Optional defaultBaselines() { + return Optional.ofNullable(this.defaultBaselines); + } + + /** + * Key-value pairs used to filter the results. See `filter` below. + * + */ + @Import(name="filters") + private @Nullable List filters; + + /** + * @return Key-value pairs used to filter the results. See `filter` below. + * + */ + public Optional> filters() { + return Optional.ofNullable(this.filters); + } + + private GetPatchBaselinesPlainArgs() {} + + private GetPatchBaselinesPlainArgs(GetPatchBaselinesPlainArgs $) { + this.defaultBaselines = $.defaultBaselines; + this.filters = $.filters; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetPatchBaselinesPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetPatchBaselinesPlainArgs $; + + public Builder() { + $ = new GetPatchBaselinesPlainArgs(); + } + + public Builder(GetPatchBaselinesPlainArgs defaults) { + $ = new GetPatchBaselinesPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param defaultBaselines Only return baseline identities where `default_baseline` is `true`. + * + * @return builder + * + */ + public Builder defaultBaselines(@Nullable Boolean defaultBaselines) { + $.defaultBaselines = defaultBaselines; + return this; + } + + /** + * @param filters Key-value pairs used to filter the results. See `filter` below. + * + * @return builder + * + */ + public Builder filters(@Nullable List filters) { + $.filters = filters; + return this; + } + + /** + * @param filters Key-value pairs used to filter the results. See `filter` below. + * + * @return builder + * + */ + public Builder filters(GetPatchBaselinesFilter... filters) { + return filters(List.of(filters)); + } + + public GetPatchBaselinesPlainArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ssm/outputs/GetPatchBaselinesBaselineIdentity.java b/sdk/java/src/main/java/com/pulumi/aws/ssm/outputs/GetPatchBaselinesBaselineIdentity.java new file mode 100644 index 00000000000..9d3c347def4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ssm/outputs/GetPatchBaselinesBaselineIdentity.java @@ -0,0 +1,151 @@ +// *** 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.ssm.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetPatchBaselinesBaselineIdentity { + /** + * @return Description of the patch baseline. + * + */ + private String baselineDescription; + /** + * @return ID of the patch baseline. + * + */ + private String baselineId; + /** + * @return Name of the patch baseline. + * + */ + private String baselineName; + /** + * @return Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. + * + */ + private Boolean defaultBaseline; + /** + * @return Operating system the patch baseline applies to. + * + */ + private String operatingSystem; + + private GetPatchBaselinesBaselineIdentity() {} + /** + * @return Description of the patch baseline. + * + */ + public String baselineDescription() { + return this.baselineDescription; + } + /** + * @return ID of the patch baseline. + * + */ + public String baselineId() { + return this.baselineId; + } + /** + * @return Name of the patch baseline. + * + */ + public String baselineName() { + return this.baselineName; + } + /** + * @return Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. + * + */ + public Boolean defaultBaseline() { + return this.defaultBaseline; + } + /** + * @return Operating system the patch baseline applies to. + * + */ + public String operatingSystem() { + return this.operatingSystem; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetPatchBaselinesBaselineIdentity defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String baselineDescription; + private String baselineId; + private String baselineName; + private Boolean defaultBaseline; + private String operatingSystem; + public Builder() {} + public Builder(GetPatchBaselinesBaselineIdentity defaults) { + Objects.requireNonNull(defaults); + this.baselineDescription = defaults.baselineDescription; + this.baselineId = defaults.baselineId; + this.baselineName = defaults.baselineName; + this.defaultBaseline = defaults.defaultBaseline; + this.operatingSystem = defaults.operatingSystem; + } + + @CustomType.Setter + public Builder baselineDescription(String baselineDescription) { + if (baselineDescription == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesBaselineIdentity", "baselineDescription"); + } + this.baselineDescription = baselineDescription; + return this; + } + @CustomType.Setter + public Builder baselineId(String baselineId) { + if (baselineId == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesBaselineIdentity", "baselineId"); + } + this.baselineId = baselineId; + return this; + } + @CustomType.Setter + public Builder baselineName(String baselineName) { + if (baselineName == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesBaselineIdentity", "baselineName"); + } + this.baselineName = baselineName; + return this; + } + @CustomType.Setter + public Builder defaultBaseline(Boolean defaultBaseline) { + if (defaultBaseline == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesBaselineIdentity", "defaultBaseline"); + } + this.defaultBaseline = defaultBaseline; + return this; + } + @CustomType.Setter + public Builder operatingSystem(String operatingSystem) { + if (operatingSystem == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesBaselineIdentity", "operatingSystem"); + } + this.operatingSystem = operatingSystem; + return this; + } + public GetPatchBaselinesBaselineIdentity build() { + final var _resultValue = new GetPatchBaselinesBaselineIdentity(); + _resultValue.baselineDescription = baselineDescription; + _resultValue.baselineId = baselineId; + _resultValue.baselineName = baselineName; + _resultValue.defaultBaseline = defaultBaseline; + _resultValue.operatingSystem = operatingSystem; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ssm/outputs/GetPatchBaselinesFilter.java b/sdk/java/src/main/java/com/pulumi/aws/ssm/outputs/GetPatchBaselinesFilter.java new file mode 100644 index 00000000000..b4edbe611dd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ssm/outputs/GetPatchBaselinesFilter.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.ssm.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetPatchBaselinesFilter { + /** + * @return Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + * + */ + private String key; + /** + * @return Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + */ + private List values; + + private GetPatchBaselinesFilter() {} + /** + * @return Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + * + */ + public String key() { + return this.key; + } + /** + * @return Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + * + */ + public List values() { + return this.values; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetPatchBaselinesFilter defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String key; + private List values; + public Builder() {} + public Builder(GetPatchBaselinesFilter defaults) { + Objects.requireNonNull(defaults); + this.key = defaults.key; + this.values = defaults.values; + } + + @CustomType.Setter + public Builder key(String key) { + if (key == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesFilter", "key"); + } + this.key = key; + return this; + } + @CustomType.Setter + public Builder values(List values) { + if (values == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesFilter", "values"); + } + this.values = values; + return this; + } + public Builder values(String... values) { + return values(List.of(values)); + } + public GetPatchBaselinesFilter build() { + final var _resultValue = new GetPatchBaselinesFilter(); + _resultValue.key = key; + _resultValue.values = values; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ssm/outputs/GetPatchBaselinesResult.java b/sdk/java/src/main/java/com/pulumi/aws/ssm/outputs/GetPatchBaselinesResult.java new file mode 100644 index 00000000000..22a61992e3a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ssm/outputs/GetPatchBaselinesResult.java @@ -0,0 +1,119 @@ +// *** 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.ssm.outputs; + +import com.pulumi.aws.ssm.outputs.GetPatchBaselinesBaselineIdentity; +import com.pulumi.aws.ssm.outputs.GetPatchBaselinesFilter; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class GetPatchBaselinesResult { + /** + * @return List of baseline identities. See `baseline_identities` below. + * + */ + private List baselineIdentities; + private @Nullable Boolean defaultBaselines; + private @Nullable List filters; + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + + private GetPatchBaselinesResult() {} + /** + * @return List of baseline identities. See `baseline_identities` below. + * + */ + public List baselineIdentities() { + return this.baselineIdentities; + } + public Optional defaultBaselines() { + return Optional.ofNullable(this.defaultBaselines); + } + public List filters() { + return this.filters == null ? List.of() : this.filters; + } + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetPatchBaselinesResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List baselineIdentities; + private @Nullable Boolean defaultBaselines; + private @Nullable List filters; + private String id; + public Builder() {} + public Builder(GetPatchBaselinesResult defaults) { + Objects.requireNonNull(defaults); + this.baselineIdentities = defaults.baselineIdentities; + this.defaultBaselines = defaults.defaultBaselines; + this.filters = defaults.filters; + this.id = defaults.id; + } + + @CustomType.Setter + public Builder baselineIdentities(List baselineIdentities) { + if (baselineIdentities == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesResult", "baselineIdentities"); + } + this.baselineIdentities = baselineIdentities; + return this; + } + public Builder baselineIdentities(GetPatchBaselinesBaselineIdentity... baselineIdentities) { + return baselineIdentities(List.of(baselineIdentities)); + } + @CustomType.Setter + public Builder defaultBaselines(@Nullable Boolean defaultBaselines) { + + this.defaultBaselines = defaultBaselines; + return this; + } + @CustomType.Setter + public Builder filters(@Nullable List filters) { + + this.filters = filters; + return this; + } + public Builder filters(GetPatchBaselinesFilter... filters) { + return filters(List.of(filters)); + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetPatchBaselinesResult", "id"); + } + this.id = id; + return this; + } + public GetPatchBaselinesResult build() { + final var _resultValue = new GetPatchBaselinesResult(); + _resultValue.baselineIdentities = baselineIdentities; + _resultValue.defaultBaselines = defaultBaselines; + _resultValue.filters = filters; + _resultValue.id = id; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/Group.java b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/Group.java index 035470f4e60..21e4943b276 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/Group.java +++ b/sdk/java/src/main/java/com/pulumi/aws/verifiedaccess/Group.java @@ -59,6 +59,46 @@ * ### Usage with KMS Key * * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.kms.Key;
+ * import com.pulumi.aws.kms.KeyArgs;
+ * import com.pulumi.aws.verifiedaccess.Group;
+ * import com.pulumi.aws.verifiedaccess.GroupArgs;
+ * import com.pulumi.aws.verifiedaccess.inputs.GroupSseConfigurationArgs;
+ * 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 testKey = new Key("testKey", KeyArgs.builder()
+ *             .description("KMS key for Verified Access Group test")
+ *             .build());
+ * 
+ *         var test = new Group("test", GroupArgs.builder()
+ *             .verifiedaccessInstanceId(testAwsVerifiedaccessInstanceTrustProviderAttachment.verifiedaccessInstanceId())
+ *             .sseConfiguration(GroupSseConfigurationArgs.builder()
+ *                 .kmsKeyArn(testKey.arn())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
* <!--End PulumiCodeChooser --> * */ diff --git a/sdk/nodejs/alb/getLoadBalancer.ts b/sdk/nodejs/alb/getLoadBalancer.ts index c24202ffefe..b253eafe4f4 100644 --- a/sdk/nodejs/alb/getLoadBalancer.ts +++ b/sdk/nodejs/alb/getLoadBalancer.ts @@ -81,6 +81,7 @@ export interface GetLoadBalancerResult { readonly enableTlsVersionAndCipherSuiteHeaders: boolean; readonly enableWafFailOpen: boolean; readonly enableXffClientPort: boolean; + readonly enableZonalShift: boolean; readonly enforceSecurityGroupInboundRulesOnPrivateLinkTraffic: string; /** * The provider-assigned unique ID for this managed resource. diff --git a/sdk/nodejs/alb/listener.ts b/sdk/nodejs/alb/listener.ts index c4285bea0a7..58e55c18c21 100644 --- a/sdk/nodejs/alb/listener.ts +++ b/sdk/nodejs/alb/listener.ts @@ -300,6 +300,10 @@ export class Listener extends pulumi.CustomResource { * @deprecated Please use `tags` instead. */ public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + */ + public readonly tcpIdleTimeoutSeconds!: pulumi.Output; /** * Create a Listener resource with the given unique name, arguments, and options. @@ -325,6 +329,7 @@ export class Listener extends pulumi.CustomResource { resourceInputs["sslPolicy"] = state ? state.sslPolicy : undefined; resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["tcpIdleTimeoutSeconds"] = state ? state.tcpIdleTimeoutSeconds : undefined; } else { const args = argsOrState as ListenerArgs | undefined; if ((!args || args.defaultActions === undefined) && !opts.urn) { @@ -342,6 +347,7 @@ export class Listener extends pulumi.CustomResource { resourceInputs["protocol"] = args ? args.protocol : undefined; resourceInputs["sslPolicy"] = args ? args.sslPolicy : undefined; resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["tcpIdleTimeoutSeconds"] = args ? args.tcpIdleTimeoutSeconds : undefined; resourceInputs["arn"] = undefined /*out*/; resourceInputs["tagsAll"] = undefined /*out*/; } @@ -404,6 +410,10 @@ export interface ListenerState { * @deprecated Please use `tags` instead. */ tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + */ + tcpIdleTimeoutSeconds?: pulumi.Input; } /** @@ -448,4 +458,8 @@ export interface ListenerArgs { * A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + */ + tcpIdleTimeoutSeconds?: pulumi.Input; } diff --git a/sdk/nodejs/alb/loadBalancer.ts b/sdk/nodejs/alb/loadBalancer.ts index 7ea1c39996d..ddc2408821a 100644 --- a/sdk/nodejs/alb/loadBalancer.ts +++ b/sdk/nodejs/alb/loadBalancer.ts @@ -202,6 +202,10 @@ export class LoadBalancer extends pulumi.CustomResource { * Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. */ public readonly enableXffClientPort!: pulumi.Output; + /** + * Whether zonal shift is enabled. Defaults to `false`. + */ + public readonly enableZonalShift!: pulumi.Output; /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. */ @@ -295,6 +299,7 @@ export class LoadBalancer extends pulumi.CustomResource { resourceInputs["enableTlsVersionAndCipherSuiteHeaders"] = state ? state.enableTlsVersionAndCipherSuiteHeaders : undefined; resourceInputs["enableWafFailOpen"] = state ? state.enableWafFailOpen : undefined; resourceInputs["enableXffClientPort"] = state ? state.enableXffClientPort : undefined; + resourceInputs["enableZonalShift"] = state ? state.enableZonalShift : undefined; resourceInputs["enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"] = state ? state.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic : undefined; resourceInputs["idleTimeout"] = state ? state.idleTimeout : undefined; resourceInputs["internal"] = state ? state.internal : undefined; @@ -326,6 +331,7 @@ export class LoadBalancer extends pulumi.CustomResource { resourceInputs["enableTlsVersionAndCipherSuiteHeaders"] = args ? args.enableTlsVersionAndCipherSuiteHeaders : undefined; resourceInputs["enableWafFailOpen"] = args ? args.enableWafFailOpen : undefined; resourceInputs["enableXffClientPort"] = args ? args.enableXffClientPort : undefined; + resourceInputs["enableZonalShift"] = args ? args.enableZonalShift : undefined; resourceInputs["enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"] = args ? args.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic : undefined; resourceInputs["idleTimeout"] = args ? args.idleTimeout : undefined; resourceInputs["internal"] = args ? args.internal : undefined; @@ -421,6 +427,10 @@ export interface LoadBalancerState { * Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. */ enableXffClientPort?: pulumi.Input; + /** + * Whether zonal shift is enabled. Defaults to `false`. + */ + enableZonalShift?: pulumi.Input; /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. */ @@ -542,6 +552,10 @@ export interface LoadBalancerArgs { * Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. */ enableXffClientPort?: pulumi.Input; + /** + * Whether zonal shift is enabled. Defaults to `false`. + */ + enableZonalShift?: pulumi.Input; /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. */ diff --git a/sdk/nodejs/codedeploy/deploymentConfig.ts b/sdk/nodejs/codedeploy/deploymentConfig.ts index c7eab5513c8..b7e68190787 100644 --- a/sdk/nodejs/codedeploy/deploymentConfig.ts +++ b/sdk/nodejs/codedeploy/deploymentConfig.ts @@ -144,6 +144,10 @@ export class DeploymentConfig extends pulumi.CustomResource { * A trafficRoutingConfig block. Traffic Routing Config is documented below. */ public readonly trafficRoutingConfig!: pulumi.Output; + /** + * A zonalConfig block. Zonal Config is documented below. + */ + public readonly zonalConfig!: pulumi.Output; /** * Create a DeploymentConfig resource with the given unique name, arguments, and options. @@ -164,12 +168,14 @@ export class DeploymentConfig extends pulumi.CustomResource { resourceInputs["deploymentConfigName"] = state ? state.deploymentConfigName : undefined; resourceInputs["minimumHealthyHosts"] = state ? state.minimumHealthyHosts : undefined; resourceInputs["trafficRoutingConfig"] = state ? state.trafficRoutingConfig : undefined; + resourceInputs["zonalConfig"] = state ? state.zonalConfig : undefined; } else { const args = argsOrState as DeploymentConfigArgs | undefined; resourceInputs["computePlatform"] = args ? args.computePlatform : undefined; resourceInputs["deploymentConfigName"] = args ? args.deploymentConfigName : undefined; resourceInputs["minimumHealthyHosts"] = args ? args.minimumHealthyHosts : undefined; resourceInputs["trafficRoutingConfig"] = args ? args.trafficRoutingConfig : undefined; + resourceInputs["zonalConfig"] = args ? args.zonalConfig : undefined; resourceInputs["arn"] = undefined /*out*/; resourceInputs["deploymentConfigId"] = undefined /*out*/; } @@ -206,6 +212,10 @@ export interface DeploymentConfigState { * A trafficRoutingConfig block. Traffic Routing Config is documented below. */ trafficRoutingConfig?: pulumi.Input; + /** + * A zonalConfig block. Zonal Config is documented below. + */ + zonalConfig?: pulumi.Input; } /** @@ -228,4 +238,8 @@ export interface DeploymentConfigArgs { * A trafficRoutingConfig block. Traffic Routing Config is documented below. */ trafficRoutingConfig?: pulumi.Input; + /** + * A zonalConfig block. Zonal Config is documented below. + */ + zonalConfig?: pulumi.Input; } diff --git a/sdk/nodejs/dynamodb/kinesisStreamingDestination.ts b/sdk/nodejs/dynamodb/kinesisStreamingDestination.ts index 1c2440e44ed..946ab8eafee 100644 --- a/sdk/nodejs/dynamodb/kinesisStreamingDestination.ts +++ b/sdk/nodejs/dynamodb/kinesisStreamingDestination.ts @@ -28,6 +28,7 @@ import * as utilities from "../utilities"; * const exampleKinesisStreamingDestination = new aws.dynamodb.KinesisStreamingDestination("example", { * streamArn: exampleStream.arn, * tableName: example.name, + * approximateCreationDateTimePrecision: "MICROSECOND", * }); * ``` * @@ -67,13 +68,16 @@ export class KinesisStreamingDestination extends pulumi.CustomResource { return obj['__pulumiType'] === KinesisStreamingDestination.__pulumiType; } + /** + * Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + */ + public readonly approximateCreationDateTimePrecision!: pulumi.Output; /** * The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. */ public readonly streamArn!: pulumi.Output; /** - * The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. */ public readonly tableName!: pulumi.Output; @@ -90,6 +94,7 @@ export class KinesisStreamingDestination extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as KinesisStreamingDestinationState | undefined; + resourceInputs["approximateCreationDateTimePrecision"] = state ? state.approximateCreationDateTimePrecision : undefined; resourceInputs["streamArn"] = state ? state.streamArn : undefined; resourceInputs["tableName"] = state ? state.tableName : undefined; } else { @@ -100,6 +105,7 @@ export class KinesisStreamingDestination extends pulumi.CustomResource { if ((!args || args.tableName === undefined) && !opts.urn) { throw new Error("Missing required property 'tableName'"); } + resourceInputs["approximateCreationDateTimePrecision"] = args ? args.approximateCreationDateTimePrecision : undefined; resourceInputs["streamArn"] = args ? args.streamArn : undefined; resourceInputs["tableName"] = args ? args.tableName : undefined; } @@ -112,13 +118,16 @@ export class KinesisStreamingDestination extends pulumi.CustomResource { * Input properties used for looking up and filtering KinesisStreamingDestination resources. */ export interface KinesisStreamingDestinationState { + /** + * Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + */ + approximateCreationDateTimePrecision?: pulumi.Input; /** * The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. */ streamArn?: pulumi.Input; /** - * The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. */ tableName?: pulumi.Input; } @@ -127,13 +136,16 @@ export interface KinesisStreamingDestinationState { * The set of arguments for constructing a KinesisStreamingDestination resource. */ export interface KinesisStreamingDestinationArgs { + /** + * Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + */ + approximateCreationDateTimePrecision?: pulumi.Input; /** * The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. */ streamArn: pulumi.Input; /** - * The name of the DynamoDB table. There - * can only be one Kinesis streaming destination for a given DynamoDB table. + * The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. */ tableName: pulumi.Input; } diff --git a/sdk/nodejs/ec2/getSubnet.ts b/sdk/nodejs/ec2/getSubnet.ts index 982dd646867..ca4d517b3e4 100644 --- a/sdk/nodejs/ec2/getSubnet.ts +++ b/sdk/nodejs/ec2/getSubnet.ts @@ -25,7 +25,7 @@ import * as utilities from "../utilities"; * const selected = aws.ec2.getSubnet({ * id: subnetId, * }); - * const subnet = new aws.ec2.SecurityGroup("subnet", { + * const subnetSecurityGroup = new aws.ec2.SecurityGroup("subnet_security_group", { * vpcId: selected.then(selected => selected.vpcId), * ingress: [{ * cidrBlocks: [selected.then(selected => selected.cidrBlock)], @@ -208,7 +208,7 @@ export interface GetSubnetResult { * const selected = aws.ec2.getSubnet({ * id: subnetId, * }); - * const subnet = new aws.ec2.SecurityGroup("subnet", { + * const subnetSecurityGroup = new aws.ec2.SecurityGroup("subnet_security_group", { * vpcId: selected.then(selected => selected.vpcId), * ingress: [{ * cidrBlocks: [selected.then(selected => selected.cidrBlock)], diff --git a/sdk/nodejs/elasticache/cluster.ts b/sdk/nodejs/elasticache/cluster.ts index 9ed8ebb5248..7df0040f07a 100644 --- a/sdk/nodejs/elasticache/cluster.ts +++ b/sdk/nodejs/elasticache/cluster.ts @@ -217,7 +217,7 @@ export class Cluster extends pulumi.CustomResource { */ public /*out*/ readonly configurationEndpoint!: pulumi.Output; /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. */ public readonly engine!: pulumi.Output; /** @@ -471,7 +471,7 @@ export interface ClusterState { */ configurationEndpoint?: pulumi.Input; /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. */ engine?: pulumi.Input; /** @@ -619,7 +619,7 @@ export interface ClusterArgs { */ clusterId?: pulumi.Input; /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. */ engine?: pulumi.Input; /** diff --git a/sdk/nodejs/elasticache/getReservedCacheNodeOffering.ts b/sdk/nodejs/elasticache/getReservedCacheNodeOffering.ts index 0743a644814..ac6fae24158 100644 --- a/sdk/nodejs/elasticache/getReservedCacheNodeOffering.ts +++ b/sdk/nodejs/elasticache/getReservedCacheNodeOffering.ts @@ -55,7 +55,7 @@ export interface GetReservedCacheNodeOfferingArgs { offeringType: string; /** * Engine type for the reserved cache node. - * Valid values are `redis` and `memcached`. + * Valid values are `redis`, `valkey` and `memcached`. */ productDescription: string; } @@ -132,7 +132,7 @@ export interface GetReservedCacheNodeOfferingOutputArgs { offeringType: pulumi.Input; /** * Engine type for the reserved cache node. - * Valid values are `redis` and `memcached`. + * Valid values are `redis`, `valkey` and `memcached`. */ productDescription: pulumi.Input; } diff --git a/sdk/nodejs/elasticache/getServerlessCache.ts b/sdk/nodejs/elasticache/getServerlessCache.ts index 3b872e5622e..e4deb1ecb7e 100644 --- a/sdk/nodejs/elasticache/getServerlessCache.ts +++ b/sdk/nodejs/elasticache/getServerlessCache.ts @@ -55,7 +55,7 @@ export interface GetServerlessCacheResult { */ readonly createTime: string; /** - * The daily time that snapshots will be created from the new serverless cache. Only available for engine type `"redis"`. + * The daily time that snapshots will be created from the new serverless cache. Only available for engine types `"redis"` and `"valkey"`. */ readonly dailySnapshotTime: string; /** diff --git a/sdk/nodejs/elasticache/globalReplicationGroup.ts b/sdk/nodejs/elasticache/globalReplicationGroup.ts index 3392a9426db..7cc2d2fd37a 100644 --- a/sdk/nodejs/elasticache/globalReplicationGroup.ts +++ b/sdk/nodejs/elasticache/globalReplicationGroup.ts @@ -40,7 +40,7 @@ import * as utilities from "../utilities"; * }); * ``` * - * ### Managing Redis Engine Versions + * ### Managing Redis OOS/Valkey Engine Versions * * The initial Redis version is determined by the version set on the primary replication group. * However, once it is part of a Global Replication Group, diff --git a/sdk/nodejs/elasticache/replicationGroup.ts b/sdk/nodejs/elasticache/replicationGroup.ts index 8caf77b9633..0e7322cce1e 100644 --- a/sdk/nodejs/elasticache/replicationGroup.ts +++ b/sdk/nodejs/elasticache/replicationGroup.ts @@ -31,7 +31,7 @@ import * as utilities from "../utilities"; * * ## Example Usage * - * ### Redis Cluster Mode Disabled + * ### Redis OSS/Valkey Cluster Mode Disabled * * To create a single shard primary with single read replica: * @@ -85,7 +85,7 @@ import * as utilities from "../utilities"; * } * ``` * - * ### Redis Cluster Mode Enabled + * ### Redis OSS/Valkey Cluster Mode Enabled * * To create two shards with a primary and a single read replica each: * @@ -253,7 +253,7 @@ export class ReplicationGroup extends pulumi.CustomResource { public readonly authTokenUpdateStrategy!: pulumi.Output; /** * Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. */ public readonly autoMinorVersionUpgrade!: pulumi.Output; @@ -282,7 +282,7 @@ export class ReplicationGroup extends pulumi.CustomResource { */ public readonly description!: pulumi.Output; /** - * Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. */ public readonly engine!: pulumi.Output; /** @@ -315,7 +315,7 @@ export class ReplicationGroup extends pulumi.CustomResource { */ public readonly kmsKeyId!: pulumi.Output; /** - * Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. */ public readonly logDeliveryConfigurations!: pulumi.Output; /** @@ -597,7 +597,7 @@ export interface ReplicationGroupState { authTokenUpdateStrategy?: pulumi.Input; /** * Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. */ autoMinorVersionUpgrade?: pulumi.Input; @@ -626,7 +626,7 @@ export interface ReplicationGroupState { */ description?: pulumi.Input; /** - * Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. */ engine?: pulumi.Input; /** @@ -659,7 +659,7 @@ export interface ReplicationGroupState { */ kmsKeyId?: pulumi.Input; /** - * Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. */ logDeliveryConfigurations?: pulumi.Input[]>; /** @@ -818,7 +818,7 @@ export interface ReplicationGroupArgs { authTokenUpdateStrategy?: pulumi.Input; /** * Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - * Only supported for engine type `"redis"` and if the engine version is 6 or higher. + * Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. * Defaults to `true`. */ autoMinorVersionUpgrade?: pulumi.Input; @@ -839,7 +839,7 @@ export interface ReplicationGroupArgs { */ description: pulumi.Input; /** - * Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + * Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. */ engine?: pulumi.Input; /** @@ -868,7 +868,7 @@ export interface ReplicationGroupArgs { */ kmsKeyId?: pulumi.Input; /** - * Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + * Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. */ logDeliveryConfigurations?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/elasticache/serverlessCache.ts b/sdk/nodejs/elasticache/serverlessCache.ts index 1d84569d273..db69a70d64f 100644 --- a/sdk/nodejs/elasticache/serverlessCache.ts +++ b/sdk/nodejs/elasticache/serverlessCache.ts @@ -8,7 +8,7 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Provides an ElastiCache Serverless Cache resource which manages memcached or redis. + * Provides an ElastiCache Serverless Cache resource which manages memcached, redis or valkey. * * ## Example Usage * @@ -38,7 +38,7 @@ import * as utilities from "../utilities"; * }); * ``` * - * ### Redis Serverless + * ### Redis OSS Serverless * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -66,6 +66,34 @@ import * as utilities from "../utilities"; * }); * ``` * + * ### Valkey Serverless + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.elasticache.ServerlessCache("example", { + * engine: "valkey", + * name: "example", + * cacheUsageLimits: { + * dataStorage: { + * maximum: 10, + * unit: "GB", + * }, + * ecpuPerSeconds: [{ + * maximum: 5000, + * }], + * }, + * dailySnapshotTime: "09:00", + * description: "Test Server", + * kmsKeyId: test.arn, + * majorEngineVersion: "7", + * snapshotRetentionLimit: 1, + * securityGroupIds: [testAwsSecurityGroup.id], + * subnetIds: testAwsSubnet.map(__item => __item.id), + * }); + * ``` + * * ## Import * * Using `pulumi import`, import ElastiCache Serverless Cache using the `name`. For example: @@ -115,7 +143,7 @@ export class ServerlessCache extends pulumi.CustomResource { */ public /*out*/ readonly createTime!: pulumi.Output; /** - * The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. */ public readonly dailySnapshotTime!: pulumi.Output; /** @@ -127,7 +155,7 @@ export class ServerlessCache extends pulumi.CustomResource { */ public /*out*/ readonly endpoints!: pulumi.Output; /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. */ public readonly engine!: pulumi.Output; /** @@ -270,7 +298,7 @@ export interface ServerlessCacheState { */ createTime?: pulumi.Input; /** - * The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. */ dailySnapshotTime?: pulumi.Input; /** @@ -282,7 +310,7 @@ export interface ServerlessCacheState { */ endpoints?: pulumi.Input[]>; /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. */ engine?: pulumi.Input; /** @@ -352,7 +380,7 @@ export interface ServerlessCacheArgs { */ cacheUsageLimits?: pulumi.Input; /** - * The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + * The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. */ dailySnapshotTime?: pulumi.Input; /** @@ -360,7 +388,7 @@ export interface ServerlessCacheArgs { */ description?: pulumi.Input; /** - * Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + * Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. */ engine: pulumi.Input; /** diff --git a/sdk/nodejs/imagebuilder/getContainerRecipe.ts b/sdk/nodejs/imagebuilder/getContainerRecipe.ts index 04b15c16634..115719f85c3 100644 --- a/sdk/nodejs/imagebuilder/getContainerRecipe.ts +++ b/sdk/nodejs/imagebuilder/getContainerRecipe.ts @@ -103,7 +103,7 @@ export interface GetContainerRecipeResult { /** * Key-value map of resource tags for the container recipe. */ - readonly tags?: {[key: string]: string}; + readonly tags: {[key: string]: string}; /** * Destination repository for the container image. */ diff --git a/sdk/nodejs/imagebuilder/getImageRecipe.ts b/sdk/nodejs/imagebuilder/getImageRecipe.ts index e10b6f61685..cb8f459d959 100644 --- a/sdk/nodejs/imagebuilder/getImageRecipe.ts +++ b/sdk/nodejs/imagebuilder/getImageRecipe.ts @@ -87,7 +87,7 @@ export interface GetImageRecipeResult { /** * Key-value map of resource tags for the image recipe. */ - readonly tags?: {[key: string]: string}; + readonly tags: {[key: string]: string}; /** * Base64 encoded contents of user data. Commands or a command script to run when build instance is launched. */ diff --git a/sdk/nodejs/imagebuilder/index.ts b/sdk/nodejs/imagebuilder/index.ts index e0dcfe3fb91..1b2fc47366e 100644 --- a/sdk/nodejs/imagebuilder/index.ts +++ b/sdk/nodejs/imagebuilder/index.ts @@ -105,6 +105,11 @@ export type InfrastructureConfiguration = import("./infrastructureConfiguration" export const InfrastructureConfiguration: typeof import("./infrastructureConfiguration").InfrastructureConfiguration = null as any; utilities.lazyLoad(exports, ["InfrastructureConfiguration"], () => require("./infrastructureConfiguration")); +export { LifecyclePolicyArgs, LifecyclePolicyState } from "./lifecyclePolicy"; +export type LifecyclePolicy = import("./lifecyclePolicy").LifecyclePolicy; +export const LifecyclePolicy: typeof import("./lifecyclePolicy").LifecyclePolicy = null as any; +utilities.lazyLoad(exports, ["LifecyclePolicy"], () => require("./lifecyclePolicy")); + export { WorkflowArgs, WorkflowState } from "./workflow"; export type Workflow = import("./workflow").Workflow; export const Workflow: typeof import("./workflow").Workflow = null as any; @@ -129,6 +134,8 @@ const _module = { return new ImageRecipe(name, undefined, { urn }) case "aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration": return new InfrastructureConfiguration(name, undefined, { urn }) + case "aws:imagebuilder/lifecyclePolicy:LifecyclePolicy": + return new LifecyclePolicy(name, undefined, { urn }) case "aws:imagebuilder/workflow:Workflow": return new Workflow(name, undefined, { urn }) default: @@ -143,4 +150,5 @@ pulumi.runtime.registerResourceModule("aws", "imagebuilder/image", _module) pulumi.runtime.registerResourceModule("aws", "imagebuilder/imagePipeline", _module) pulumi.runtime.registerResourceModule("aws", "imagebuilder/imageRecipe", _module) pulumi.runtime.registerResourceModule("aws", "imagebuilder/infrastructureConfiguration", _module) +pulumi.runtime.registerResourceModule("aws", "imagebuilder/lifecyclePolicy", _module) pulumi.runtime.registerResourceModule("aws", "imagebuilder/workflow", _module) diff --git a/sdk/nodejs/imagebuilder/lifecyclePolicy.ts b/sdk/nodejs/imagebuilder/lifecyclePolicy.ts new file mode 100644 index 00000000000..68029ee5079 --- /dev/null +++ b/sdk/nodejs/imagebuilder/lifecyclePolicy.ts @@ -0,0 +1,281 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Manages an Image Builder Lifecycle Policy. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const current = aws.getRegion({}); + * const currentGetPartition = aws.getPartition({}); + * const example = new aws.iam.Role("example", { + * assumeRolePolicy: JSON.stringify({ + * Version: "2012-10-17", + * Statement: [{ + * Action: "sts:AssumeRole", + * Effect: "Allow", + * Principal: { + * Service: currentGetPartition.then(currentGetPartition => `imagebuilder.${currentGetPartition.dnsSuffix}`), + * }, + * }], + * }), + * name: "example", + * }); + * const exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment("example", { + * policyArn: currentGetPartition.then(currentGetPartition => `arn:${currentGetPartition.partition}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy`), + * role: example.name, + * }); + * const exampleLifecyclePolicy = new aws.imagebuilder.LifecyclePolicy("example", { + * name: "name", + * description: "Example description", + * executionRole: example.arn, + * resourceType: "AMI_IMAGE", + * policyDetails: [{ + * action: { + * type: "DELETE", + * }, + * filter: { + * type: "AGE", + * value: 6, + * retainAtLeast: 10, + * unit: "YEARS", + * }, + * }], + * resourceSelection: { + * tagMap: { + * key1: "value1", + * key2: "value2", + * }, + * }, + * }, { + * dependsOn: [exampleRolePolicyAttachment], + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import `aws_imagebuilder_lifecycle_policy` using the Amazon Resource Name (ARN). For example: + * + * ```sh + * $ pulumi import aws:imagebuilder/lifecyclePolicy:LifecyclePolicy example arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/example + * ``` + */ +export class LifecyclePolicy extends pulumi.CustomResource { + /** + * Get an existing LifecyclePolicy 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?: LifecyclePolicyState, opts?: pulumi.CustomResourceOptions): LifecyclePolicy { + return new LifecyclePolicy(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:imagebuilder/lifecyclePolicy:LifecyclePolicy'; + + /** + * Returns true if the given object is an instance of LifecyclePolicy. 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 LifecyclePolicy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === LifecyclePolicy.__pulumiType; + } + + /** + * Amazon Resource Name (ARN) of the lifecycle policy. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * description for the lifecycle policy. + */ + public readonly description!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + */ + public readonly executionRole!: pulumi.Output; + /** + * The name of the lifecycle policy to create. + */ + public readonly name!: pulumi.Output; + /** + * Configuration block with policy details. Detailed below. + */ + public readonly policyDetails!: pulumi.Output; + /** + * Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + */ + public readonly resourceSelection!: pulumi.Output; + /** + * The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + */ + public readonly resourceType!: pulumi.Output; + /** + * The status of the lifecycle policy. + */ + public readonly status!: pulumi.Output; + /** + * Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicy 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: LifecyclePolicyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: LifecyclePolicyArgs | LifecyclePolicyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as LifecyclePolicyState | undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["executionRole"] = state ? state.executionRole : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["policyDetails"] = state ? state.policyDetails : undefined; + resourceInputs["resourceSelection"] = state ? state.resourceSelection : undefined; + resourceInputs["resourceType"] = state ? state.resourceType : undefined; + resourceInputs["status"] = state ? state.status : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + } else { + const args = argsOrState as LifecyclePolicyArgs | undefined; + if ((!args || args.executionRole === undefined) && !opts.urn) { + throw new Error("Missing required property 'executionRole'"); + } + if ((!args || args.resourceType === undefined) && !opts.urn) { + throw new Error("Missing required property 'resourceType'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["executionRole"] = args ? args.executionRole : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["policyDetails"] = args ? args.policyDetails : undefined; + resourceInputs["resourceSelection"] = args ? args.resourceSelection : undefined; + resourceInputs["resourceType"] = args ? args.resourceType : undefined; + resourceInputs["status"] = args ? args.status : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(LifecyclePolicy.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering LifecyclePolicy resources. + */ +export interface LifecyclePolicyState { + /** + * Amazon Resource Name (ARN) of the lifecycle policy. + */ + arn?: pulumi.Input; + /** + * description for the lifecycle policy. + */ + description?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + */ + executionRole?: pulumi.Input; + /** + * The name of the lifecycle policy to create. + */ + name?: pulumi.Input; + /** + * Configuration block with policy details. Detailed below. + */ + policyDetails?: pulumi.Input[]>; + /** + * Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + */ + resourceSelection?: pulumi.Input; + /** + * The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + */ + resourceType?: pulumi.Input; + /** + * The status of the lifecycle policy. + */ + status?: pulumi.Input; + /** + * Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 set of arguments for constructing a LifecyclePolicy resource. + */ +export interface LifecyclePolicyArgs { + /** + * description for the lifecycle policy. + */ + description?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + */ + executionRole: pulumi.Input; + /** + * The name of the lifecycle policy to create. + */ + name?: pulumi.Input; + /** + * Configuration block with policy details. Detailed below. + */ + policyDetails?: pulumi.Input[]>; + /** + * Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + * + * The following arguments are optional: + */ + resourceSelection?: pulumi.Input; + /** + * The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + */ + resourceType: pulumi.Input; + /** + * The status of the lifecycle policy. + */ + status?: pulumi.Input; + /** + * Key-value map of resource tags for the Image Builder Lifecycle Policy. 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/index.ts b/sdk/nodejs/index.ts index cdcd9982a1b..20480d6408f 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -242,6 +242,7 @@ import * as redshift from "./redshift"; import * as redshiftdata from "./redshiftdata"; import * as redshiftserverless from "./redshiftserverless"; import * as rekognition from "./rekognition"; +import * as resiliencehub from "./resiliencehub"; import * as resourceexplorer from "./resourceexplorer"; import * as resourcegroups from "./resourcegroups"; import * as resourcegroupstaggingapi from "./resourcegroupstaggingapi"; @@ -459,6 +460,7 @@ export { redshiftdata, redshiftserverless, rekognition, + resiliencehub, resourceexplorer, resourcegroups, resourcegroupstaggingapi, diff --git a/sdk/nodejs/kinesis/firehoseDeliveryStream.ts b/sdk/nodejs/kinesis/firehoseDeliveryStream.ts index 69290b96843..14d0543de25 100644 --- a/sdk/nodejs/kinesis/firehoseDeliveryStream.ts +++ b/sdk/nodejs/kinesis/firehoseDeliveryStream.ts @@ -490,6 +490,71 @@ import * as utilities from "../utilities"; * }); * ``` * + * ### Iceberg Destination + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const current = aws.getCallerIdentity({}); + * const currentGetPartition = aws.getPartition({}); + * const currentGetRegion = aws.getRegion({}); + * const bucket = new aws.s3.BucketV2("bucket", { + * bucket: "test-bucket", + * forceDestroy: true, + * }); + * const test = new aws.glue.CatalogDatabase("test", {name: "test"}); + * const testCatalogTable = new aws.glue.CatalogTable("test", { + * name: "test", + * databaseName: test.name, + * parameters: { + * format: "parquet", + * }, + * tableType: "EXTERNAL_TABLE", + * openTableFormatInput: { + * icebergInput: { + * metadataOperation: "CREATE", + * version: "2", + * }, + * }, + * storageDescriptor: { + * location: pulumi.interpolate`s3://${bucket.id}`, + * columns: [{ + * name: "my_column_1", + * type: "int", + * }], + * }, + * }); + * const testStream = new aws.kinesis.FirehoseDeliveryStream("test_stream", { + * name: "kinesis-firehose-test-stream", + * destination: "iceberg", + * icebergConfiguration: { + * roleArn: firehoseRole.arn, + * catalogArn: Promise.all([currentGetPartition, currentGetRegion, current]).then(([currentGetPartition, currentGetRegion, current]) => `arn:${currentGetPartition.partition}:glue:${currentGetRegion.name}:${current.accountId}:catalog`), + * bufferingSize: 10, + * bufferingInterval: 400, + * s3Configuration: { + * roleArn: firehoseRole.arn, + * bucketArn: bucket.arn, + * }, + * destinationTableConfigurations: [{ + * databaseName: test.name, + * tableName: testCatalogTable.name, + * }], + * processingConfiguration: { + * enabled: true, + * processors: [{ + * type: "Lambda", + * parameters: [{ + * parameterName: "LambdaArn", + * parameterValue: `${lambdaProcessor.arn}:$LATEST`, + * }], + * }], + * }, + * }, + * }); + * ``` + * * ### Splunk Destination * * ```typescript @@ -645,6 +710,10 @@ export class FirehoseDeliveryStream extends pulumi.CustomResource { * Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. */ public readonly httpEndpointConfiguration!: pulumi.Output; + /** + * Configuration options when `destination` is `iceberg`. See `icebergConfiguration` block below for details. + */ + public readonly icebergConfiguration!: pulumi.Output; /** * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. */ @@ -714,6 +783,7 @@ export class FirehoseDeliveryStream extends pulumi.CustomResource { resourceInputs["elasticsearchConfiguration"] = state ? state.elasticsearchConfiguration : undefined; resourceInputs["extendedS3Configuration"] = state ? state.extendedS3Configuration : undefined; resourceInputs["httpEndpointConfiguration"] = state ? state.httpEndpointConfiguration : undefined; + resourceInputs["icebergConfiguration"] = state ? state.icebergConfiguration : undefined; resourceInputs["kinesisSourceConfiguration"] = state ? state.kinesisSourceConfiguration : undefined; resourceInputs["mskSourceConfiguration"] = state ? state.mskSourceConfiguration : undefined; resourceInputs["name"] = state ? state.name : undefined; @@ -737,6 +807,7 @@ export class FirehoseDeliveryStream extends pulumi.CustomResource { resourceInputs["elasticsearchConfiguration"] = args ? args.elasticsearchConfiguration : undefined; resourceInputs["extendedS3Configuration"] = args ? args.extendedS3Configuration : undefined; resourceInputs["httpEndpointConfiguration"] = args ? args.httpEndpointConfiguration : undefined; + resourceInputs["icebergConfiguration"] = args ? args.icebergConfiguration : undefined; resourceInputs["kinesisSourceConfiguration"] = args ? args.kinesisSourceConfiguration : undefined; resourceInputs["mskSourceConfiguration"] = args ? args.mskSourceConfiguration : undefined; resourceInputs["name"] = args ? args.name : undefined; @@ -780,6 +851,10 @@ export interface FirehoseDeliveryStreamState { * Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. */ httpEndpointConfiguration?: pulumi.Input; + /** + * Configuration options when `destination` is `iceberg`. See `icebergConfiguration` block below for details. + */ + icebergConfiguration?: pulumi.Input; /** * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. */ @@ -856,6 +931,10 @@ export interface FirehoseDeliveryStreamArgs { * Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. */ httpEndpointConfiguration?: pulumi.Input; + /** + * Configuration options when `destination` is `iceberg`. See `icebergConfiguration` block below for details. + */ + icebergConfiguration?: pulumi.Input; /** * The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. */ diff --git a/sdk/nodejs/lakeformation/dataLakeSettings.ts b/sdk/nodejs/lakeformation/dataLakeSettings.ts index 5303f420cde..f310a91dd38 100644 --- a/sdk/nodejs/lakeformation/dataLakeSettings.ts +++ b/sdk/nodejs/lakeformation/dataLakeSettings.ts @@ -84,6 +84,17 @@ import * as utilities from "../utilities"; * allowFullTableExternalDataAccess: true, * }); * ``` + * + * ### Change Cross Account Version + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.lakeformation.DataLakeSettings("example", {parameters: { + * CROSS_ACCOUNT_VERSION: "3", + * }}); + * ``` */ export class DataLakeSettings extends pulumi.CustomResource { /** @@ -123,8 +134,6 @@ export class DataLakeSettings extends pulumi.CustomResource { public readonly allowExternalDataFiltering!: pulumi.Output; /** * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - * - * > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. */ public readonly allowFullTableExternalDataAccess!: pulumi.Output; /** @@ -147,12 +156,18 @@ export class DataLakeSettings extends pulumi.CustomResource { * A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. */ public readonly externalDataFilteringAllowLists!: pulumi.Output; + /** + * Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + */ + public readonly parameters!: pulumi.Output<{[key: string]: string}>; /** * Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. */ public readonly readOnlyAdmins!: pulumi.Output; /** * List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + * + * > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, `parameters`, and/or `trustedResourceOwners` results in the setting being cleared. */ public readonly trustedResourceOwners!: pulumi.Output; @@ -177,6 +192,7 @@ export class DataLakeSettings extends pulumi.CustomResource { resourceInputs["createDatabaseDefaultPermissions"] = state ? state.createDatabaseDefaultPermissions : undefined; resourceInputs["createTableDefaultPermissions"] = state ? state.createTableDefaultPermissions : undefined; resourceInputs["externalDataFilteringAllowLists"] = state ? state.externalDataFilteringAllowLists : undefined; + resourceInputs["parameters"] = state ? state.parameters : undefined; resourceInputs["readOnlyAdmins"] = state ? state.readOnlyAdmins : undefined; resourceInputs["trustedResourceOwners"] = state ? state.trustedResourceOwners : undefined; } else { @@ -189,6 +205,7 @@ export class DataLakeSettings extends pulumi.CustomResource { resourceInputs["createDatabaseDefaultPermissions"] = args ? args.createDatabaseDefaultPermissions : undefined; resourceInputs["createTableDefaultPermissions"] = args ? args.createTableDefaultPermissions : undefined; resourceInputs["externalDataFilteringAllowLists"] = args ? args.externalDataFilteringAllowLists : undefined; + resourceInputs["parameters"] = args ? args.parameters : undefined; resourceInputs["readOnlyAdmins"] = args ? args.readOnlyAdmins : undefined; resourceInputs["trustedResourceOwners"] = args ? args.trustedResourceOwners : undefined; } @@ -211,8 +228,6 @@ export interface DataLakeSettingsState { allowExternalDataFiltering?: pulumi.Input; /** * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - * - * > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. */ allowFullTableExternalDataAccess?: pulumi.Input; /** @@ -235,12 +250,18 @@ export interface DataLakeSettingsState { * A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. */ externalDataFilteringAllowLists?: pulumi.Input[]>; + /** + * Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + */ + parameters?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. */ readOnlyAdmins?: pulumi.Input[]>; /** * List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + * + * > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, `parameters`, and/or `trustedResourceOwners` results in the setting being cleared. */ trustedResourceOwners?: pulumi.Input[]>; } @@ -259,8 +280,6 @@ export interface DataLakeSettingsArgs { allowExternalDataFiltering?: pulumi.Input; /** * Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - * - * > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, and/or `trustedResourceOwners` results in the setting being cleared. */ allowFullTableExternalDataAccess?: pulumi.Input; /** @@ -283,12 +302,18 @@ export interface DataLakeSettingsArgs { * A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. */ externalDataFilteringAllowLists?: pulumi.Input[]>; + /** + * Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + */ + parameters?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. */ readOnlyAdmins?: pulumi.Input[]>; /** * List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + * + * > **NOTE:** Although optional, not including `admins`, `createDatabaseDefaultPermissions`, `createTableDefaultPermissions`, `parameters`, and/or `trustedResourceOwners` results in the setting being cleared. */ trustedResourceOwners?: pulumi.Input[]>; } diff --git a/sdk/nodejs/lakeformation/getDataLakeSettings.ts b/sdk/nodejs/lakeformation/getDataLakeSettings.ts index 62889ddff4b..4f873d34afa 100644 --- a/sdk/nodejs/lakeformation/getDataLakeSettings.ts +++ b/sdk/nodejs/lakeformation/getDataLakeSettings.ts @@ -76,6 +76,10 @@ export interface GetDataLakeSettingsResult { * The provider-assigned unique ID for this managed resource. */ readonly id: string; + /** + * Key-value map of additional configuration. `CROSS_ACCOUNT_VERSION` will be set to values `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` will also be returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. + */ + readonly parameters: {[key: string]: string}; /** * List of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. */ diff --git a/sdk/nodejs/lb/getLoadBalancer.ts b/sdk/nodejs/lb/getLoadBalancer.ts index 46ad03771a7..fa130dd37fc 100644 --- a/sdk/nodejs/lb/getLoadBalancer.ts +++ b/sdk/nodejs/lb/getLoadBalancer.ts @@ -81,6 +81,7 @@ export interface GetLoadBalancerResult { readonly enableTlsVersionAndCipherSuiteHeaders: boolean; readonly enableWafFailOpen: boolean; readonly enableXffClientPort: boolean; + readonly enableZonalShift: boolean; readonly enforceSecurityGroupInboundRulesOnPrivateLinkTraffic: string; /** * The provider-assigned unique ID for this managed resource. diff --git a/sdk/nodejs/lb/listener.ts b/sdk/nodejs/lb/listener.ts index 7475e373a8a..4786cfdc327 100644 --- a/sdk/nodejs/lb/listener.ts +++ b/sdk/nodejs/lb/listener.ts @@ -300,6 +300,10 @@ export class Listener extends pulumi.CustomResource { * @deprecated Please use `tags` instead. */ public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + */ + public readonly tcpIdleTimeoutSeconds!: pulumi.Output; /** * Create a Listener resource with the given unique name, arguments, and options. @@ -325,6 +329,7 @@ export class Listener extends pulumi.CustomResource { resourceInputs["sslPolicy"] = state ? state.sslPolicy : undefined; resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["tcpIdleTimeoutSeconds"] = state ? state.tcpIdleTimeoutSeconds : undefined; } else { const args = argsOrState as ListenerArgs | undefined; if ((!args || args.defaultActions === undefined) && !opts.urn) { @@ -342,6 +347,7 @@ export class Listener extends pulumi.CustomResource { resourceInputs["protocol"] = args ? args.protocol : undefined; resourceInputs["sslPolicy"] = args ? args.sslPolicy : undefined; resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["tcpIdleTimeoutSeconds"] = args ? args.tcpIdleTimeoutSeconds : undefined; resourceInputs["arn"] = undefined /*out*/; resourceInputs["tagsAll"] = undefined /*out*/; } @@ -404,6 +410,10 @@ export interface ListenerState { * @deprecated Please use `tags` instead. */ tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + */ + tcpIdleTimeoutSeconds?: pulumi.Input; } /** @@ -448,4 +458,8 @@ export interface ListenerArgs { * A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + */ + tcpIdleTimeoutSeconds?: pulumi.Input; } diff --git a/sdk/nodejs/lb/loadBalancer.ts b/sdk/nodejs/lb/loadBalancer.ts index 4c95776dc52..e713f366194 100644 --- a/sdk/nodejs/lb/loadBalancer.ts +++ b/sdk/nodejs/lb/loadBalancer.ts @@ -200,6 +200,10 @@ export class LoadBalancer extends pulumi.CustomResource { * Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. */ public readonly enableXffClientPort!: pulumi.Output; + /** + * Whether zonal shift is enabled. Defaults to `false`. + */ + public readonly enableZonalShift!: pulumi.Output; /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. */ @@ -293,6 +297,7 @@ export class LoadBalancer extends pulumi.CustomResource { resourceInputs["enableTlsVersionAndCipherSuiteHeaders"] = state ? state.enableTlsVersionAndCipherSuiteHeaders : undefined; resourceInputs["enableWafFailOpen"] = state ? state.enableWafFailOpen : undefined; resourceInputs["enableXffClientPort"] = state ? state.enableXffClientPort : undefined; + resourceInputs["enableZonalShift"] = state ? state.enableZonalShift : undefined; resourceInputs["enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"] = state ? state.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic : undefined; resourceInputs["idleTimeout"] = state ? state.idleTimeout : undefined; resourceInputs["internal"] = state ? state.internal : undefined; @@ -324,6 +329,7 @@ export class LoadBalancer extends pulumi.CustomResource { resourceInputs["enableTlsVersionAndCipherSuiteHeaders"] = args ? args.enableTlsVersionAndCipherSuiteHeaders : undefined; resourceInputs["enableWafFailOpen"] = args ? args.enableWafFailOpen : undefined; resourceInputs["enableXffClientPort"] = args ? args.enableXffClientPort : undefined; + resourceInputs["enableZonalShift"] = args ? args.enableZonalShift : undefined; resourceInputs["enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"] = args ? args.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic : undefined; resourceInputs["idleTimeout"] = args ? args.idleTimeout : undefined; resourceInputs["internal"] = args ? args.internal : undefined; @@ -419,6 +425,10 @@ export interface LoadBalancerState { * Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. */ enableXffClientPort?: pulumi.Input; + /** + * Whether zonal shift is enabled. Defaults to `false`. + */ + enableZonalShift?: pulumi.Input; /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. */ @@ -540,6 +550,10 @@ export interface LoadBalancerArgs { * Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. */ enableXffClientPort?: pulumi.Input; + /** + * Whether zonal shift is enabled. Defaults to `false`. + */ + enableZonalShift?: pulumi.Input; /** * Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. */ diff --git a/sdk/nodejs/resiliencehub/index.ts b/sdk/nodejs/resiliencehub/index.ts new file mode 100644 index 00000000000..0a2b9d993a4 --- /dev/null +++ b/sdk/nodejs/resiliencehub/index.ts @@ -0,0 +1,25 @@ +// *** 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"; + +// Export members: +export { ResiliencyPolicyArgs, ResiliencyPolicyState } from "./resiliencyPolicy"; +export type ResiliencyPolicy = import("./resiliencyPolicy").ResiliencyPolicy; +export const ResiliencyPolicy: typeof import("./resiliencyPolicy").ResiliencyPolicy = null as any; +utilities.lazyLoad(exports, ["ResiliencyPolicy"], () => require("./resiliencyPolicy")); + + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy": + return new ResiliencyPolicy(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("aws", "resiliencehub/resiliencyPolicy", _module) diff --git a/sdk/nodejs/resiliencehub/resiliencyPolicy.ts b/sdk/nodejs/resiliencehub/resiliencyPolicy.ts new file mode 100644 index 00000000000..3f3b5e9e1d7 --- /dev/null +++ b/sdk/nodejs/resiliencehub/resiliencyPolicy.ts @@ -0,0 +1,225 @@ +// *** 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 Resilience Hub Resiliency Policy. + * + * ## Import + * + * Using `pulumi import`, import Resilience Hub Resiliency Policy using the `arn`. For example: + * + * ```sh + * $ pulumi import aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy example arn:aws:resiliencehub:us-east-1:123456789012:resiliency-policy/8c1cfa29-d1dd-4421-aa68-c9f64cced4c2 + * ``` + */ +export class ResiliencyPolicy extends pulumi.CustomResource { + /** + * Get an existing ResiliencyPolicy 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?: ResiliencyPolicyState, opts?: pulumi.CustomResourceOptions): ResiliencyPolicy { + return new ResiliencyPolicy(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy'; + + /** + * Returns true if the given object is an instance of ResiliencyPolicy. 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 ResiliencyPolicy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResiliencyPolicy.__pulumiType; + } + + /** + * ARN of the Resiliency Policy. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + */ + public readonly dataLocationConstraint!: pulumi.Output; + /** + * Description of Resiliency Policy. + */ + public readonly description!: pulumi.Output; + /** + * Estimated Cost Tier of the Resiliency Policy. + */ + public /*out*/ readonly estimatedCostTier!: pulumi.Output; + /** + * Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + */ + public readonly name!: pulumi.Output; + /** + * The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + */ + public readonly policy!: pulumi.Output; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + /** + * Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + */ + public readonly tier!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + + /** + * Create a ResiliencyPolicy 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: ResiliencyPolicyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ResiliencyPolicyArgs | ResiliencyPolicyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ResiliencyPolicyState | undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["dataLocationConstraint"] = state ? state.dataLocationConstraint : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["estimatedCostTier"] = state ? state.estimatedCostTier : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["policy"] = state ? state.policy : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["tier"] = state ? state.tier : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as ResiliencyPolicyArgs | undefined; + if ((!args || args.tier === undefined) && !opts.urn) { + throw new Error("Missing required property 'tier'"); + } + resourceInputs["dataLocationConstraint"] = args ? args.dataLocationConstraint : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["policy"] = args ? args.policy : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["tier"] = args ? args.tier : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["estimatedCostTier"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ResiliencyPolicy.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ResiliencyPolicy resources. + */ +export interface ResiliencyPolicyState { + /** + * ARN of the Resiliency Policy. + */ + arn?: pulumi.Input; + /** + * Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + */ + dataLocationConstraint?: pulumi.Input; + /** + * Description of Resiliency Policy. + */ + description?: pulumi.Input; + /** + * Estimated Cost Tier of the Resiliency Policy. + */ + estimatedCostTier?: pulumi.Input; + /** + * Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + */ + name?: pulumi.Input; + /** + * The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + */ + policy?: pulumi.Input; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + */ + tier?: pulumi.Input; + timeouts?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ResiliencyPolicy resource. + */ +export interface ResiliencyPolicyArgs { + /** + * Data Location Constraint of the Policy. + * Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + */ + dataLocationConstraint?: pulumi.Input; + /** + * Description of Resiliency Policy. + */ + description?: pulumi.Input; + /** + * Name of Resiliency Policy. + * Must be between 2 and 60 characters long. + * Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + */ + name?: pulumi.Input; + /** + * The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + * + * The following arguments are optional: + */ + policy?: pulumi.Input; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Resiliency Policy Tier. + * Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + */ + tier: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/route53/profilesAssociation.ts b/sdk/nodejs/route53/profilesAssociation.ts index a75238b2d0d..b77efdc8beb 100644 --- a/sdk/nodejs/route53/profilesAssociation.ts +++ b/sdk/nodejs/route53/profilesAssociation.ts @@ -50,7 +50,7 @@ export class ProfilesAssociation extends pulumi.CustomResource { public /*out*/ readonly arn!: pulumi.Output; /** - * Name of the Profile Association. + * Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. */ public readonly name!: pulumi.Output; public /*out*/ readonly ownerId!: pulumi.Output; @@ -63,7 +63,7 @@ export class ProfilesAssociation extends pulumi.CustomResource { */ public readonly resourceId!: pulumi.Output; /** - * Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + * Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. */ public /*out*/ readonly status!: pulumi.Output; /** @@ -130,7 +130,7 @@ export class ProfilesAssociation extends pulumi.CustomResource { export interface ProfilesAssociationState { arn?: pulumi.Input; /** - * Name of the Profile Association. + * Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. */ name?: pulumi.Input; ownerId?: pulumi.Input; @@ -143,7 +143,7 @@ export interface ProfilesAssociationState { */ resourceId?: pulumi.Input; /** - * Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + * Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. */ status?: pulumi.Input; /** @@ -163,7 +163,7 @@ export interface ProfilesAssociationState { */ export interface ProfilesAssociationArgs { /** - * Name of the Profile Association. + * Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)`. */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/sagemaker/domain.ts b/sdk/nodejs/sagemaker/domain.ts index adcd5b447c5..bb921aac5db 100644 --- a/sdk/nodejs/sagemaker/domain.ts +++ b/sdk/nodejs/sagemaker/domain.ts @@ -139,6 +139,10 @@ export class Domain extends pulumi.CustomResource { * The VPC subnets that Studio uses for communication. */ public readonly subnetIds!: pulumi.Output; + /** + * Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + */ + public readonly tagPropagation!: pulumi.Output; /** * A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ @@ -188,6 +192,7 @@ export class Domain extends pulumi.CustomResource { resourceInputs["singleSignOnApplicationArn"] = state ? state.singleSignOnApplicationArn : undefined; resourceInputs["singleSignOnManagedApplicationInstanceId"] = state ? state.singleSignOnManagedApplicationInstanceId : undefined; resourceInputs["subnetIds"] = state ? state.subnetIds : undefined; + resourceInputs["tagPropagation"] = state ? state.tagPropagation : undefined; resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; resourceInputs["url"] = state ? state.url : undefined; @@ -219,6 +224,7 @@ export class Domain extends pulumi.CustomResource { resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; resourceInputs["retentionPolicy"] = args ? args.retentionPolicy : undefined; resourceInputs["subnetIds"] = args ? args.subnetIds : undefined; + resourceInputs["tagPropagation"] = args ? args.tagPropagation : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["vpcId"] = args ? args.vpcId : undefined; resourceInputs["arn"] = undefined /*out*/; @@ -298,6 +304,10 @@ export interface DomainState { * The VPC subnets that Studio uses for communication. */ subnetIds?: pulumi.Input[]>; + /** + * Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + */ + tagPropagation?: pulumi.Input; /** * A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ @@ -364,6 +374,10 @@ export interface DomainArgs { * The VPC subnets that Studio uses for communication. */ subnetIds: pulumi.Input[]>; + /** + * Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + */ + tagPropagation?: pulumi.Input; /** * A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ diff --git a/sdk/nodejs/sagemaker/featureGroup.ts b/sdk/nodejs/sagemaker/featureGroup.ts index e0651e760d1..2380c65039b 100644 --- a/sdk/nodejs/sagemaker/featureGroup.ts +++ b/sdk/nodejs/sagemaker/featureGroup.ts @@ -115,6 +115,7 @@ export class FeatureGroup extends pulumi.CustomResource { * @deprecated Please use `tags` instead. */ public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + public readonly throughputConfig!: pulumi.Output; /** * Create a FeatureGroup resource with the given unique name, arguments, and options. @@ -140,6 +141,7 @@ export class FeatureGroup extends pulumi.CustomResource { resourceInputs["roleArn"] = state ? state.roleArn : undefined; resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["throughputConfig"] = state ? state.throughputConfig : undefined; } else { const args = argsOrState as FeatureGroupArgs | undefined; if ((!args || args.eventTimeFeatureName === undefined) && !opts.urn) { @@ -166,6 +168,7 @@ export class FeatureGroup extends pulumi.CustomResource { resourceInputs["recordIdentifierFeatureName"] = args ? args.recordIdentifierFeatureName : undefined; resourceInputs["roleArn"] = args ? args.roleArn : undefined; resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["throughputConfig"] = args ? args.throughputConfig : undefined; resourceInputs["arn"] = undefined /*out*/; resourceInputs["tagsAll"] = undefined /*out*/; } @@ -224,6 +227,7 @@ export interface FeatureGroupState { * @deprecated Please use `tags` instead. */ tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + throughputConfig?: pulumi.Input; } /** @@ -266,4 +270,5 @@ export interface FeatureGroupArgs { * Map of resource tags for the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + throughputConfig?: pulumi.Input; } diff --git a/sdk/nodejs/sagemaker/hub.ts b/sdk/nodejs/sagemaker/hub.ts new file mode 100644 index 00000000000..5273ec05f4d --- /dev/null +++ b/sdk/nodejs/sagemaker/hub.ts @@ -0,0 +1,209 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Provides a SageMaker Hub resource. + * + * ## Example Usage + * + * ### Basic usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.sagemaker.Hub("example", { + * hubName: "example", + * hubDescription: "example", + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import SageMaker Hubs using the `name`. For example: + * + * ```sh + * $ pulumi import aws:sagemaker/hub:Hub test_hub my-code-repo + * ``` + */ +export class Hub extends pulumi.CustomResource { + /** + * Get an existing Hub 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?: HubState, opts?: pulumi.CustomResourceOptions): Hub { + return new Hub(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:sagemaker/hub:Hub'; + + /** + * Returns true if the given object is an instance of Hub. 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 Hub { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Hub.__pulumiType; + } + + /** + * The Amazon Resource Name (ARN) assigned by AWS to this Hub. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * A description of the hub. + */ + public readonly hubDescription!: pulumi.Output; + /** + * The display name of the hub. + */ + public readonly hubDisplayName!: pulumi.Output; + /** + * The name of the hub. + */ + public readonly hubName!: pulumi.Output; + /** + * The searchable keywords for the hub. + */ + public readonly hubSearchKeywords!: pulumi.Output; + /** + * The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + */ + public readonly s3StorageConfig!: pulumi.Output; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + + /** + * Create a Hub 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: HubArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: HubArgs | HubState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as HubState | undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["hubDescription"] = state ? state.hubDescription : undefined; + resourceInputs["hubDisplayName"] = state ? state.hubDisplayName : undefined; + resourceInputs["hubName"] = state ? state.hubName : undefined; + resourceInputs["hubSearchKeywords"] = state ? state.hubSearchKeywords : undefined; + resourceInputs["s3StorageConfig"] = state ? state.s3StorageConfig : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + } else { + const args = argsOrState as HubArgs | undefined; + if ((!args || args.hubDescription === undefined) && !opts.urn) { + throw new Error("Missing required property 'hubDescription'"); + } + if ((!args || args.hubName === undefined) && !opts.urn) { + throw new Error("Missing required property 'hubName'"); + } + resourceInputs["hubDescription"] = args ? args.hubDescription : undefined; + resourceInputs["hubDisplayName"] = args ? args.hubDisplayName : undefined; + resourceInputs["hubName"] = args ? args.hubName : undefined; + resourceInputs["hubSearchKeywords"] = args ? args.hubSearchKeywords : undefined; + resourceInputs["s3StorageConfig"] = args ? args.s3StorageConfig : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Hub.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Hub resources. + */ +export interface HubState { + /** + * The Amazon Resource Name (ARN) assigned by AWS to this Hub. + */ + arn?: pulumi.Input; + /** + * A description of the hub. + */ + hubDescription?: pulumi.Input; + /** + * The display name of the hub. + */ + hubDisplayName?: pulumi.Input; + /** + * The name of the hub. + */ + hubName?: pulumi.Input; + /** + * The searchable keywords for the hub. + */ + hubSearchKeywords?: pulumi.Input[]>; + /** + * The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + */ + s3StorageConfig?: pulumi.Input; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; +} + +/** + * The set of arguments for constructing a Hub resource. + */ +export interface HubArgs { + /** + * A description of the hub. + */ + hubDescription: pulumi.Input; + /** + * The display name of the hub. + */ + hubDisplayName?: pulumi.Input; + /** + * The name of the hub. + */ + hubName: pulumi.Input; + /** + * The searchable keywords for the hub. + */ + hubSearchKeywords?: pulumi.Input[]>; + /** + * The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + */ + s3StorageConfig?: pulumi.Input; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/sagemaker/index.ts b/sdk/nodejs/sagemaker/index.ts index a8fc2fe9c28..fd0f9bb7e6a 100644 --- a/sdk/nodejs/sagemaker/index.ts +++ b/sdk/nodejs/sagemaker/index.ts @@ -65,6 +65,11 @@ export const getPrebuiltEcrImage: typeof import("./getPrebuiltEcrImage").getPreb export const getPrebuiltEcrImageOutput: typeof import("./getPrebuiltEcrImage").getPrebuiltEcrImageOutput = null as any; utilities.lazyLoad(exports, ["getPrebuiltEcrImage","getPrebuiltEcrImageOutput"], () => require("./getPrebuiltEcrImage")); +export { HubArgs, HubState } from "./hub"; +export type Hub = import("./hub").Hub; +export const Hub: typeof import("./hub").Hub = null as any; +utilities.lazyLoad(exports, ["Hub"], () => require("./hub")); + export { HumanTaskUIArgs, HumanTaskUIState } from "./humanTaskUI"; export type HumanTaskUI = import("./humanTaskUI").HumanTaskUI; export const HumanTaskUI: typeof import("./humanTaskUI").HumanTaskUI = null as any; @@ -80,6 +85,11 @@ export type ImageVersion = import("./imageVersion").ImageVersion; export const ImageVersion: typeof import("./imageVersion").ImageVersion = null as any; utilities.lazyLoad(exports, ["ImageVersion"], () => require("./imageVersion")); +export { MlflowTrackingServerArgs, MlflowTrackingServerState } from "./mlflowTrackingServer"; +export type MlflowTrackingServer = import("./mlflowTrackingServer").MlflowTrackingServer; +export const MlflowTrackingServer: typeof import("./mlflowTrackingServer").MlflowTrackingServer = null as any; +utilities.lazyLoad(exports, ["MlflowTrackingServer"], () => require("./mlflowTrackingServer")); + export { ModelArgs, ModelState } from "./model"; export type Model = import("./model").Model; export const Model: typeof import("./model").Model = null as any; @@ -177,12 +187,16 @@ const _module = { return new FeatureGroup(name, undefined, { urn }) case "aws:sagemaker/flowDefinition:FlowDefinition": return new FlowDefinition(name, undefined, { urn }) + case "aws:sagemaker/hub:Hub": + return new Hub(name, undefined, { urn }) case "aws:sagemaker/humanTaskUI:HumanTaskUI": return new HumanTaskUI(name, undefined, { urn }) case "aws:sagemaker/image:Image": return new Image(name, undefined, { urn }) case "aws:sagemaker/imageVersion:ImageVersion": return new ImageVersion(name, undefined, { urn }) + case "aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer": + return new MlflowTrackingServer(name, undefined, { urn }) case "aws:sagemaker/model:Model": return new Model(name, undefined, { urn }) case "aws:sagemaker/modelPackageGroup:ModelPackageGroup": @@ -227,9 +241,11 @@ pulumi.runtime.registerResourceModule("aws", "sagemaker/endpoint", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/endpointConfiguration", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/featureGroup", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/flowDefinition", _module) +pulumi.runtime.registerResourceModule("aws", "sagemaker/hub", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/humanTaskUI", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/image", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/imageVersion", _module) +pulumi.runtime.registerResourceModule("aws", "sagemaker/mlflowTrackingServer", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/model", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/modelPackageGroup", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/modelPackageGroupPolicy", _module) diff --git a/sdk/nodejs/sagemaker/mlflowTrackingServer.ts b/sdk/nodejs/sagemaker/mlflowTrackingServer.ts new file mode 100644 index 00000000000..e38de0c6722 --- /dev/null +++ b/sdk/nodejs/sagemaker/mlflowTrackingServer.ts @@ -0,0 +1,248 @@ +// *** 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"; + +/** + * Provides a SageMaker MLFlow Tracking Server resource. + * + * ## Example Usage + * + * ### Cognito Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.sagemaker.MlflowTrackingServer("example", { + * trackingServerName: "example", + * roleArn: exampleAwsIamRole.arn, + * artifactStoreUri: `s3://${exampleAwsS3Bucket.bucket}/path`, + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import SageMaker MLFlow Tracking Servers using the `workteam_name`. For example: + * + * ```sh + * $ pulumi import aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer example example + * ``` + */ +export class MlflowTrackingServer extends pulumi.CustomResource { + /** + * Get an existing MlflowTrackingServer 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?: MlflowTrackingServerState, opts?: pulumi.CustomResourceOptions): MlflowTrackingServer { + return new MlflowTrackingServer(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer'; + + /** + * Returns true if the given object is an instance of MlflowTrackingServer. 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 MlflowTrackingServer { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MlflowTrackingServer.__pulumiType; + } + + /** + * The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + */ + public readonly artifactStoreUri!: pulumi.Output; + /** + * A list of Member Definitions that contains objects that identify the workers that make up the work team. + */ + public readonly automaticModelRegistration!: pulumi.Output; + /** + * The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + */ + public readonly mlflowVersion!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + */ + public readonly roleArn!: pulumi.Output; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + /** + * A unique string identifying the tracking server name. This string is part of the tracking server ARN. + */ + public readonly trackingServerName!: pulumi.Output; + /** + * The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + */ + public readonly trackingServerSize!: pulumi.Output; + /** + * The URL to connect to the MLflow user interface for the described tracking server. + */ + public /*out*/ readonly trackingServerUrl!: pulumi.Output; + /** + * The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + */ + public readonly weeklyMaintenanceWindowStart!: pulumi.Output; + + /** + * Create a MlflowTrackingServer 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: MlflowTrackingServerArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: MlflowTrackingServerArgs | MlflowTrackingServerState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as MlflowTrackingServerState | undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["artifactStoreUri"] = state ? state.artifactStoreUri : undefined; + resourceInputs["automaticModelRegistration"] = state ? state.automaticModelRegistration : undefined; + resourceInputs["mlflowVersion"] = state ? state.mlflowVersion : undefined; + resourceInputs["roleArn"] = state ? state.roleArn : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["trackingServerName"] = state ? state.trackingServerName : undefined; + resourceInputs["trackingServerSize"] = state ? state.trackingServerSize : undefined; + resourceInputs["trackingServerUrl"] = state ? state.trackingServerUrl : undefined; + resourceInputs["weeklyMaintenanceWindowStart"] = state ? state.weeklyMaintenanceWindowStart : undefined; + } else { + const args = argsOrState as MlflowTrackingServerArgs | undefined; + if ((!args || args.artifactStoreUri === undefined) && !opts.urn) { + throw new Error("Missing required property 'artifactStoreUri'"); + } + if ((!args || args.roleArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'roleArn'"); + } + if ((!args || args.trackingServerName === undefined) && !opts.urn) { + throw new Error("Missing required property 'trackingServerName'"); + } + resourceInputs["artifactStoreUri"] = args ? args.artifactStoreUri : undefined; + resourceInputs["automaticModelRegistration"] = args ? args.automaticModelRegistration : undefined; + resourceInputs["mlflowVersion"] = args ? args.mlflowVersion : undefined; + resourceInputs["roleArn"] = args ? args.roleArn : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["trackingServerName"] = args ? args.trackingServerName : undefined; + resourceInputs["trackingServerSize"] = args ? args.trackingServerSize : undefined; + resourceInputs["weeklyMaintenanceWindowStart"] = args ? args.weeklyMaintenanceWindowStart : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + resourceInputs["trackingServerUrl"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(MlflowTrackingServer.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering MlflowTrackingServer resources. + */ +export interface MlflowTrackingServerState { + /** + * The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + */ + arn?: pulumi.Input; + /** + * The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + */ + artifactStoreUri?: pulumi.Input; + /** + * A list of Member Definitions that contains objects that identify the workers that make up the work team. + */ + automaticModelRegistration?: pulumi.Input; + /** + * The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + */ + mlflowVersion?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + */ + roleArn?: pulumi.Input; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A unique string identifying the tracking server name. This string is part of the tracking server ARN. + */ + trackingServerName?: pulumi.Input; + /** + * The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + */ + trackingServerSize?: pulumi.Input; + /** + * The URL to connect to the MLflow user interface for the described tracking server. + */ + trackingServerUrl?: pulumi.Input; + /** + * The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + */ + weeklyMaintenanceWindowStart?: pulumi.Input; +} + +/** + * The set of arguments for constructing a MlflowTrackingServer resource. + */ +export interface MlflowTrackingServerArgs { + /** + * The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + */ + artifactStoreUri: pulumi.Input; + /** + * A list of Member Definitions that contains objects that identify the workers that make up the work team. + */ + automaticModelRegistration?: pulumi.Input; + /** + * The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + */ + mlflowVersion?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + */ + roleArn: pulumi.Input; + /** + * A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A unique string identifying the tracking server name. This string is part of the tracking server ARN. + */ + trackingServerName: pulumi.Input; + /** + * The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + */ + trackingServerSize?: pulumi.Input; + /** + * The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + */ + weeklyMaintenanceWindowStart?: pulumi.Input; +} diff --git a/sdk/nodejs/securityhub/standardsSubscription.ts b/sdk/nodejs/securityhub/standardsSubscription.ts index d9e3af59b8f..4f2ef0f47b8 100644 --- a/sdk/nodejs/securityhub/standardsSubscription.ts +++ b/sdk/nodejs/securityhub/standardsSubscription.ts @@ -76,6 +76,7 @@ export class StandardsSubscription extends pulumi.CustomResource { * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | */ @@ -122,6 +123,7 @@ export interface StandardsSubscriptionState { * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | */ @@ -143,6 +145,7 @@ export interface StandardsSubscriptionArgs { * | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | * | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | * | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + * | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | * | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | * | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | */ diff --git a/sdk/nodejs/ssm/getPatchBaselines.ts b/sdk/nodejs/ssm/getPatchBaselines.ts new file mode 100644 index 00000000000..83f985d9fe0 --- /dev/null +++ b/sdk/nodejs/ssm/getPatchBaselines.ts @@ -0,0 +1,137 @@ +// *** 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"; + +/** + * Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.ssm.getPatchBaselines({}); + * ``` + * + * ### With Filters + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.ssm.getPatchBaselines({ + * filters: [ + * { + * key: "OWNER", + * values: ["AWS"], + * }, + * { + * key: "OPERATING_SYSTEM", + * values: ["WINDOWS"], + * }, + * ], + * }); + * ``` + */ +export function getPatchBaselines(args?: GetPatchBaselinesArgs, opts?: pulumi.InvokeOptions): Promise { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws:ssm/getPatchBaselines:getPatchBaselines", { + "defaultBaselines": args.defaultBaselines, + "filters": args.filters, + }, opts); +} + +/** + * A collection of arguments for invoking getPatchBaselines. + */ +export interface GetPatchBaselinesArgs { + /** + * Only return baseline identities where `defaultBaseline` is `true`. + */ + defaultBaselines?: boolean; + /** + * Key-value pairs used to filter the results. See `filter` below. + */ + filters?: inputs.ssm.GetPatchBaselinesFilter[]; +} + +/** + * A collection of values returned by getPatchBaselines. + */ +export interface GetPatchBaselinesResult { + /** + * List of baseline identities. See `baselineIdentities` below. + */ + readonly baselineIdentities: outputs.ssm.GetPatchBaselinesBaselineIdentity[]; + readonly defaultBaselines?: boolean; + readonly filters?: outputs.ssm.GetPatchBaselinesFilter[]; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; +} +/** + * Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.ssm.getPatchBaselines({}); + * ``` + * + * ### With Filters + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.ssm.getPatchBaselines({ + * filters: [ + * { + * key: "OWNER", + * values: ["AWS"], + * }, + * { + * key: "OPERATING_SYSTEM", + * values: ["WINDOWS"], + * }, + * ], + * }); + * ``` + */ +export function getPatchBaselinesOutput(args?: GetPatchBaselinesOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws:ssm/getPatchBaselines:getPatchBaselines", { + "defaultBaselines": args.defaultBaselines, + "filters": args.filters, + }, opts); +} + +/** + * A collection of arguments for invoking getPatchBaselines. + */ +export interface GetPatchBaselinesOutputArgs { + /** + * Only return baseline identities where `defaultBaseline` is `true`. + */ + defaultBaselines?: pulumi.Input; + /** + * Key-value pairs used to filter the results. See `filter` below. + */ + filters?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/ssm/index.ts b/sdk/nodejs/ssm/index.ts index 96dbc07b7fe..904d94d4e9b 100644 --- a/sdk/nodejs/ssm/index.ts +++ b/sdk/nodejs/ssm/index.ts @@ -65,6 +65,11 @@ export const getPatchBaseline: typeof import("./getPatchBaseline").getPatchBasel export const getPatchBaselineOutput: typeof import("./getPatchBaseline").getPatchBaselineOutput = null as any; utilities.lazyLoad(exports, ["getPatchBaseline","getPatchBaselineOutput"], () => require("./getPatchBaseline")); +export { GetPatchBaselinesArgs, GetPatchBaselinesResult, GetPatchBaselinesOutputArgs } from "./getPatchBaselines"; +export const getPatchBaselines: typeof import("./getPatchBaselines").getPatchBaselines = null as any; +export const getPatchBaselinesOutput: typeof import("./getPatchBaselines").getPatchBaselinesOutput = null as any; +utilities.lazyLoad(exports, ["getPatchBaselines","getPatchBaselinesOutput"], () => require("./getPatchBaselines")); + export { MaintenanceWindowArgs, MaintenanceWindowState } from "./maintenanceWindow"; export type MaintenanceWindow = import("./maintenanceWindow").MaintenanceWindow; export const MaintenanceWindow: typeof import("./maintenanceWindow").MaintenanceWindow = null as any; diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 658bd31090c..eff90f04f70 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -1223,6 +1223,7 @@ "imagebuilder/imageRecipe.ts", "imagebuilder/index.ts", "imagebuilder/infrastructureConfiguration.ts", + "imagebuilder/lifecyclePolicy.ts", "imagebuilder/workflow.ts", "index.ts", "inspector/assessmentTarget.ts", @@ -1784,6 +1785,8 @@ "rekognition/index.ts", "rekognition/project.ts", "rekognition/streamProcessor.ts", + "resiliencehub/index.ts", + "resiliencehub/resiliencyPolicy.ts", "resourceexplorer/index.ts", "resourceexplorer/index_.ts", "resourceexplorer/search.ts", @@ -1925,10 +1928,12 @@ "sagemaker/featureGroup.ts", "sagemaker/flowDefinition.ts", "sagemaker/getPrebuiltEcrImage.ts", + "sagemaker/hub.ts", "sagemaker/humanTaskUI.ts", "sagemaker/image.ts", "sagemaker/imageVersion.ts", "sagemaker/index.ts", + "sagemaker/mlflowTrackingServer.ts", "sagemaker/model.ts", "sagemaker/modelPackageGroup.ts", "sagemaker/modelPackageGroupPolicy.ts", @@ -2116,6 +2121,7 @@ "ssm/getParameter.ts", "ssm/getParametersByPath.ts", "ssm/getPatchBaseline.ts", + "ssm/getPatchBaselines.ts", "ssm/index.ts", "ssm/maintenanceWindow.ts", "ssm/maintenanceWindowTarget.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index cd3b6b6386d..f3c95717e2b 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -14875,6 +14875,32 @@ export namespace codedeploy { percentage?: pulumi.Input; } + export interface DeploymentConfigZonalConfig { + /** + * The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `firstZoneMonitorDurationInSeconds`, then CodeDeploy uses the `monitorDurationInSeconds` value for the first Availability Zone. + */ + firstZoneMonitorDurationInSeconds?: pulumi.Input; + /** + * The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimumHealthyHostsPerZone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + */ + minimumHealthyHostsPerZone?: pulumi.Input; + /** + * The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitorDurationInSeconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + */ + monitorDurationInSeconds?: pulumi.Input; + } + + export interface DeploymentConfigZonalConfigMinimumHealthyHostsPerZone { + /** + * The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + */ + type?: pulumi.Input; + /** + * The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + */ + value?: pulumi.Input; + } + export interface DeploymentGroupAlarmConfiguration { /** * A list of alarms configured for the deployment group. _A maximum of 10 alarms can be added to a deployment group_. @@ -16996,11 +17022,11 @@ export namespace costexplorer { */ dimension?: pulumi.Input; /** - * Return results that match both Dimension object. + * Return results that do not match the Dimension object. */ not?: pulumi.Input; /** - * Return results that match both Dimension object. + * Return results that match either Dimension object. */ ors?: pulumi.Input[]>; /** @@ -34108,6 +34134,139 @@ export namespace imagebuilder { */ s3KeyPrefix?: pulumi.Input; } + + export interface LifecyclePolicyPolicyDetail { + /** + * Configuration details for the policy action. + */ + action?: pulumi.Input; + /** + * Additional rules to specify resources that should be exempt from policy actions. + */ + exclusionRules?: pulumi.Input; + /** + * Specifies the resources that the lifecycle policy applies to. + * + * The following arguments are optional: + */ + filter?: pulumi.Input; + } + + export interface LifecyclePolicyPolicyDetailAction { + /** + * Specifies the resources that the lifecycle policy applies to. Detailed below. + */ + includeResources?: pulumi.Input; + /** + * Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + * + * The following arguments are optional: + */ + type: pulumi.Input; + } + + export interface LifecyclePolicyPolicyDetailActionIncludeResources { + /** + * Specifies whether the lifecycle action should apply to distributed AMIs. + */ + amis?: pulumi.Input; + /** + * Specifies whether the lifecycle action should apply to distributed containers. + */ + containers?: pulumi.Input; + /** + * Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + */ + snapshots?: pulumi.Input; + } + + export interface LifecyclePolicyPolicyDetailExclusionRules { + /** + * Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + */ + amis?: pulumi.Input; + /** + * Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + */ + tagMap?: pulumi.Input<{[key: string]: pulumi.Input}>; + } + + export interface LifecyclePolicyPolicyDetailExclusionRulesAmis { + /** + * Configures whether public AMIs are excluded from the lifecycle action. + */ + isPublic?: pulumi.Input; + /** + * Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + */ + lastLaunched?: pulumi.Input; + /** + * Configures AWS Regions that are excluded from the lifecycle action. + */ + regions?: pulumi.Input[]>; + /** + * Specifies AWS accounts whose resources are excluded from the lifecycle action. + */ + sharedAccounts?: pulumi.Input[]>; + /** + * Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + */ + tagMap?: pulumi.Input<{[key: string]: pulumi.Input}>; + } + + export interface LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched { + /** + * Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + */ + unit: pulumi.Input; + /** + * The integer number of units for the time period. For example 6 (months). + */ + value: pulumi.Input; + } + + export interface LifecyclePolicyPolicyDetailFilter { + /** + * For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + */ + retainAtLeast?: pulumi.Input; + /** + * Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + */ + type: pulumi.Input; + /** + * Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + */ + unit?: pulumi.Input; + /** + * The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + * + * The following arguments are optional: + */ + value: pulumi.Input; + } + + export interface LifecyclePolicyResourceSelection { + /** + * A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + */ + recipes?: pulumi.Input[]>; + /** + * A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + */ + tagMap?: pulumi.Input<{[key: string]: pulumi.Input}>; + } + + export interface LifecyclePolicyResourceSelectionRecipe { + /** + * The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + */ + name: pulumi.Input; + /** + * The version of the Image Builder recipe specified by the name field. + */ + semanticVersion: pulumi.Input; + } } export namespace inspector { @@ -36458,14 +36617,14 @@ export namespace kinesis { */ parameters?: pulumi.Input[]>; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: pulumi.Input; } export interface FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: pulumi.Input; /** @@ -36823,14 +36982,14 @@ export namespace kinesis { */ parameters?: pulumi.Input[]>; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: pulumi.Input; } export interface FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: pulumi.Input; /** @@ -36971,14 +37130,14 @@ export namespace kinesis { */ parameters?: pulumi.Input[]>; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: pulumi.Input; } export interface FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: pulumi.Input; /** @@ -37082,6 +37241,171 @@ export namespace kinesis { secretArn?: pulumi.Input; } + export interface FirehoseDeliveryStreamIcebergConfiguration { + /** + * Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + */ + bufferingInterval?: pulumi.Input; + /** + * Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + */ + bufferingSize?: pulumi.Input; + /** + * Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + */ + catalogArn: pulumi.Input; + /** + * The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. + */ + cloudwatchLoggingOptions?: pulumi.Input; + /** + * Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destinationTableConfiguration` block below for details. + */ + destinationTableConfigurations?: pulumi.Input[]>; + /** + * The data processing configuration. See `processingConfiguration` block below for details. + */ + processingConfiguration?: pulumi.Input; + /** + * The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + */ + retryDuration?: pulumi.Input; + /** + * The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + */ + roleArn: pulumi.Input; + s3BackupMode?: pulumi.Input; + /** + * The S3 Configuration. See `s3Configuration` block below for details. + */ + s3Configuration: pulumi.Input; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions { + /** + * Enables or disables the logging. Defaults to `false`. + */ + enabled?: pulumi.Input; + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + */ + logGroupName?: pulumi.Input; + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + */ + logStreamName?: pulumi.Input; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration { + /** + * The name of the Apache Iceberg database. + */ + databaseName: pulumi.Input; + /** + * The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + */ + s3ErrorOutputPrefix?: pulumi.Input; + /** + * The name of the Apache Iceberg Table. + */ + tableName: pulumi.Input; + /** + * A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + */ + uniqueKeys?: pulumi.Input[]>; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration { + /** + * Enables or disables data processing. + */ + enabled?: pulumi.Input; + /** + * Specifies the data processors as multiple blocks. See `processors` block below for details. + */ + processors?: pulumi.Input[]>; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor { + /** + * Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + */ + parameters?: pulumi.Input[]>; + /** + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + */ + type: pulumi.Input; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter { + /** + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + */ + parameterName: pulumi.Input; + /** + * Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + */ + parameterValue: pulumi.Input; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationS3Configuration { + /** + * The ARN of the S3 bucket + */ + bucketArn: pulumi.Input; + /** + * Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + */ + bufferingInterval?: pulumi.Input; + /** + * Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + */ + bufferingSize?: pulumi.Input; + /** + * The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. + */ + cloudwatchLoggingOptions?: pulumi.Input; + /** + * The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + */ + compressionFormat?: pulumi.Input; + /** + * Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + */ + errorOutputPrefix?: pulumi.Input; + /** + * Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + */ + kmsKeyArn?: pulumi.Input; + /** + * The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + */ + prefix?: pulumi.Input; + /** + * The ARN of the AWS credentials. + */ + roleArn: pulumi.Input; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions { + /** + * Enables or disables the logging. Defaults to `false`. + */ + enabled?: pulumi.Input; + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + */ + logGroupName?: pulumi.Input; + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + */ + logStreamName?: pulumi.Input; + } + export interface FirehoseDeliveryStreamKinesisSourceConfiguration { /** * The kinesis stream used as the source of the firehose delivery stream. @@ -37221,14 +37545,14 @@ export namespace kinesis { */ parameters?: pulumi.Input[]>; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: pulumi.Input; } export interface FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: pulumi.Input; /** @@ -37390,14 +37714,14 @@ export namespace kinesis { */ parameters?: pulumi.Input[]>; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: pulumi.Input; } export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: pulumi.Input; /** @@ -37569,14 +37893,14 @@ export namespace kinesis { */ parameters?: pulumi.Input[]>; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: pulumi.Input; } export interface FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: pulumi.Input; /** @@ -37835,14 +38159,14 @@ export namespace kinesis { */ parameters?: pulumi.Input[]>; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: pulumi.Input; } export interface FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: pulumi.Input; /** @@ -38023,14 +38347,14 @@ export namespace kinesis { */ parameters?: pulumi.Input[]>; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: pulumi.Input; } export interface FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: pulumi.Input; /** @@ -64184,6 +64508,88 @@ export namespace rekognition { } } +export namespace resiliencehub { + export interface ResiliencyPolicyPolicy { + /** + * Specifies Availability Zone failure policy. See `policy.az` + */ + az?: pulumi.Input; + /** + * Specifies Infrastructure failure policy. See `policy.hardware` + */ + hardware?: pulumi.Input; + /** + * Specifies Region failure policy. `policy.region` + */ + region?: pulumi.Input; + /** + * Specifies Application failure policy. See `policy.software` + * + * The following arguments are optional: + */ + software?: pulumi.Input; + } + + export interface ResiliencyPolicyPolicyAz { + /** + * Recovery Point Objective (RPO) as a Go duration. + */ + rpo: pulumi.Input; + /** + * Recovery Time Objective (RTO) as a Go duration. + */ + rto: pulumi.Input; + } + + export interface ResiliencyPolicyPolicyHardware { + /** + * Recovery Point Objective (RPO) as a Go duration. + */ + rpo: pulumi.Input; + /** + * Recovery Time Objective (RTO) as a Go duration. + */ + rto: pulumi.Input; + } + + export interface ResiliencyPolicyPolicyRegion { + /** + * Recovery Point Objective (RPO) as a Go duration. + */ + rpo?: pulumi.Input; + /** + * Recovery Time Objective (RTO) as a Go duration. + */ + rto?: pulumi.Input; + } + + export interface ResiliencyPolicyPolicySoftware { + /** + * Recovery Point Objective (RPO) as a Go duration. + */ + rpo: pulumi.Input; + /** + * Recovery Time Objective (RTO) as a Go duration. + */ + rto: pulumi.Input; + } + + export interface ResiliencyPolicyTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.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 namespace resourceexplorer { export interface IndexTimeouts { /** @@ -64693,9 +65099,9 @@ export namespace route53 { */ 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). Read operations occur during any refresh or planning operation when refresh is enabled. + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ - read?: pulumi.Input; + update?: pulumi.Input; } export interface ProfilesProfileTimeouts { @@ -67860,6 +68266,14 @@ export namespace sagemaker { } export interface DomainDefaultSpaceSettingsJupyterLabAppSettings { + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: pulumi.Input; + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + */ + builtInLifecycleConfigArn?: pulumi.Input; /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. */ @@ -67872,12 +68286,42 @@ export namespace sagemaker { * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. */ defaultResourceSpec?: pulumi.Input; + /** + * The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + */ + emrSettings?: pulumi.Input; /** * The Amazon Resource Name (ARN) of the Lifecycle Configurations. */ lifecycleConfigArns?: pulumi.Input[]>; } + export interface DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + */ + idleSettings?: pulumi.Input; + } + + export interface DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: pulumi.Input; + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + */ + lifecycleManagement?: pulumi.Input; + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + maxIdleTimeoutInMinutes?: pulumi.Input; + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + minIdleTimeoutInMinutes?: pulumi.Input; + } + export interface DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository { /** * The URL of the Git repository. @@ -67923,6 +68367,17 @@ export namespace sagemaker { sagemakerImageVersionArn?: pulumi.Input; } + export interface DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings { + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + */ + assumableRoleArns?: pulumi.Input[]>; + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + */ + executionRoleArns?: pulumi.Input[]>; + } + export interface DomainDefaultSpaceSettingsJupyterServerAppSettings { /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. @@ -68040,6 +68495,10 @@ export namespace sagemaker { } export interface DomainDefaultUserSettings { + /** + * Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + */ + autoMountHomeEfs?: pulumi.Input; /** * The Canvas app settings. See `canvasAppSettings` Block below. */ @@ -68115,6 +68574,10 @@ export namespace sagemaker { * The model deployment settings for the SageMaker Canvas application. See `directDeploySettings` Block below. */ directDeploySettings?: pulumi.Input; + /** + * The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. + */ + emrServerlessSettings?: pulumi.Input; generativeAiSettings?: pulumi.Input; /** * The settings for connecting to an external data source with OAuth. See `identityProviderOauthSettings` Block below. @@ -68145,6 +68608,17 @@ export namespace sagemaker { status?: pulumi.Input; } + export interface DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings { + /** + * The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + */ + executionRoleArn?: pulumi.Input; + /** + * Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + */ + status?: pulumi.Input; + } + export interface DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings { amazonBedrockRoleArn?: pulumi.Input; } @@ -68205,6 +68679,14 @@ export namespace sagemaker { } export interface DomainDefaultUserSettingsCodeEditorAppSettings { + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: pulumi.Input; + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + */ + builtInLifecycleConfigArn?: pulumi.Input; /** * A list of custom SageMaker images that are configured to run as a CodeEditor app. see `customImage` Block below. */ @@ -68219,6 +68701,32 @@ export namespace sagemaker { lifecycleConfigArns?: pulumi.Input[]>; } + export interface DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + */ + idleSettings?: pulumi.Input; + } + + export interface DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: pulumi.Input; + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + */ + lifecycleManagement?: pulumi.Input; + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + maxIdleTimeoutInMinutes?: pulumi.Input; + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + minIdleTimeoutInMinutes?: pulumi.Input; + } + export interface DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage { /** * The name of the App Image Config. @@ -68287,6 +68795,14 @@ export namespace sagemaker { } export interface DomainDefaultUserSettingsJupyterLabAppSettings { + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: pulumi.Input; + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + */ + builtInLifecycleConfigArn?: pulumi.Input; /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. */ @@ -68299,12 +68815,42 @@ export namespace sagemaker { * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. */ defaultResourceSpec?: pulumi.Input; + /** + * The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + */ + emrSettings?: pulumi.Input; /** * The Amazon Resource Name (ARN) of the Lifecycle Configurations. */ lifecycleConfigArns?: pulumi.Input[]>; } + export interface DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + */ + idleSettings?: pulumi.Input; + } + + export interface DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: pulumi.Input; + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + */ + lifecycleManagement?: pulumi.Input; + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + maxIdleTimeoutInMinutes?: pulumi.Input; + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + minIdleTimeoutInMinutes?: pulumi.Input; + } + export interface DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository { /** * The URL of the Git repository. @@ -68350,6 +68896,17 @@ export namespace sagemaker { sagemakerImageVersionArn?: pulumi.Input; } + export interface DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings { + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + */ + assumableRoleArns?: pulumi.Input[]>; + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + */ + executionRoleArns?: pulumi.Input[]>; + } + export interface DomainDefaultUserSettingsJupyterServerAppSettings { /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. @@ -68546,6 +69103,10 @@ export namespace sagemaker { * The Applications supported in Studio that are hidden from the Studio left navigation pane. */ hiddenAppTypes?: pulumi.Input[]>; + /** + * The instance types you are hiding from the Studio user interface. + */ + hiddenInstanceTypes?: pulumi.Input[]>; /** * The machine learning tools that are hidden from the Studio left navigation pane. */ @@ -69104,6 +69665,8 @@ export namespace sagemaker { } export interface FeatureGroupFeatureDefinition { + collectionConfig?: pulumi.Input; + collectionType?: pulumi.Input; /** * The name of a feature. `featureName` cannot be any of the following: `isDeleted`, `writeTime`, `apiInvocationTime`. */ @@ -69114,6 +69677,14 @@ export namespace sagemaker { featureType?: pulumi.Input; } + export interface FeatureGroupFeatureDefinitionCollectionConfig { + vectorConfig?: pulumi.Input; + } + + export interface FeatureGroupFeatureDefinitionCollectionConfigVectorConfig { + dimension?: pulumi.Input; + } + export interface FeatureGroupOfflineStoreConfig { /** * The meta data of the Glue table that is autogenerated when an OfflineStore is created. See Data Catalog Config Below. @@ -69200,6 +69771,12 @@ export namespace sagemaker { value?: pulumi.Input; } + export interface FeatureGroupThroughputConfig { + provisionedReadCapacityUnits?: pulumi.Input; + provisionedWriteCapacityUnits?: pulumi.Input; + throughputMode?: pulumi.Input; + } + export interface FlowDefinitionHumanLoopActivationConfig { /** * defines under what conditions SageMaker creates a human loop. See Human Loop Activation Conditions Config details below. @@ -69293,6 +69870,13 @@ export namespace sagemaker { s3OutputPath: pulumi.Input; } + export interface HubS3StorageConfig { + /** + * The Amazon S3 bucket prefix for hosting hub content.interface. + */ + s3OutputPath?: pulumi.Input; + } + export interface HumanTaskUIUiTemplate { /** * The content of the Liquid template for the worker user interface. @@ -69644,12 +70228,30 @@ export namespace sagemaker { } export interface SpaceSpaceSettingsCodeEditorAppSettings { + /** + * Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: pulumi.Input; /** * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. */ defaultResourceSpec: pulumi.Input; } + export interface SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. + */ + idleSettings?: pulumi.Input; + } + + export interface SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: pulumi.Input; + } + export interface SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec { /** * The instance type. @@ -69688,6 +70290,10 @@ export namespace sagemaker { } export interface SpaceSpaceSettingsJupyterLabAppSettings { + /** + * Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: pulumi.Input; /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. */ @@ -69698,6 +70304,20 @@ export namespace sagemaker { defaultResourceSpec: pulumi.Input; } + export interface SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. + */ + idleSettings?: pulumi.Input; + } + + export interface SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: pulumi.Input; + } + export interface SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository { /** * The URL of the Git repository. @@ -69848,6 +70468,10 @@ export namespace sagemaker { } export interface UserProfileUserSettings { + /** + * Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + */ + autoMountHomeEfs?: pulumi.Input; /** * The Canvas app settings. See Canvas App Settings below. */ @@ -69923,6 +70547,10 @@ export namespace sagemaker { * The model deployment settings for the SageMaker Canvas application. See Direct Deploy Settings below. */ directDeploySettings?: pulumi.Input; + /** + * The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. + */ + emrServerlessSettings?: pulumi.Input; generativeAiSettings?: pulumi.Input; /** * The settings for connecting to an external data source with OAuth. See Identity Provider OAuth Settings below. @@ -69953,6 +70581,17 @@ export namespace sagemaker { status?: pulumi.Input; } + export interface UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings { + /** + * The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + */ + executionRoleArn?: pulumi.Input; + /** + * Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + */ + status?: pulumi.Input; + } + export interface UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings { amazonBedrockRoleArn?: pulumi.Input; } @@ -70013,6 +70652,14 @@ export namespace sagemaker { } export interface UserProfileUserSettingsCodeEditorAppSettings { + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: pulumi.Input; + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + */ + builtInLifecycleConfigArn?: pulumi.Input; /** * A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. */ @@ -70027,6 +70674,32 @@ export namespace sagemaker { lifecycleConfigArns?: pulumi.Input[]>; } + export interface UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + */ + idleSettings?: pulumi.Input; + } + + export interface UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: pulumi.Input; + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + */ + lifecycleManagement?: pulumi.Input; + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + maxIdleTimeoutInMinutes?: pulumi.Input; + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + minIdleTimeoutInMinutes?: pulumi.Input; + } + export interface UserProfileUserSettingsCodeEditorAppSettingsCustomImage { /** * The name of the App Image Config. @@ -70095,6 +70768,14 @@ export namespace sagemaker { } export interface UserProfileUserSettingsJupyterLabAppSettings { + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: pulumi.Input; + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + */ + builtInLifecycleConfigArn?: pulumi.Input; /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. */ @@ -70104,12 +70785,42 @@ export namespace sagemaker { * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. */ defaultResourceSpec?: pulumi.Input; + /** + * The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + */ + emrSettings?: pulumi.Input; /** * The Amazon Resource Name (ARN) of the Lifecycle Configurations. */ lifecycleConfigArns?: pulumi.Input[]>; } + export interface UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + */ + idleSettings?: pulumi.Input; + } + + export interface UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: pulumi.Input; + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + */ + lifecycleManagement?: pulumi.Input; + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + maxIdleTimeoutInMinutes?: pulumi.Input; + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + minIdleTimeoutInMinutes?: pulumi.Input; + } + export interface UserProfileUserSettingsJupyterLabAppSettingsCodeRepository { /** * The URL of the Git repository. @@ -70155,6 +70866,17 @@ export namespace sagemaker { sagemakerImageVersionArn?: pulumi.Input; } + export interface UserProfileUserSettingsJupyterLabAppSettingsEmrSettings { + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + */ + assumableRoleArns?: pulumi.Input[]>; + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + */ + executionRoleArns?: pulumi.Input[]>; + } + export interface UserProfileUserSettingsJupyterServerAppSettings { /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. @@ -70351,6 +71073,10 @@ export namespace sagemaker { * The Applications supported in Studio that are hidden from the Studio left navigation pane. */ hiddenAppTypes?: pulumi.Input[]>; + /** + * The instance types you are hiding from the Studio user interface. + */ + hiddenInstanceTypes?: pulumi.Input[]>; /** * The machine learning tools that are hidden from the Studio left navigation pane. */ @@ -74056,6 +74782,28 @@ export namespace ssm { values: pulumi.Input[]>; } + export interface GetPatchBaselinesFilter { + /** + * Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + */ + key: string; + /** + * Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + */ + values: string[]; + } + + export interface GetPatchBaselinesFilterArgs { + /** + * Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + */ + key: pulumi.Input; + /** + * Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + */ + values: pulumi.Input[]>; + } + export interface MaintenanceWindowTargetTarget { key: pulumi.Input; values: pulumi.Input[]>; diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index f70e38b97fb..5726d234070 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -16669,6 +16669,32 @@ export namespace codedeploy { percentage?: number; } + export interface DeploymentConfigZonalConfig { + /** + * The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `firstZoneMonitorDurationInSeconds`, then CodeDeploy uses the `monitorDurationInSeconds` value for the first Availability Zone. + */ + firstZoneMonitorDurationInSeconds?: number; + /** + * The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimumHealthyHostsPerZone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + */ + minimumHealthyHostsPerZone?: outputs.codedeploy.DeploymentConfigZonalConfigMinimumHealthyHostsPerZone; + /** + * The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitorDurationInSeconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + */ + monitorDurationInSeconds?: number; + } + + export interface DeploymentConfigZonalConfigMinimumHealthyHostsPerZone { + /** + * The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + */ + type?: string; + /** + * The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + */ + value?: number; + } + export interface DeploymentGroupAlarmConfiguration { /** * A list of alarms configured for the deployment group. _A maximum of 10 alarms can be added to a deployment group_. @@ -20754,11 +20780,11 @@ export namespace costexplorer { */ dimension?: outputs.costexplorer.AnomalySubscriptionThresholdExpressionDimension; /** - * Return results that match both Dimension object. + * Return results that do not match the Dimension object. */ not?: outputs.costexplorer.AnomalySubscriptionThresholdExpressionNot; /** - * Return results that match both Dimension object. + * Return results that match either Dimension object. */ ors?: outputs.costexplorer.AnomalySubscriptionThresholdExpressionOr[]; /** @@ -39895,7 +39921,7 @@ export namespace imagebuilder { /** * Set to `true` to remove a mapping from the parent image. */ - noDevice?: boolean; + noDevice: boolean; /** * Virtual device name. For example, `ephemeral0`. Instance store volumes are numbered starting from 0. */ @@ -40828,7 +40854,7 @@ export namespace imagebuilder { /** * Set to `true` to remove a mapping from the parent image. */ - noDevice?: boolean; + noDevice: boolean; /** * Virtual device name. For example, `ephemeral0`. Instance store volumes are numbered starting from 0. */ @@ -40962,6 +40988,139 @@ export namespace imagebuilder { s3KeyPrefix?: string; } + export interface LifecyclePolicyPolicyDetail { + /** + * Configuration details for the policy action. + */ + action?: outputs.imagebuilder.LifecyclePolicyPolicyDetailAction; + /** + * Additional rules to specify resources that should be exempt from policy actions. + */ + exclusionRules?: outputs.imagebuilder.LifecyclePolicyPolicyDetailExclusionRules; + /** + * Specifies the resources that the lifecycle policy applies to. + * + * The following arguments are optional: + */ + filter?: outputs.imagebuilder.LifecyclePolicyPolicyDetailFilter; + } + + export interface LifecyclePolicyPolicyDetailAction { + /** + * Specifies the resources that the lifecycle policy applies to. Detailed below. + */ + includeResources?: outputs.imagebuilder.LifecyclePolicyPolicyDetailActionIncludeResources; + /** + * Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + * + * The following arguments are optional: + */ + type: string; + } + + export interface LifecyclePolicyPolicyDetailActionIncludeResources { + /** + * Specifies whether the lifecycle action should apply to distributed AMIs. + */ + amis: boolean; + /** + * Specifies whether the lifecycle action should apply to distributed containers. + */ + containers: boolean; + /** + * Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + */ + snapshots: boolean; + } + + export interface LifecyclePolicyPolicyDetailExclusionRules { + /** + * Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + */ + amis?: outputs.imagebuilder.LifecyclePolicyPolicyDetailExclusionRulesAmis; + /** + * Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + */ + tagMap?: {[key: string]: string}; + } + + export interface LifecyclePolicyPolicyDetailExclusionRulesAmis { + /** + * Configures whether public AMIs are excluded from the lifecycle action. + */ + isPublic?: boolean; + /** + * Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + */ + lastLaunched?: outputs.imagebuilder.LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched; + /** + * Configures AWS Regions that are excluded from the lifecycle action. + */ + regions?: string[]; + /** + * Specifies AWS accounts whose resources are excluded from the lifecycle action. + */ + sharedAccounts?: string[]; + /** + * Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + */ + tagMap?: {[key: string]: string}; + } + + export interface LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched { + /** + * Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + */ + unit: string; + /** + * The integer number of units for the time period. For example 6 (months). + */ + value: number; + } + + export interface LifecyclePolicyPolicyDetailFilter { + /** + * For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + */ + retainAtLeast?: number; + /** + * Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + */ + type: string; + /** + * Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + */ + unit?: string; + /** + * The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + * + * The following arguments are optional: + */ + value: number; + } + + export interface LifecyclePolicyResourceSelection { + /** + * A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + */ + recipes?: outputs.imagebuilder.LifecyclePolicyResourceSelectionRecipe[]; + /** + * A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + */ + tagMap?: {[key: string]: string}; + } + + export interface LifecyclePolicyResourceSelectionRecipe { + /** + * The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + */ + name: string; + /** + * The version of the Image Builder recipe specified by the name field. + */ + semanticVersion: string; + } + } export namespace inspector { @@ -43564,14 +43723,14 @@ export namespace kinesis { */ parameters?: outputs.kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter[]; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: string; } export interface FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: string; /** @@ -43929,14 +44088,14 @@ export namespace kinesis { */ parameters?: outputs.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter[]; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: string; } export interface FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: string; /** @@ -44077,14 +44236,14 @@ export namespace kinesis { */ parameters?: outputs.kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter[]; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: string; } export interface FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: string; /** @@ -44188,6 +44347,171 @@ export namespace kinesis { secretArn?: string; } + export interface FirehoseDeliveryStreamIcebergConfiguration { + /** + * Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + */ + bufferingInterval?: number; + /** + * Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + */ + bufferingSize?: number; + /** + * Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + */ + catalogArn: string; + /** + * The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. + */ + cloudwatchLoggingOptions: outputs.kinesis.FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions; + /** + * Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destinationTableConfiguration` block below for details. + */ + destinationTableConfigurations?: outputs.kinesis.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration[]; + /** + * The data processing configuration. See `processingConfiguration` block below for details. + */ + processingConfiguration?: outputs.kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration; + /** + * The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + */ + retryDuration?: number; + /** + * The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + */ + roleArn: string; + s3BackupMode?: string; + /** + * The S3 Configuration. See `s3Configuration` block below for details. + */ + s3Configuration: outputs.kinesis.FirehoseDeliveryStreamIcebergConfigurationS3Configuration; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions { + /** + * Enables or disables the logging. Defaults to `false`. + */ + enabled?: boolean; + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + */ + logGroupName?: string; + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + */ + logStreamName?: string; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration { + /** + * The name of the Apache Iceberg database. + */ + databaseName: string; + /** + * The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + */ + s3ErrorOutputPrefix?: string; + /** + * The name of the Apache Iceberg Table. + */ + tableName: string; + /** + * A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + */ + uniqueKeys?: string[]; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration { + /** + * Enables or disables data processing. + */ + enabled?: boolean; + /** + * Specifies the data processors as multiple blocks. See `processors` block below for details. + */ + processors?: outputs.kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor[]; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor { + /** + * Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + */ + parameters?: outputs.kinesis.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter[]; + /** + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + */ + type: string; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter { + /** + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + */ + parameterName: string; + /** + * Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + * + * > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + */ + parameterValue: string; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationS3Configuration { + /** + * The ARN of the S3 bucket + */ + bucketArn: string; + /** + * Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + */ + bufferingInterval?: number; + /** + * Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + * We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + */ + bufferingSize?: number; + /** + * The CloudWatch Logging Options for the delivery stream. See `cloudwatchLoggingOptions` block below for details. + */ + cloudwatchLoggingOptions: outputs.kinesis.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions; + /** + * The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + */ + compressionFormat?: string; + /** + * Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + */ + errorOutputPrefix?: string; + /** + * Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + * be used. + */ + kmsKeyArn?: string; + /** + * The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + */ + prefix?: string; + /** + * The ARN of the AWS credentials. + */ + roleArn: string; + } + + export interface FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions { + /** + * Enables or disables the logging. Defaults to `false`. + */ + enabled?: boolean; + /** + * The CloudWatch group name for logging. This value is required if `enabled` is true. + */ + logGroupName?: string; + /** + * The CloudWatch log stream name for logging. This value is required if `enabled` is true. + */ + logStreamName?: string; + } + export interface FirehoseDeliveryStreamKinesisSourceConfiguration { /** * The kinesis stream used as the source of the firehose delivery stream. @@ -44327,14 +44651,14 @@ export namespace kinesis { */ parameters?: outputs.kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter[]; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: string; } export interface FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: string; /** @@ -44496,14 +44820,14 @@ export namespace kinesis { */ parameters?: outputs.kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter[]; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: string; } export interface FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: string; /** @@ -44675,14 +44999,14 @@ export namespace kinesis { */ parameters?: outputs.kinesis.FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter[]; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: string; } export interface FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: string; /** @@ -44941,14 +45265,14 @@ export namespace kinesis { */ parameters?: outputs.kinesis.FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter[]; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: string; } export interface FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: string; /** @@ -45129,14 +45453,14 @@ export namespace kinesis { */ parameters?: outputs.kinesis.FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter[]; /** - * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. */ type: string; } export interface FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter { /** - * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + * Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. */ parameterName: string; /** @@ -72538,6 +72862,89 @@ export namespace rekognition { } +export namespace resiliencehub { + export interface ResiliencyPolicyPolicy { + /** + * Specifies Availability Zone failure policy. See `policy.az` + */ + az?: outputs.resiliencehub.ResiliencyPolicyPolicyAz; + /** + * Specifies Infrastructure failure policy. See `policy.hardware` + */ + hardware?: outputs.resiliencehub.ResiliencyPolicyPolicyHardware; + /** + * Specifies Region failure policy. `policy.region` + */ + region?: outputs.resiliencehub.ResiliencyPolicyPolicyRegion; + /** + * Specifies Application failure policy. See `policy.software` + * + * The following arguments are optional: + */ + software?: outputs.resiliencehub.ResiliencyPolicyPolicySoftware; + } + + export interface ResiliencyPolicyPolicyAz { + /** + * Recovery Point Objective (RPO) as a Go duration. + */ + rpo: string; + /** + * Recovery Time Objective (RTO) as a Go duration. + */ + rto: string; + } + + export interface ResiliencyPolicyPolicyHardware { + /** + * Recovery Point Objective (RPO) as a Go duration. + */ + rpo: string; + /** + * Recovery Time Objective (RTO) as a Go duration. + */ + rto: string; + } + + export interface ResiliencyPolicyPolicyRegion { + /** + * Recovery Point Objective (RPO) as a Go duration. + */ + rpo?: string; + /** + * Recovery Time Objective (RTO) as a Go duration. + */ + rto?: string; + } + + export interface ResiliencyPolicyPolicySoftware { + /** + * Recovery Point Objective (RPO) as a Go duration. + */ + rpo: string; + /** + * Recovery Time Objective (RTO) as a Go duration. + */ + rto: string; + } + + export interface ResiliencyPolicyTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.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 namespace resourceexplorer { export interface IndexTimeouts { /** @@ -73005,9 +73412,9 @@ export namespace route53 { */ 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). Read operations occur during any refresh or planning operation when refresh is enabled. + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). */ - read?: string; + update?: string; } export interface ProfilesProfileTimeouts { @@ -76220,6 +76627,14 @@ export namespace sagemaker { } export interface DomainDefaultSpaceSettingsJupyterLabAppSettings { + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: outputs.sagemaker.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement; + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + */ + builtInLifecycleConfigArn?: string; /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. */ @@ -76232,12 +76647,42 @@ export namespace sagemaker { * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. */ defaultResourceSpec?: outputs.sagemaker.DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec; + /** + * The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + */ + emrSettings?: outputs.sagemaker.DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings; /** * The Amazon Resource Name (ARN) of the Lifecycle Configurations. */ lifecycleConfigArns?: string[]; } + export interface DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + */ + idleSettings?: outputs.sagemaker.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings; + } + + export interface DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: number; + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + */ + lifecycleManagement?: string; + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + maxIdleTimeoutInMinutes?: number; + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + minIdleTimeoutInMinutes?: number; + } + export interface DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository { /** * The URL of the Git repository. @@ -76283,6 +76728,17 @@ export namespace sagemaker { sagemakerImageVersionArn?: string; } + export interface DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings { + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + */ + assumableRoleArns?: string[]; + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + */ + executionRoleArns?: string[]; + } + export interface DomainDefaultSpaceSettingsJupyterServerAppSettings { /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. @@ -76400,6 +76856,10 @@ export namespace sagemaker { } export interface DomainDefaultUserSettings { + /** + * Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + */ + autoMountHomeEfs: string; /** * The Canvas app settings. See `canvasAppSettings` Block below. */ @@ -76475,6 +76935,10 @@ export namespace sagemaker { * The model deployment settings for the SageMaker Canvas application. See `directDeploySettings` Block below. */ directDeploySettings?: outputs.sagemaker.DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings; + /** + * The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. + */ + emrServerlessSettings?: outputs.sagemaker.DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings; generativeAiSettings?: outputs.sagemaker.DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings; /** * The settings for connecting to an external data source with OAuth. See `identityProviderOauthSettings` Block below. @@ -76505,6 +76969,17 @@ export namespace sagemaker { status?: string; } + export interface DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings { + /** + * The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + */ + executionRoleArn?: string; + /** + * Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + */ + status?: string; + } + export interface DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings { amazonBedrockRoleArn?: string; } @@ -76565,6 +77040,14 @@ export namespace sagemaker { } export interface DomainDefaultUserSettingsCodeEditorAppSettings { + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: outputs.sagemaker.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement; + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + */ + builtInLifecycleConfigArn?: string; /** * A list of custom SageMaker images that are configured to run as a CodeEditor app. see `customImage` Block below. */ @@ -76579,6 +77062,32 @@ export namespace sagemaker { lifecycleConfigArns?: string[]; } + export interface DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + */ + idleSettings?: outputs.sagemaker.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings; + } + + export interface DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: number; + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + */ + lifecycleManagement?: string; + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + maxIdleTimeoutInMinutes?: number; + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + minIdleTimeoutInMinutes?: number; + } + export interface DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage { /** * The name of the App Image Config. @@ -76647,6 +77156,14 @@ export namespace sagemaker { } export interface DomainDefaultUserSettingsJupyterLabAppSettings { + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: outputs.sagemaker.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement; + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + */ + builtInLifecycleConfigArn?: string; /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. */ @@ -76659,12 +77176,42 @@ export namespace sagemaker { * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `defaultResourceSpec` Block below. */ defaultResourceSpec?: outputs.sagemaker.DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec; + /** + * The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + */ + emrSettings?: outputs.sagemaker.DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings; /** * The Amazon Resource Name (ARN) of the Lifecycle Configurations. */ lifecycleConfigArns?: string[]; } + export interface DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + */ + idleSettings?: outputs.sagemaker.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings; + } + + export interface DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: number; + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + */ + lifecycleManagement?: string; + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + maxIdleTimeoutInMinutes?: number; + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + minIdleTimeoutInMinutes?: number; + } + export interface DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository { /** * The URL of the Git repository. @@ -76710,6 +77257,17 @@ export namespace sagemaker { sagemakerImageVersionArn?: string; } + export interface DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings { + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + */ + assumableRoleArns?: string[]; + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + */ + executionRoleArns?: string[]; + } + export interface DomainDefaultUserSettingsJupyterServerAppSettings { /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `codeRepository` Block below. @@ -76906,6 +77464,10 @@ export namespace sagemaker { * The Applications supported in Studio that are hidden from the Studio left navigation pane. */ hiddenAppTypes?: string[]; + /** + * The instance types you are hiding from the Studio user interface. + */ + hiddenInstanceTypes?: string[]; /** * The machine learning tools that are hidden from the Studio left navigation pane. */ @@ -77464,6 +78026,8 @@ export namespace sagemaker { } export interface FeatureGroupFeatureDefinition { + collectionConfig?: outputs.sagemaker.FeatureGroupFeatureDefinitionCollectionConfig; + collectionType?: string; /** * The name of a feature. `featureName` cannot be any of the following: `isDeleted`, `writeTime`, `apiInvocationTime`. */ @@ -77474,6 +78038,14 @@ export namespace sagemaker { featureType?: string; } + export interface FeatureGroupFeatureDefinitionCollectionConfig { + vectorConfig?: outputs.sagemaker.FeatureGroupFeatureDefinitionCollectionConfigVectorConfig; + } + + export interface FeatureGroupFeatureDefinitionCollectionConfigVectorConfig { + dimension?: number; + } + export interface FeatureGroupOfflineStoreConfig { /** * The meta data of the Glue table that is autogenerated when an OfflineStore is created. See Data Catalog Config Below. @@ -77560,6 +78132,12 @@ export namespace sagemaker { value?: number; } + export interface FeatureGroupThroughputConfig { + provisionedReadCapacityUnits?: number; + provisionedWriteCapacityUnits?: number; + throughputMode: string; + } + export interface FlowDefinitionHumanLoopActivationConfig { /** * defines under what conditions SageMaker creates a human loop. See Human Loop Activation Conditions Config details below. @@ -77653,6 +78231,13 @@ export namespace sagemaker { s3OutputPath: string; } + export interface HubS3StorageConfig { + /** + * The Amazon S3 bucket prefix for hosting hub content.interface. + */ + s3OutputPath?: string; + } + export interface HumanTaskUIUiTemplate { /** * The content of the Liquid template for the worker user interface. @@ -78004,12 +78589,30 @@ export namespace sagemaker { } export interface SpaceSpaceSettingsCodeEditorAppSettings { + /** + * Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: outputs.sagemaker.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement; /** * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `defaultResourceSpec` Block below. */ defaultResourceSpec: outputs.sagemaker.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec; } + export interface SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. + */ + idleSettings?: outputs.sagemaker.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings; + } + + export interface SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: number; + } + export interface SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec { /** * The instance type. @@ -78048,6 +78651,10 @@ export namespace sagemaker { } export interface SpaceSpaceSettingsJupyterLabAppSettings { + /** + * Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: outputs.sagemaker.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement; /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `codeRepository` Block below. */ @@ -78058,6 +78665,20 @@ export namespace sagemaker { defaultResourceSpec: outputs.sagemaker.SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec; } + export interface SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. See `idleSettings` Block below. + */ + idleSettings?: outputs.sagemaker.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings; + } + + export interface SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: number; + } + export interface SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository { /** * The URL of the Git repository. @@ -78208,6 +78829,10 @@ export namespace sagemaker { } export interface UserProfileUserSettings { + /** + * Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + */ + autoMountHomeEfs: string; /** * The Canvas app settings. See Canvas App Settings below. */ @@ -78283,6 +78908,10 @@ export namespace sagemaker { * The model deployment settings for the SageMaker Canvas application. See Direct Deploy Settings below. */ directDeploySettings?: outputs.sagemaker.UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings; + /** + * The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emrServerlessSettings` Block below. + */ + emrServerlessSettings?: outputs.sagemaker.UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings; generativeAiSettings?: outputs.sagemaker.UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings; /** * The settings for connecting to an external data source with OAuth. See Identity Provider OAuth Settings below. @@ -78313,6 +78942,17 @@ export namespace sagemaker { status?: string; } + export interface UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings { + /** + * The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + */ + executionRoleArn?: string; + /** + * Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + */ + status?: string; + } + export interface UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings { amazonBedrockRoleArn?: string; } @@ -78373,6 +79013,14 @@ export namespace sagemaker { } export interface UserProfileUserSettingsCodeEditorAppSettings { + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: outputs.sagemaker.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement; + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + */ + builtInLifecycleConfigArn?: string; /** * A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. */ @@ -78387,6 +79035,32 @@ export namespace sagemaker { lifecycleConfigArns?: string[]; } + export interface UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + */ + idleSettings?: outputs.sagemaker.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings; + } + + export interface UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: number; + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + */ + lifecycleManagement?: string; + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + maxIdleTimeoutInMinutes?: number; + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + minIdleTimeoutInMinutes?: number; + } + export interface UserProfileUserSettingsCodeEditorAppSettingsCustomImage { /** * The name of the App Image Config. @@ -78455,6 +79129,14 @@ export namespace sagemaker { } export interface UserProfileUserSettingsJupyterLabAppSettings { + /** + * Indicates whether idle shutdown is activated for JupyterLab applications. see `appLifecycleManagement` Block below. + */ + appLifecycleManagement?: outputs.sagemaker.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement; + /** + * The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + */ + builtInLifecycleConfigArn?: string; /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. */ @@ -78464,12 +79146,42 @@ export namespace sagemaker { * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. */ defaultResourceSpec?: outputs.sagemaker.UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec; + /** + * The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emrSettings` Block below. + */ + emrSettings?: outputs.sagemaker.UserProfileUserSettingsJupyterLabAppSettingsEmrSettings; /** * The Amazon Resource Name (ARN) of the Lifecycle Configurations. */ lifecycleConfigArns?: string[]; } + export interface UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement { + /** + * Settings related to idle shutdown of Studio applications. see `idleSettings` Block below. + */ + idleSettings?: outputs.sagemaker.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings; + } + + export interface UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings { + /** + * The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + */ + idleTimeoutInMinutes?: number; + /** + * Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + */ + lifecycleManagement?: string; + /** + * The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + maxIdleTimeoutInMinutes?: number; + /** + * The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + */ + minIdleTimeoutInMinutes?: number; + } + export interface UserProfileUserSettingsJupyterLabAppSettingsCodeRepository { /** * The URL of the Git repository. @@ -78515,6 +79227,17 @@ export namespace sagemaker { sagemakerImageVersionArn?: string; } + export interface UserProfileUserSettingsJupyterLabAppSettingsEmrSettings { + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + */ + assumableRoleArns?: string[]; + /** + * An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + */ + executionRoleArns?: string[]; + } + export interface UserProfileUserSettingsJupyterServerAppSettings { /** * A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. @@ -78711,6 +79434,10 @@ export namespace sagemaker { * The Applications supported in Studio that are hidden from the Studio left navigation pane. */ hiddenAppTypes?: string[]; + /** + * The instance types you are hiding from the Studio user interface. + */ + hiddenInstanceTypes?: string[]; /** * The machine learning tools that are hidden from the Studio left navigation pane. */ @@ -82846,6 +83573,40 @@ export namespace ssm { products: string[]; } + export interface GetPatchBaselinesBaselineIdentity { + /** + * Description of the patch baseline. + */ + baselineDescription: string; + /** + * ID of the patch baseline. + */ + baselineId: string; + /** + * Name of the patch baseline. + */ + baselineName: string; + /** + * Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. + */ + defaultBaseline: boolean; + /** + * Operating system the patch baseline applies to. + */ + operatingSystem: string; + } + + export interface GetPatchBaselinesFilter { + /** + * Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + */ + key: string; + /** + * Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + */ + values: string[]; + } + export interface MaintenanceWindowTargetTarget { key: string; values: string[]; diff --git a/sdk/nodejs/verifiedaccess/group.ts b/sdk/nodejs/verifiedaccess/group.ts index c9761a69262..f69293745bb 100644 --- a/sdk/nodejs/verifiedaccess/group.ts +++ b/sdk/nodejs/verifiedaccess/group.ts @@ -20,6 +20,21 @@ import * as utilities from "../utilities"; * * const example = new aws.verifiedaccess.Group("example", {verifiedaccessInstanceId: exampleAwsVerifiedaccessInstance.id}); * ``` + * + * ### Usage with KMS Key + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const testKey = new aws.kms.Key("test_key", {description: "KMS key for Verified Access Group test"}); + * const test = new aws.verifiedaccess.Group("test", { + * verifiedaccessInstanceId: testAwsVerifiedaccessInstanceTrustProviderAttachment.verifiedaccessInstanceId, + * sseConfiguration: { + * kmsKeyArn: testKey.arn, + * }, + * }); + * ``` */ export class Group extends pulumi.CustomResource { /** diff --git a/sdk/python/pulumi_aws/__init__.py b/sdk/python/pulumi_aws/__init__.py index 7155da83b3d..b09cbe534c7 100644 --- a/sdk/python/pulumi_aws/__init__.py +++ b/sdk/python/pulumi_aws/__init__.py @@ -350,6 +350,8 @@ redshiftserverless = __redshiftserverless import pulumi_aws.rekognition as __rekognition rekognition = __rekognition + import pulumi_aws.resiliencehub as __resiliencehub + resiliencehub = __resiliencehub import pulumi_aws.resourceexplorer as __resourceexplorer resourceexplorer = __resourceexplorer import pulumi_aws.resourcegroups as __resourcegroups @@ -616,6 +618,7 @@ redshiftdata = _utilities.lazy_import('pulumi_aws.redshiftdata') redshiftserverless = _utilities.lazy_import('pulumi_aws.redshiftserverless') rekognition = _utilities.lazy_import('pulumi_aws.rekognition') + resiliencehub = _utilities.lazy_import('pulumi_aws.resiliencehub') resourceexplorer = _utilities.lazy_import('pulumi_aws.resourceexplorer') resourcegroups = _utilities.lazy_import('pulumi_aws.resourcegroups') resourcegroupstaggingapi = _utilities.lazy_import('pulumi_aws.resourcegroupstaggingapi') @@ -6687,6 +6690,14 @@ "aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration": "InfrastructureConfiguration" } }, + { + "pkg": "aws", + "mod": "imagebuilder/lifecyclePolicy", + "fqn": "pulumi_aws.imagebuilder", + "classes": { + "aws:imagebuilder/lifecyclePolicy:LifecyclePolicy": "LifecyclePolicy" + } + }, { "pkg": "aws", "mod": "imagebuilder/workflow", @@ -9463,6 +9474,14 @@ "aws:rekognition/streamProcessor:StreamProcessor": "StreamProcessor" } }, + { + "pkg": "aws", + "mod": "resiliencehub/resiliencyPolicy", + "fqn": "pulumi_aws.resiliencehub", + "classes": { + "aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy": "ResiliencyPolicy" + } + }, { "pkg": "aws", "mod": "resourceexplorer/index", @@ -10247,6 +10266,14 @@ "aws:sagemaker/flowDefinition:FlowDefinition": "FlowDefinition" } }, + { + "pkg": "aws", + "mod": "sagemaker/hub", + "fqn": "pulumi_aws.sagemaker", + "classes": { + "aws:sagemaker/hub:Hub": "Hub" + } + }, { "pkg": "aws", "mod": "sagemaker/humanTaskUI", @@ -10271,6 +10298,14 @@ "aws:sagemaker/imageVersion:ImageVersion": "ImageVersion" } }, + { + "pkg": "aws", + "mod": "sagemaker/mlflowTrackingServer", + "fqn": "pulumi_aws.sagemaker", + "classes": { + "aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer": "MlflowTrackingServer" + } + }, { "pkg": "aws", "mod": "sagemaker/model", diff --git a/sdk/python/pulumi_aws/alb/get_load_balancer.py b/sdk/python/pulumi_aws/alb/get_load_balancer.py index b171cb18a81..8fa04166dd4 100644 --- a/sdk/python/pulumi_aws/alb/get_load_balancer.py +++ b/sdk/python/pulumi_aws/alb/get_load_balancer.py @@ -27,7 +27,7 @@ class GetLoadBalancerResult: """ A collection of values returned by getLoadBalancer. """ - def __init__(__self__, access_logs=None, arn=None, arn_suffix=None, client_keep_alive=None, connection_logs=None, customer_owned_ipv4_pool=None, desync_mitigation_mode=None, dns_name=None, dns_record_client_routing_policy=None, drop_invalid_header_fields=None, enable_cross_zone_load_balancing=None, enable_deletion_protection=None, enable_http2=None, enable_tls_version_and_cipher_suite_headers=None, enable_waf_fail_open=None, enable_xff_client_port=None, enforce_security_group_inbound_rules_on_private_link_traffic=None, id=None, idle_timeout=None, internal=None, ip_address_type=None, load_balancer_type=None, name=None, preserve_host_header=None, security_groups=None, subnet_mappings=None, subnets=None, tags=None, vpc_id=None, xff_header_processing_mode=None, zone_id=None): + def __init__(__self__, access_logs=None, arn=None, arn_suffix=None, client_keep_alive=None, connection_logs=None, customer_owned_ipv4_pool=None, desync_mitigation_mode=None, dns_name=None, dns_record_client_routing_policy=None, drop_invalid_header_fields=None, enable_cross_zone_load_balancing=None, enable_deletion_protection=None, enable_http2=None, enable_tls_version_and_cipher_suite_headers=None, enable_waf_fail_open=None, enable_xff_client_port=None, enable_zonal_shift=None, enforce_security_group_inbound_rules_on_private_link_traffic=None, id=None, idle_timeout=None, internal=None, ip_address_type=None, load_balancer_type=None, name=None, preserve_host_header=None, security_groups=None, subnet_mappings=None, subnets=None, tags=None, vpc_id=None, xff_header_processing_mode=None, zone_id=None): if access_logs and not isinstance(access_logs, dict): raise TypeError("Expected argument 'access_logs' to be a dict") pulumi.set(__self__, "access_logs", access_logs) @@ -76,6 +76,9 @@ def __init__(__self__, access_logs=None, arn=None, arn_suffix=None, client_keep_ if enable_xff_client_port and not isinstance(enable_xff_client_port, bool): raise TypeError("Expected argument 'enable_xff_client_port' to be a bool") pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) + if enable_zonal_shift and not isinstance(enable_zonal_shift, bool): + raise TypeError("Expected argument 'enable_zonal_shift' to be a bool") + pulumi.set(__self__, "enable_zonal_shift", enable_zonal_shift) if enforce_security_group_inbound_rules_on_private_link_traffic and not isinstance(enforce_security_group_inbound_rules_on_private_link_traffic, str): raise TypeError("Expected argument 'enforce_security_group_inbound_rules_on_private_link_traffic' to be a str") pulumi.set(__self__, "enforce_security_group_inbound_rules_on_private_link_traffic", enforce_security_group_inbound_rules_on_private_link_traffic) @@ -202,6 +205,11 @@ def enable_waf_fail_open(self) -> bool: def enable_xff_client_port(self) -> bool: return pulumi.get(self, "enable_xff_client_port") + @property + @pulumi.getter(name="enableZonalShift") + def enable_zonal_shift(self) -> bool: + return pulumi.get(self, "enable_zonal_shift") + @property @pulumi.getter(name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic") def enforce_security_group_inbound_rules_on_private_link_traffic(self) -> str: @@ -303,6 +311,7 @@ def __await__(self): enable_tls_version_and_cipher_suite_headers=self.enable_tls_version_and_cipher_suite_headers, enable_waf_fail_open=self.enable_waf_fail_open, enable_xff_client_port=self.enable_xff_client_port, + enable_zonal_shift=self.enable_zonal_shift, enforce_security_group_inbound_rules_on_private_link_traffic=self.enforce_security_group_inbound_rules_on_private_link_traffic, id=self.id, idle_timeout=self.idle_timeout, @@ -381,6 +390,7 @@ def get_load_balancer(arn: Optional[str] = None, enable_tls_version_and_cipher_suite_headers=pulumi.get(__ret__, 'enable_tls_version_and_cipher_suite_headers'), enable_waf_fail_open=pulumi.get(__ret__, 'enable_waf_fail_open'), enable_xff_client_port=pulumi.get(__ret__, 'enable_xff_client_port'), + enable_zonal_shift=pulumi.get(__ret__, 'enable_zonal_shift'), enforce_security_group_inbound_rules_on_private_link_traffic=pulumi.get(__ret__, 'enforce_security_group_inbound_rules_on_private_link_traffic'), id=pulumi.get(__ret__, 'id'), idle_timeout=pulumi.get(__ret__, 'idle_timeout'), @@ -456,6 +466,7 @@ def get_load_balancer_output(arn: Optional[pulumi.Input[Optional[str]]] = None, enable_tls_version_and_cipher_suite_headers=pulumi.get(__response__, 'enable_tls_version_and_cipher_suite_headers'), enable_waf_fail_open=pulumi.get(__response__, 'enable_waf_fail_open'), enable_xff_client_port=pulumi.get(__response__, 'enable_xff_client_port'), + enable_zonal_shift=pulumi.get(__response__, 'enable_zonal_shift'), enforce_security_group_inbound_rules_on_private_link_traffic=pulumi.get(__response__, 'enforce_security_group_inbound_rules_on_private_link_traffic'), id=pulumi.get(__response__, 'id'), idle_timeout=pulumi.get(__response__, 'idle_timeout'), diff --git a/sdk/python/pulumi_aws/alb/listener.py b/sdk/python/pulumi_aws/alb/listener.py index 9cb9d63d9cb..61dbe3596c5 100644 --- a/sdk/python/pulumi_aws/alb/listener.py +++ b/sdk/python/pulumi_aws/alb/listener.py @@ -29,7 +29,8 @@ def __init__(__self__, *, port: Optional[pulumi.Input[int]] = None, protocol: Optional[pulumi.Input[str]] = None, ssl_policy: Optional[pulumi.Input[str]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tcp_idle_timeout_seconds: Optional[pulumi.Input[int]] = None): """ The set of arguments for constructing a Listener resource. :param pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionArgs']]] default_actions: Configuration block for default actions. See below. @@ -43,6 +44,7 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[int] tcp_idle_timeout_seconds: TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. """ pulumi.set(__self__, "default_actions", default_actions) pulumi.set(__self__, "load_balancer_arn", load_balancer_arn) @@ -60,6 +62,8 @@ def __init__(__self__, *, pulumi.set(__self__, "ssl_policy", ssl_policy) if tags is not None: pulumi.set(__self__, "tags", tags) + if tcp_idle_timeout_seconds is not None: + pulumi.set(__self__, "tcp_idle_timeout_seconds", tcp_idle_timeout_seconds) @property @pulumi.getter(name="defaultActions") @@ -171,6 +175,18 @@ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags", value) + @property + @pulumi.getter(name="tcpIdleTimeoutSeconds") + def tcp_idle_timeout_seconds(self) -> Optional[pulumi.Input[int]]: + """ + TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + """ + return pulumi.get(self, "tcp_idle_timeout_seconds") + + @tcp_idle_timeout_seconds.setter + def tcp_idle_timeout_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "tcp_idle_timeout_seconds", value) + @pulumi.input_type class _ListenerState: @@ -185,7 +201,8 @@ def __init__(__self__, *, protocol: Optional[pulumi.Input[str]] = None, ssl_policy: 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): + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tcp_idle_timeout_seconds: Optional[pulumi.Input[int]] = None): """ Input properties used for looking up and filtering Listener resources. :param pulumi.Input[str] alpn_policy: Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if `protocol` is `TLS`. Valid values are `HTTP1Only`, `HTTP2Only`, `HTTP2Optional`, `HTTP2Preferred`, and `None`. @@ -201,6 +218,7 @@ def __init__(__self__, *, :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[int] tcp_idle_timeout_seconds: TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. """ if alpn_policy is not None: pulumi.set(__self__, "alpn_policy", alpn_policy) @@ -227,6 +245,8 @@ def __init__(__self__, *, 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 tcp_idle_timeout_seconds is not None: + pulumi.set(__self__, "tcp_idle_timeout_seconds", tcp_idle_timeout_seconds) @property @pulumi.getter(name="alpnPolicy") @@ -363,6 +383,18 @@ def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags_all", value) + @property + @pulumi.getter(name="tcpIdleTimeoutSeconds") + def tcp_idle_timeout_seconds(self) -> Optional[pulumi.Input[int]]: + """ + TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + """ + return pulumi.get(self, "tcp_idle_timeout_seconds") + + @tcp_idle_timeout_seconds.setter + def tcp_idle_timeout_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "tcp_idle_timeout_seconds", value) + class Listener(pulumi.CustomResource): @overload @@ -378,6 +410,7 @@ def __init__(__self__, protocol: Optional[pulumi.Input[str]] = None, ssl_policy: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tcp_idle_timeout_seconds: Optional[pulumi.Input[int]] = None, __props__=None): """ Provides a Load Balancer Listener resource. @@ -599,6 +632,7 @@ def __init__(__self__, :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[int] tcp_idle_timeout_seconds: TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. """ ... @overload @@ -837,6 +871,7 @@ def _internal_init(__self__, protocol: Optional[pulumi.Input[str]] = None, ssl_policy: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tcp_idle_timeout_seconds: Optional[pulumi.Input[int]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -859,6 +894,7 @@ def _internal_init(__self__, __props__.__dict__["protocol"] = protocol __props__.__dict__["ssl_policy"] = ssl_policy __props__.__dict__["tags"] = tags + __props__.__dict__["tcp_idle_timeout_seconds"] = tcp_idle_timeout_seconds __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="aws:applicationloadbalancing/listener:Listener")]) @@ -883,7 +919,8 @@ def get(resource_name: str, protocol: Optional[pulumi.Input[str]] = None, ssl_policy: 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) -> 'Listener': + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tcp_idle_timeout_seconds: Optional[pulumi.Input[int]] = None) -> 'Listener': """ Get an existing Listener resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -904,6 +941,7 @@ def get(resource_name: str, :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[int] tcp_idle_timeout_seconds: TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -920,6 +958,7 @@ def get(resource_name: str, __props__.__dict__["ssl_policy"] = ssl_policy __props__.__dict__["tags"] = tags __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["tcp_idle_timeout_seconds"] = tcp_idle_timeout_seconds return Listener(resource_name, opts=opts, __props__=__props__) @property @@ -1013,3 +1052,11 @@ def tags_all(self) -> pulumi.Output[Mapping[str, str]]: """ return pulumi.get(self, "tags_all") + @property + @pulumi.getter(name="tcpIdleTimeoutSeconds") + def tcp_idle_timeout_seconds(self) -> pulumi.Output[Optional[int]]: + """ + TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + """ + return pulumi.get(self, "tcp_idle_timeout_seconds") + diff --git a/sdk/python/pulumi_aws/alb/load_balancer.py b/sdk/python/pulumi_aws/alb/load_balancer.py index 81c68421fd2..5ac12b36452 100644 --- a/sdk/python/pulumi_aws/alb/load_balancer.py +++ b/sdk/python/pulumi_aws/alb/load_balancer.py @@ -34,6 +34,7 @@ def __init__(__self__, *, enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + enable_zonal_shift: Optional[pulumi.Input[bool]] = None, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, idle_timeout: Optional[pulumi.Input[int]] = None, internal: Optional[pulumi.Input[bool]] = None, @@ -62,6 +63,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_tls_version_and_cipher_suite_headers: Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false` :param pulumi.Input[bool] enable_waf_fail_open: Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`. :param pulumi.Input[bool] enable_xff_client_port: Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. + :param pulumi.Input[bool] enable_zonal_shift: Whether zonal shift is enabled. Defaults to `false`. :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. :param pulumi.Input[int] idle_timeout: Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. :param pulumi.Input[bool] internal: If true, the LB will be internal. Defaults to `false`. @@ -102,6 +104,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enable_waf_fail_open", enable_waf_fail_open) if enable_xff_client_port is not None: pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) + if enable_zonal_shift is not None: + pulumi.set(__self__, "enable_zonal_shift", enable_zonal_shift) if enforce_security_group_inbound_rules_on_private_link_traffic is not None: pulumi.set(__self__, "enforce_security_group_inbound_rules_on_private_link_traffic", enforce_security_group_inbound_rules_on_private_link_traffic) if idle_timeout is not None: @@ -285,6 +289,18 @@ def enable_xff_client_port(self) -> Optional[pulumi.Input[bool]]: def enable_xff_client_port(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enable_xff_client_port", value) + @property + @pulumi.getter(name="enableZonalShift") + def enable_zonal_shift(self) -> Optional[pulumi.Input[bool]]: + """ + Whether zonal shift is enabled. Defaults to `false`. + """ + return pulumi.get(self, "enable_zonal_shift") + + @enable_zonal_shift.setter + def enable_zonal_shift(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_zonal_shift", value) + @property @pulumi.getter(name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic") def enforce_security_group_inbound_rules_on_private_link_traffic(self) -> Optional[pulumi.Input[str]]: @@ -461,6 +477,7 @@ def __init__(__self__, *, enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + enable_zonal_shift: Optional[pulumi.Input[bool]] = None, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, idle_timeout: Optional[pulumi.Input[int]] = None, internal: Optional[pulumi.Input[bool]] = None, @@ -495,6 +512,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_tls_version_and_cipher_suite_headers: Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false` :param pulumi.Input[bool] enable_waf_fail_open: Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`. :param pulumi.Input[bool] enable_xff_client_port: Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. + :param pulumi.Input[bool] enable_zonal_shift: Whether zonal shift is enabled. Defaults to `false`. :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. :param pulumi.Input[int] idle_timeout: Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. :param pulumi.Input[bool] internal: If true, the LB will be internal. Defaults to `false`. @@ -543,6 +561,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enable_waf_fail_open", enable_waf_fail_open) if enable_xff_client_port is not None: pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) + if enable_zonal_shift is not None: + pulumi.set(__self__, "enable_zonal_shift", enable_zonal_shift) if enforce_security_group_inbound_rules_on_private_link_traffic is not None: pulumi.set(__self__, "enforce_security_group_inbound_rules_on_private_link_traffic", enforce_security_group_inbound_rules_on_private_link_traffic) if idle_timeout is not None: @@ -771,6 +791,18 @@ def enable_xff_client_port(self) -> Optional[pulumi.Input[bool]]: def enable_xff_client_port(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enable_xff_client_port", value) + @property + @pulumi.getter(name="enableZonalShift") + def enable_zonal_shift(self) -> Optional[pulumi.Input[bool]]: + """ + Whether zonal shift is enabled. Defaults to `false`. + """ + return pulumi.get(self, "enable_zonal_shift") + + @enable_zonal_shift.setter + def enable_zonal_shift(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_zonal_shift", value) + @property @pulumi.getter(name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic") def enforce_security_group_inbound_rules_on_private_link_traffic(self) -> Optional[pulumi.Input[str]]: @@ -980,6 +1012,7 @@ def __init__(__self__, enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + enable_zonal_shift: Optional[pulumi.Input[bool]] = None, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, idle_timeout: Optional[pulumi.Input[int]] = None, internal: Optional[pulumi.Input[bool]] = None, @@ -1106,6 +1139,7 @@ def __init__(__self__, :param pulumi.Input[bool] enable_tls_version_and_cipher_suite_headers: Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false` :param pulumi.Input[bool] enable_waf_fail_open: Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`. :param pulumi.Input[bool] enable_xff_client_port: Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. + :param pulumi.Input[bool] enable_zonal_shift: Whether zonal shift is enabled. Defaults to `false`. :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. :param pulumi.Input[int] idle_timeout: Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. :param pulumi.Input[bool] internal: If true, the LB will be internal. Defaults to `false`. @@ -1251,6 +1285,7 @@ def _internal_init(__self__, enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + enable_zonal_shift: Optional[pulumi.Input[bool]] = None, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, idle_timeout: Optional[pulumi.Input[int]] = None, internal: Optional[pulumi.Input[bool]] = None, @@ -1286,6 +1321,7 @@ def _internal_init(__self__, __props__.__dict__["enable_tls_version_and_cipher_suite_headers"] = enable_tls_version_and_cipher_suite_headers __props__.__dict__["enable_waf_fail_open"] = enable_waf_fail_open __props__.__dict__["enable_xff_client_port"] = enable_xff_client_port + __props__.__dict__["enable_zonal_shift"] = enable_zonal_shift __props__.__dict__["enforce_security_group_inbound_rules_on_private_link_traffic"] = enforce_security_group_inbound_rules_on_private_link_traffic __props__.__dict__["idle_timeout"] = idle_timeout __props__.__dict__["internal"] = internal @@ -1333,6 +1369,7 @@ def get(resource_name: str, enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + enable_zonal_shift: Optional[pulumi.Input[bool]] = None, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, idle_timeout: Optional[pulumi.Input[int]] = None, internal: Optional[pulumi.Input[bool]] = None, @@ -1372,6 +1409,7 @@ def get(resource_name: str, :param pulumi.Input[bool] enable_tls_version_and_cipher_suite_headers: Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false` :param pulumi.Input[bool] enable_waf_fail_open: Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`. :param pulumi.Input[bool] enable_xff_client_port: Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. + :param pulumi.Input[bool] enable_zonal_shift: Whether zonal shift is enabled. Defaults to `false`. :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. :param pulumi.Input[int] idle_timeout: Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. :param pulumi.Input[bool] internal: If true, the LB will be internal. Defaults to `false`. @@ -1408,6 +1446,7 @@ def get(resource_name: str, __props__.__dict__["enable_tls_version_and_cipher_suite_headers"] = enable_tls_version_and_cipher_suite_headers __props__.__dict__["enable_waf_fail_open"] = enable_waf_fail_open __props__.__dict__["enable_xff_client_port"] = enable_xff_client_port + __props__.__dict__["enable_zonal_shift"] = enable_zonal_shift __props__.__dict__["enforce_security_group_inbound_rules_on_private_link_traffic"] = enforce_security_group_inbound_rules_on_private_link_traffic __props__.__dict__["idle_timeout"] = idle_timeout __props__.__dict__["internal"] = internal @@ -1554,6 +1593,14 @@ def enable_xff_client_port(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "enable_xff_client_port") + @property + @pulumi.getter(name="enableZonalShift") + def enable_zonal_shift(self) -> pulumi.Output[Optional[bool]]: + """ + Whether zonal shift is enabled. Defaults to `false`. + """ + return pulumi.get(self, "enable_zonal_shift") + @property @pulumi.getter(name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic") def enforce_security_group_inbound_rules_on_private_link_traffic(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/codedeploy/_inputs.py b/sdk/python/pulumi_aws/codedeploy/_inputs.py index 169e6f966d7..0770e61a4a6 100644 --- a/sdk/python/pulumi_aws/codedeploy/_inputs.py +++ b/sdk/python/pulumi_aws/codedeploy/_inputs.py @@ -23,6 +23,10 @@ 'DeploymentConfigTrafficRoutingConfigTimeBasedCanaryArgsDict', 'DeploymentConfigTrafficRoutingConfigTimeBasedLinearArgs', 'DeploymentConfigTrafficRoutingConfigTimeBasedLinearArgsDict', + 'DeploymentConfigZonalConfigArgs', + 'DeploymentConfigZonalConfigArgsDict', + 'DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs', + 'DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgsDict', 'DeploymentGroupAlarmConfigurationArgs', 'DeploymentGroupAlarmConfigurationArgsDict', 'DeploymentGroupAutoRollbackConfigurationArgs', @@ -304,6 +308,130 @@ def percentage(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "percentage", value) +if not MYPY: + class DeploymentConfigZonalConfigArgsDict(TypedDict): + first_zone_monitor_duration_in_seconds: NotRequired[pulumi.Input[int]] + """ + The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + """ + minimum_healthy_hosts_per_zone: NotRequired[pulumi.Input['DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgsDict']] + """ + The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + """ + monitor_duration_in_seconds: NotRequired[pulumi.Input[int]] + """ + The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + """ +elif False: + DeploymentConfigZonalConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeploymentConfigZonalConfigArgs: + def __init__(__self__, *, + first_zone_monitor_duration_in_seconds: Optional[pulumi.Input[int]] = None, + minimum_healthy_hosts_per_zone: Optional[pulumi.Input['DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs']] = None, + monitor_duration_in_seconds: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] first_zone_monitor_duration_in_seconds: The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + :param pulumi.Input['DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs'] minimum_healthy_hosts_per_zone: The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + :param pulumi.Input[int] monitor_duration_in_seconds: The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + """ + if first_zone_monitor_duration_in_seconds is not None: + pulumi.set(__self__, "first_zone_monitor_duration_in_seconds", first_zone_monitor_duration_in_seconds) + if minimum_healthy_hosts_per_zone is not None: + pulumi.set(__self__, "minimum_healthy_hosts_per_zone", minimum_healthy_hosts_per_zone) + if monitor_duration_in_seconds is not None: + pulumi.set(__self__, "monitor_duration_in_seconds", monitor_duration_in_seconds) + + @property + @pulumi.getter(name="firstZoneMonitorDurationInSeconds") + def first_zone_monitor_duration_in_seconds(self) -> Optional[pulumi.Input[int]]: + """ + The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + """ + return pulumi.get(self, "first_zone_monitor_duration_in_seconds") + + @first_zone_monitor_duration_in_seconds.setter + def first_zone_monitor_duration_in_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "first_zone_monitor_duration_in_seconds", value) + + @property + @pulumi.getter(name="minimumHealthyHostsPerZone") + def minimum_healthy_hosts_per_zone(self) -> Optional[pulumi.Input['DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs']]: + """ + The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + """ + return pulumi.get(self, "minimum_healthy_hosts_per_zone") + + @minimum_healthy_hosts_per_zone.setter + def minimum_healthy_hosts_per_zone(self, value: Optional[pulumi.Input['DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs']]): + pulumi.set(self, "minimum_healthy_hosts_per_zone", value) + + @property + @pulumi.getter(name="monitorDurationInSeconds") + def monitor_duration_in_seconds(self) -> Optional[pulumi.Input[int]]: + """ + The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + """ + return pulumi.get(self, "monitor_duration_in_seconds") + + @monitor_duration_in_seconds.setter + def monitor_duration_in_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "monitor_duration_in_seconds", value) + + +if not MYPY: + class DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgsDict(TypedDict): + type: NotRequired[pulumi.Input[str]] + """ + The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + """ + value: NotRequired[pulumi.Input[int]] + """ + The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + """ +elif False: + DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs: + def __init__(__self__, *, + type: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] type: The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + :param pulumi.Input[int] value: The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + """ + if type is not None: + pulumi.set(__self__, "type", type) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + """ + The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[int]]: + """ + The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "value", value) + + if not MYPY: class DeploymentGroupAlarmConfigurationArgsDict(TypedDict): alarms: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] diff --git a/sdk/python/pulumi_aws/codedeploy/deployment_config.py b/sdk/python/pulumi_aws/codedeploy/deployment_config.py index 5f284dcbc22..71ccbad99e3 100644 --- a/sdk/python/pulumi_aws/codedeploy/deployment_config.py +++ b/sdk/python/pulumi_aws/codedeploy/deployment_config.py @@ -24,13 +24,15 @@ def __init__(__self__, *, compute_platform: Optional[pulumi.Input[str]] = None, deployment_config_name: Optional[pulumi.Input[str]] = None, minimum_healthy_hosts: Optional[pulumi.Input['DeploymentConfigMinimumHealthyHostsArgs']] = None, - traffic_routing_config: Optional[pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs']] = None): + traffic_routing_config: Optional[pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs']] = None, + zonal_config: Optional[pulumi.Input['DeploymentConfigZonalConfigArgs']] = None): """ The set of arguments for constructing a DeploymentConfig resource. :param pulumi.Input[str] compute_platform: The compute platform can be `Server`, `Lambda`, or `ECS`. Default is `Server`. :param pulumi.Input[str] deployment_config_name: The name of the deployment config. :param pulumi.Input['DeploymentConfigMinimumHealthyHostsArgs'] minimum_healthy_hosts: A minimum_healthy_hosts block. Required for `Server` compute platform. Minimum Healthy Hosts are documented below. :param pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs'] traffic_routing_config: A traffic_routing_config block. Traffic Routing Config is documented below. + :param pulumi.Input['DeploymentConfigZonalConfigArgs'] zonal_config: A zonal_config block. Zonal Config is documented below. """ if compute_platform is not None: pulumi.set(__self__, "compute_platform", compute_platform) @@ -40,6 +42,8 @@ def __init__(__self__, *, pulumi.set(__self__, "minimum_healthy_hosts", minimum_healthy_hosts) if traffic_routing_config is not None: pulumi.set(__self__, "traffic_routing_config", traffic_routing_config) + if zonal_config is not None: + pulumi.set(__self__, "zonal_config", zonal_config) @property @pulumi.getter(name="computePlatform") @@ -89,6 +93,18 @@ def traffic_routing_config(self) -> Optional[pulumi.Input['DeploymentConfigTraff def traffic_routing_config(self, value: Optional[pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs']]): pulumi.set(self, "traffic_routing_config", value) + @property + @pulumi.getter(name="zonalConfig") + def zonal_config(self) -> Optional[pulumi.Input['DeploymentConfigZonalConfigArgs']]: + """ + A zonal_config block. Zonal Config is documented below. + """ + return pulumi.get(self, "zonal_config") + + @zonal_config.setter + def zonal_config(self, value: Optional[pulumi.Input['DeploymentConfigZonalConfigArgs']]): + pulumi.set(self, "zonal_config", value) + @pulumi.input_type class _DeploymentConfigState: @@ -98,7 +114,8 @@ def __init__(__self__, *, deployment_config_id: Optional[pulumi.Input[str]] = None, deployment_config_name: Optional[pulumi.Input[str]] = None, minimum_healthy_hosts: Optional[pulumi.Input['DeploymentConfigMinimumHealthyHostsArgs']] = None, - traffic_routing_config: Optional[pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs']] = None): + traffic_routing_config: Optional[pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs']] = None, + zonal_config: Optional[pulumi.Input['DeploymentConfigZonalConfigArgs']] = None): """ Input properties used for looking up and filtering DeploymentConfig resources. :param pulumi.Input[str] arn: The ARN of the deployment config. @@ -107,6 +124,7 @@ def __init__(__self__, *, :param pulumi.Input[str] deployment_config_name: The name of the deployment config. :param pulumi.Input['DeploymentConfigMinimumHealthyHostsArgs'] minimum_healthy_hosts: A minimum_healthy_hosts block. Required for `Server` compute platform. Minimum Healthy Hosts are documented below. :param pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs'] traffic_routing_config: A traffic_routing_config block. Traffic Routing Config is documented below. + :param pulumi.Input['DeploymentConfigZonalConfigArgs'] zonal_config: A zonal_config block. Zonal Config is documented below. """ if arn is not None: pulumi.set(__self__, "arn", arn) @@ -120,6 +138,8 @@ def __init__(__self__, *, pulumi.set(__self__, "minimum_healthy_hosts", minimum_healthy_hosts) if traffic_routing_config is not None: pulumi.set(__self__, "traffic_routing_config", traffic_routing_config) + if zonal_config is not None: + pulumi.set(__self__, "zonal_config", zonal_config) @property @pulumi.getter @@ -193,6 +213,18 @@ def traffic_routing_config(self) -> Optional[pulumi.Input['DeploymentConfigTraff def traffic_routing_config(self, value: Optional[pulumi.Input['DeploymentConfigTrafficRoutingConfigArgs']]): pulumi.set(self, "traffic_routing_config", value) + @property + @pulumi.getter(name="zonalConfig") + def zonal_config(self) -> Optional[pulumi.Input['DeploymentConfigZonalConfigArgs']]: + """ + A zonal_config block. Zonal Config is documented below. + """ + return pulumi.get(self, "zonal_config") + + @zonal_config.setter + def zonal_config(self, value: Optional[pulumi.Input['DeploymentConfigZonalConfigArgs']]): + pulumi.set(self, "zonal_config", value) + class DeploymentConfig(pulumi.CustomResource): @overload @@ -203,6 +235,7 @@ def __init__(__self__, deployment_config_name: Optional[pulumi.Input[str]] = None, minimum_healthy_hosts: Optional[pulumi.Input[Union['DeploymentConfigMinimumHealthyHostsArgs', 'DeploymentConfigMinimumHealthyHostsArgsDict']]] = None, traffic_routing_config: Optional[pulumi.Input[Union['DeploymentConfigTrafficRoutingConfigArgs', 'DeploymentConfigTrafficRoutingConfigArgsDict']]] = None, + zonal_config: Optional[pulumi.Input[Union['DeploymentConfigZonalConfigArgs', 'DeploymentConfigZonalConfigArgsDict']]] = None, __props__=None): """ Provides a CodeDeploy deployment config for an application @@ -291,6 +324,7 @@ def __init__(__self__, :param pulumi.Input[str] deployment_config_name: The name of the deployment config. :param pulumi.Input[Union['DeploymentConfigMinimumHealthyHostsArgs', 'DeploymentConfigMinimumHealthyHostsArgsDict']] minimum_healthy_hosts: A minimum_healthy_hosts block. Required for `Server` compute platform. Minimum Healthy Hosts are documented below. :param pulumi.Input[Union['DeploymentConfigTrafficRoutingConfigArgs', 'DeploymentConfigTrafficRoutingConfigArgsDict']] traffic_routing_config: A traffic_routing_config block. Traffic Routing Config is documented below. + :param pulumi.Input[Union['DeploymentConfigZonalConfigArgs', 'DeploymentConfigZonalConfigArgsDict']] zonal_config: A zonal_config block. Zonal Config is documented below. """ ... @overload @@ -398,6 +432,7 @@ def _internal_init(__self__, deployment_config_name: Optional[pulumi.Input[str]] = None, minimum_healthy_hosts: Optional[pulumi.Input[Union['DeploymentConfigMinimumHealthyHostsArgs', 'DeploymentConfigMinimumHealthyHostsArgsDict']]] = None, traffic_routing_config: Optional[pulumi.Input[Union['DeploymentConfigTrafficRoutingConfigArgs', 'DeploymentConfigTrafficRoutingConfigArgsDict']]] = None, + zonal_config: Optional[pulumi.Input[Union['DeploymentConfigZonalConfigArgs', 'DeploymentConfigZonalConfigArgsDict']]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -411,6 +446,7 @@ def _internal_init(__self__, __props__.__dict__["deployment_config_name"] = deployment_config_name __props__.__dict__["minimum_healthy_hosts"] = minimum_healthy_hosts __props__.__dict__["traffic_routing_config"] = traffic_routing_config + __props__.__dict__["zonal_config"] = zonal_config __props__.__dict__["arn"] = None __props__.__dict__["deployment_config_id"] = None super(DeploymentConfig, __self__).__init__( @@ -428,7 +464,8 @@ def get(resource_name: str, deployment_config_id: Optional[pulumi.Input[str]] = None, deployment_config_name: Optional[pulumi.Input[str]] = None, minimum_healthy_hosts: Optional[pulumi.Input[Union['DeploymentConfigMinimumHealthyHostsArgs', 'DeploymentConfigMinimumHealthyHostsArgsDict']]] = None, - traffic_routing_config: Optional[pulumi.Input[Union['DeploymentConfigTrafficRoutingConfigArgs', 'DeploymentConfigTrafficRoutingConfigArgsDict']]] = None) -> 'DeploymentConfig': + traffic_routing_config: Optional[pulumi.Input[Union['DeploymentConfigTrafficRoutingConfigArgs', 'DeploymentConfigTrafficRoutingConfigArgsDict']]] = None, + zonal_config: Optional[pulumi.Input[Union['DeploymentConfigZonalConfigArgs', 'DeploymentConfigZonalConfigArgsDict']]] = None) -> 'DeploymentConfig': """ Get an existing DeploymentConfig resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -442,6 +479,7 @@ def get(resource_name: str, :param pulumi.Input[str] deployment_config_name: The name of the deployment config. :param pulumi.Input[Union['DeploymentConfigMinimumHealthyHostsArgs', 'DeploymentConfigMinimumHealthyHostsArgsDict']] minimum_healthy_hosts: A minimum_healthy_hosts block. Required for `Server` compute platform. Minimum Healthy Hosts are documented below. :param pulumi.Input[Union['DeploymentConfigTrafficRoutingConfigArgs', 'DeploymentConfigTrafficRoutingConfigArgsDict']] traffic_routing_config: A traffic_routing_config block. Traffic Routing Config is documented below. + :param pulumi.Input[Union['DeploymentConfigZonalConfigArgs', 'DeploymentConfigZonalConfigArgsDict']] zonal_config: A zonal_config block. Zonal Config is documented below. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -453,6 +491,7 @@ def get(resource_name: str, __props__.__dict__["deployment_config_name"] = deployment_config_name __props__.__dict__["minimum_healthy_hosts"] = minimum_healthy_hosts __props__.__dict__["traffic_routing_config"] = traffic_routing_config + __props__.__dict__["zonal_config"] = zonal_config return DeploymentConfig(resource_name, opts=opts, __props__=__props__) @property @@ -503,3 +542,11 @@ def traffic_routing_config(self) -> pulumi.Output[Optional['outputs.DeploymentCo """ return pulumi.get(self, "traffic_routing_config") + @property + @pulumi.getter(name="zonalConfig") + def zonal_config(self) -> pulumi.Output[Optional['outputs.DeploymentConfigZonalConfig']]: + """ + A zonal_config block. Zonal Config is documented below. + """ + return pulumi.get(self, "zonal_config") + diff --git a/sdk/python/pulumi_aws/codedeploy/outputs.py b/sdk/python/pulumi_aws/codedeploy/outputs.py index cd2259cd1e5..84582eb0c20 100644 --- a/sdk/python/pulumi_aws/codedeploy/outputs.py +++ b/sdk/python/pulumi_aws/codedeploy/outputs.py @@ -20,6 +20,8 @@ 'DeploymentConfigTrafficRoutingConfig', 'DeploymentConfigTrafficRoutingConfigTimeBasedCanary', 'DeploymentConfigTrafficRoutingConfigTimeBasedLinear', + 'DeploymentConfigZonalConfig', + 'DeploymentConfigZonalConfigMinimumHealthyHostsPerZone', 'DeploymentGroupAlarmConfiguration', 'DeploymentGroupAutoRollbackConfiguration', 'DeploymentGroupBlueGreenDeploymentConfig', @@ -203,6 +205,101 @@ def percentage(self) -> Optional[int]: return pulumi.get(self, "percentage") +@pulumi.output_type +class DeploymentConfigZonalConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "firstZoneMonitorDurationInSeconds": + suggest = "first_zone_monitor_duration_in_seconds" + elif key == "minimumHealthyHostsPerZone": + suggest = "minimum_healthy_hosts_per_zone" + elif key == "monitorDurationInSeconds": + suggest = "monitor_duration_in_seconds" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DeploymentConfigZonalConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DeploymentConfigZonalConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DeploymentConfigZonalConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + first_zone_monitor_duration_in_seconds: Optional[int] = None, + minimum_healthy_hosts_per_zone: Optional['outputs.DeploymentConfigZonalConfigMinimumHealthyHostsPerZone'] = None, + monitor_duration_in_seconds: Optional[int] = None): + """ + :param int first_zone_monitor_duration_in_seconds: The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + :param 'DeploymentConfigZonalConfigMinimumHealthyHostsPerZoneArgs' minimum_healthy_hosts_per_zone: The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + :param int monitor_duration_in_seconds: The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + """ + if first_zone_monitor_duration_in_seconds is not None: + pulumi.set(__self__, "first_zone_monitor_duration_in_seconds", first_zone_monitor_duration_in_seconds) + if minimum_healthy_hosts_per_zone is not None: + pulumi.set(__self__, "minimum_healthy_hosts_per_zone", minimum_healthy_hosts_per_zone) + if monitor_duration_in_seconds is not None: + pulumi.set(__self__, "monitor_duration_in_seconds", monitor_duration_in_seconds) + + @property + @pulumi.getter(name="firstZoneMonitorDurationInSeconds") + def first_zone_monitor_duration_in_seconds(self) -> Optional[int]: + """ + The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. If you don't specify a value for `first_zone_monitor_duration_in_seconds`, then CodeDeploy uses the `monitor_duration_in_seconds` value for the first Availability Zone. + """ + return pulumi.get(self, "first_zone_monitor_duration_in_seconds") + + @property + @pulumi.getter(name="minimumHealthyHostsPerZone") + def minimum_healthy_hosts_per_zone(self) -> Optional['outputs.DeploymentConfigZonalConfigMinimumHealthyHostsPerZone']: + """ + The number or percentage of instances that must remain available per Availability Zone during a deployment. If you don't specify a value under `minimum_healthy_hosts_per_zone`, then CodeDeploy uses a default value of 0 percent. This block is more documented below. + """ + return pulumi.get(self, "minimum_healthy_hosts_per_zone") + + @property + @pulumi.getter(name="monitorDurationInSeconds") + def monitor_duration_in_seconds(self) -> Optional[int]: + """ + The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. If you don't specify a `monitor_duration_in_seconds`, CodeDeploy starts deploying to the next Availability Zone immediately. + """ + return pulumi.get(self, "monitor_duration_in_seconds") + + +@pulumi.output_type +class DeploymentConfigZonalConfigMinimumHealthyHostsPerZone(dict): + def __init__(__self__, *, + type: Optional[str] = None, + value: Optional[int] = None): + """ + :param str type: The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + :param int value: The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + """ + if type is not None: + pulumi.set(__self__, "type", type) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def type(self) -> Optional[str]: + """ + The type can either be `FLEET_PERCENT` or `HOST_COUNT`. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter + def value(self) -> Optional[int]: + """ + The value when the type is `FLEET_PERCENT` represents the minimum number of healthy instances as a percentage of the total number of instances in the Availability Zone during a deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances. When the type is `HOST_COUNT`, the value represents the minimum number of healthy instances in the Availability Zone as an absolute value. + """ + return pulumi.get(self, "value") + + @pulumi.output_type class DeploymentGroupAlarmConfiguration(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/costexplorer/_inputs.py b/sdk/python/pulumi_aws/costexplorer/_inputs.py index d2ee563052c..9647610ee31 100644 --- a/sdk/python/pulumi_aws/costexplorer/_inputs.py +++ b/sdk/python/pulumi_aws/costexplorer/_inputs.py @@ -267,11 +267,11 @@ class AnomalySubscriptionThresholdExpressionArgsDict(TypedDict): """ not_: NotRequired[pulumi.Input['AnomalySubscriptionThresholdExpressionNotArgsDict']] """ - Return results that match both Dimension object. + Return results that do not match the Dimension object. """ ors: NotRequired[pulumi.Input[Sequence[pulumi.Input['AnomalySubscriptionThresholdExpressionOrArgsDict']]]] """ - Return results that match both Dimension object. + Return results that match either Dimension object. """ tags: NotRequired[pulumi.Input['AnomalySubscriptionThresholdExpressionTagsArgsDict']] """ @@ -293,8 +293,8 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['AnomalySubscriptionThresholdExpressionAndArgs']]] ands: Return results that match both Dimension objects. :param pulumi.Input['AnomalySubscriptionThresholdExpressionCostCategoryArgs'] cost_category: Configuration block for the filter that's based on values. See Cost Category below. :param pulumi.Input['AnomalySubscriptionThresholdExpressionDimensionArgs'] dimension: Configuration block for the specific Dimension to use for. - :param pulumi.Input['AnomalySubscriptionThresholdExpressionNotArgs'] not_: Return results that match both Dimension object. - :param pulumi.Input[Sequence[pulumi.Input['AnomalySubscriptionThresholdExpressionOrArgs']]] ors: Return results that match both Dimension object. + :param pulumi.Input['AnomalySubscriptionThresholdExpressionNotArgs'] not_: Return results that do not match the Dimension object. + :param pulumi.Input[Sequence[pulumi.Input['AnomalySubscriptionThresholdExpressionOrArgs']]] ors: Return results that match either Dimension object. :param pulumi.Input['AnomalySubscriptionThresholdExpressionTagsArgs'] tags: Configuration block for the specific Tag to use for. See Tags below. """ if ands is not None: @@ -350,7 +350,7 @@ def dimension(self, value: Optional[pulumi.Input['AnomalySubscriptionThresholdEx @pulumi.getter(name="not") def not_(self) -> Optional[pulumi.Input['AnomalySubscriptionThresholdExpressionNotArgs']]: """ - Return results that match both Dimension object. + Return results that do not match the Dimension object. """ return pulumi.get(self, "not_") @@ -362,7 +362,7 @@ def not_(self, value: Optional[pulumi.Input['AnomalySubscriptionThresholdExpress @pulumi.getter def ors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AnomalySubscriptionThresholdExpressionOrArgs']]]]: """ - Return results that match both Dimension object. + Return results that match either Dimension object. """ return pulumi.get(self, "ors") diff --git a/sdk/python/pulumi_aws/costexplorer/outputs.py b/sdk/python/pulumi_aws/costexplorer/outputs.py index fd75bd80099..8a9cfbc5c8b 100644 --- a/sdk/python/pulumi_aws/costexplorer/outputs.py +++ b/sdk/python/pulumi_aws/costexplorer/outputs.py @@ -226,8 +226,8 @@ def __init__(__self__, *, :param Sequence['AnomalySubscriptionThresholdExpressionAndArgs'] ands: Return results that match both Dimension objects. :param 'AnomalySubscriptionThresholdExpressionCostCategoryArgs' cost_category: Configuration block for the filter that's based on values. See Cost Category below. :param 'AnomalySubscriptionThresholdExpressionDimensionArgs' dimension: Configuration block for the specific Dimension to use for. - :param 'AnomalySubscriptionThresholdExpressionNotArgs' not_: Return results that match both Dimension object. - :param Sequence['AnomalySubscriptionThresholdExpressionOrArgs'] ors: Return results that match both Dimension object. + :param 'AnomalySubscriptionThresholdExpressionNotArgs' not_: Return results that do not match the Dimension object. + :param Sequence['AnomalySubscriptionThresholdExpressionOrArgs'] ors: Return results that match either Dimension object. :param 'AnomalySubscriptionThresholdExpressionTagsArgs' tags: Configuration block for the specific Tag to use for. See Tags below. """ if ands is not None: @@ -271,7 +271,7 @@ def dimension(self) -> Optional['outputs.AnomalySubscriptionThresholdExpressionD @pulumi.getter(name="not") def not_(self) -> Optional['outputs.AnomalySubscriptionThresholdExpressionNot']: """ - Return results that match both Dimension object. + Return results that do not match the Dimension object. """ return pulumi.get(self, "not_") @@ -279,7 +279,7 @@ def not_(self) -> Optional['outputs.AnomalySubscriptionThresholdExpressionNot']: @pulumi.getter def ors(self) -> Optional[Sequence['outputs.AnomalySubscriptionThresholdExpressionOr']]: """ - Return results that match both Dimension object. + Return results that match either Dimension object. """ return pulumi.get(self, "ors") diff --git a/sdk/python/pulumi_aws/dynamodb/kinesis_streaming_destination.py b/sdk/python/pulumi_aws/dynamodb/kinesis_streaming_destination.py index 9da60dc2b40..8be32645aa7 100644 --- a/sdk/python/pulumi_aws/dynamodb/kinesis_streaming_destination.py +++ b/sdk/python/pulumi_aws/dynamodb/kinesis_streaming_destination.py @@ -20,15 +20,18 @@ class KinesisStreamingDestinationArgs: def __init__(__self__, *, stream_arn: pulumi.Input[str], - table_name: pulumi.Input[str]): + table_name: pulumi.Input[str], + approximate_creation_date_time_precision: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a KinesisStreamingDestination resource. :param pulumi.Input[str] stream_arn: The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. - :param pulumi.Input[str] table_name: The name of the DynamoDB table. There - can only be one Kinesis streaming destination for a given DynamoDB table. + :param pulumi.Input[str] table_name: The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. + :param pulumi.Input[str] approximate_creation_date_time_precision: Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. """ pulumi.set(__self__, "stream_arn", stream_arn) pulumi.set(__self__, "table_name", table_name) + if approximate_creation_date_time_precision is not None: + pulumi.set(__self__, "approximate_creation_date_time_precision", approximate_creation_date_time_precision) @property @pulumi.getter(name="streamArn") @@ -46,8 +49,7 @@ def stream_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="tableName") def table_name(self) -> pulumi.Input[str]: """ - The name of the DynamoDB table. There - can only be one Kinesis streaming destination for a given DynamoDB table. + The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. """ return pulumi.get(self, "table_name") @@ -55,23 +57,50 @@ def table_name(self) -> pulumi.Input[str]: def table_name(self, value: pulumi.Input[str]): pulumi.set(self, "table_name", value) + @property + @pulumi.getter(name="approximateCreationDateTimePrecision") + def approximate_creation_date_time_precision(self) -> Optional[pulumi.Input[str]]: + """ + Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + """ + return pulumi.get(self, "approximate_creation_date_time_precision") + + @approximate_creation_date_time_precision.setter + def approximate_creation_date_time_precision(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "approximate_creation_date_time_precision", value) + @pulumi.input_type class _KinesisStreamingDestinationState: def __init__(__self__, *, + approximate_creation_date_time_precision: Optional[pulumi.Input[str]] = None, stream_arn: Optional[pulumi.Input[str]] = None, table_name: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering KinesisStreamingDestination resources. + :param pulumi.Input[str] approximate_creation_date_time_precision: Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. :param pulumi.Input[str] stream_arn: The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. - :param pulumi.Input[str] table_name: The name of the DynamoDB table. There - can only be one Kinesis streaming destination for a given DynamoDB table. + :param pulumi.Input[str] table_name: The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. """ + if approximate_creation_date_time_precision is not None: + pulumi.set(__self__, "approximate_creation_date_time_precision", approximate_creation_date_time_precision) if stream_arn is not None: pulumi.set(__self__, "stream_arn", stream_arn) if table_name is not None: pulumi.set(__self__, "table_name", table_name) + @property + @pulumi.getter(name="approximateCreationDateTimePrecision") + def approximate_creation_date_time_precision(self) -> Optional[pulumi.Input[str]]: + """ + Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + """ + return pulumi.get(self, "approximate_creation_date_time_precision") + + @approximate_creation_date_time_precision.setter + def approximate_creation_date_time_precision(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "approximate_creation_date_time_precision", value) + @property @pulumi.getter(name="streamArn") def stream_arn(self) -> Optional[pulumi.Input[str]]: @@ -88,8 +117,7 @@ def stream_arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="tableName") def table_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the DynamoDB table. There - can only be one Kinesis streaming destination for a given DynamoDB table. + The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. """ return pulumi.get(self, "table_name") @@ -103,6 +131,7 @@ class KinesisStreamingDestination(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + approximate_creation_date_time_precision: Optional[pulumi.Input[str]] = None, stream_arn: Optional[pulumi.Input[str]] = None, table_name: Optional[pulumi.Input[str]] = None, __props__=None): @@ -127,7 +156,8 @@ def __init__(__self__, shard_count=1) example_kinesis_streaming_destination = aws.dynamodb.KinesisStreamingDestination("example", stream_arn=example_stream.arn, - table_name=example.name) + table_name=example.name, + approximate_creation_date_time_precision="MICROSECOND") ``` ## Import @@ -140,9 +170,9 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] approximate_creation_date_time_precision: Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. :param pulumi.Input[str] stream_arn: The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. - :param pulumi.Input[str] table_name: The name of the DynamoDB table. There - can only be one Kinesis streaming destination for a given DynamoDB table. + :param pulumi.Input[str] table_name: The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. """ ... @overload @@ -171,7 +201,8 @@ def __init__(__self__, shard_count=1) example_kinesis_streaming_destination = aws.dynamodb.KinesisStreamingDestination("example", stream_arn=example_stream.arn, - table_name=example.name) + table_name=example.name, + approximate_creation_date_time_precision="MICROSECOND") ``` ## Import @@ -197,6 +228,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + approximate_creation_date_time_precision: Optional[pulumi.Input[str]] = None, stream_arn: Optional[pulumi.Input[str]] = None, table_name: Optional[pulumi.Input[str]] = None, __props__=None): @@ -208,6 +240,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = KinesisStreamingDestinationArgs.__new__(KinesisStreamingDestinationArgs) + __props__.__dict__["approximate_creation_date_time_precision"] = approximate_creation_date_time_precision if stream_arn is None and not opts.urn: raise TypeError("Missing required property 'stream_arn'") __props__.__dict__["stream_arn"] = stream_arn @@ -224,6 +257,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + approximate_creation_date_time_precision: Optional[pulumi.Input[str]] = None, stream_arn: Optional[pulumi.Input[str]] = None, table_name: Optional[pulumi.Input[str]] = None) -> 'KinesisStreamingDestination': """ @@ -233,18 +267,27 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] approximate_creation_date_time_precision: Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. :param pulumi.Input[str] stream_arn: The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. - :param pulumi.Input[str] table_name: The name of the DynamoDB table. There - can only be one Kinesis streaming destination for a given DynamoDB table. + :param pulumi.Input[str] table_name: The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) __props__ = _KinesisStreamingDestinationState.__new__(_KinesisStreamingDestinationState) + __props__.__dict__["approximate_creation_date_time_precision"] = approximate_creation_date_time_precision __props__.__dict__["stream_arn"] = stream_arn __props__.__dict__["table_name"] = table_name return KinesisStreamingDestination(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter(name="approximateCreationDateTimePrecision") + def approximate_creation_date_time_precision(self) -> pulumi.Output[str]: + """ + Toggle for the precision of Kinesis data stream timestamp. Valid values: `MILLISECOND` and `MICROSECOND`. + """ + return pulumi.get(self, "approximate_creation_date_time_precision") + @property @pulumi.getter(name="streamArn") def stream_arn(self) -> pulumi.Output[str]: @@ -257,8 +300,7 @@ def stream_arn(self) -> pulumi.Output[str]: @pulumi.getter(name="tableName") def table_name(self) -> pulumi.Output[str]: """ - The name of the DynamoDB table. There - can only be one Kinesis streaming destination for a given DynamoDB table. + The name of the DynamoDB table. There can only be one Kinesis streaming destination for a given DynamoDB table. """ return pulumi.get(self, "table_name") diff --git a/sdk/python/pulumi_aws/ec2/get_subnet.py b/sdk/python/pulumi_aws/ec2/get_subnet.py index ba6e66dbe06..822df6d8f36 100644 --- a/sdk/python/pulumi_aws/ec2/get_subnet.py +++ b/sdk/python/pulumi_aws/ec2/get_subnet.py @@ -336,7 +336,7 @@ def get_subnet(availability_zone: Optional[str] = None, config = pulumi.Config() subnet_id = config.require_object("subnetId") selected = aws.ec2.get_subnet(id=subnet_id) - subnet = aws.ec2.SecurityGroup("subnet", + subnet_security_group = aws.ec2.SecurityGroup("subnet_security_group", vpc_id=selected.vpc_id, ingress=[{ "cidr_blocks": [selected.cidr_block], @@ -439,7 +439,7 @@ def get_subnet_output(availability_zone: Optional[pulumi.Input[Optional[str]]] = config = pulumi.Config() subnet_id = config.require_object("subnetId") selected = aws.ec2.get_subnet(id=subnet_id) - subnet = aws.ec2.SecurityGroup("subnet", + subnet_security_group = aws.ec2.SecurityGroup("subnet_security_group", vpc_id=selected.vpc_id, ingress=[{ "cidr_blocks": [selected.cidr_block], diff --git a/sdk/python/pulumi_aws/elasticache/cluster.py b/sdk/python/pulumi_aws/elasticache/cluster.py index 1d1eb28cfa5..631c2ab03bd 100644 --- a/sdk/python/pulumi_aws/elasticache/cluster.py +++ b/sdk/python/pulumi_aws/elasticache/cluster.py @@ -59,7 +59,7 @@ def __init__(__self__, *, :param pulumi.Input[str] availability_zone: Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferred_availability_zones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. :param pulumi.Input[str] az_mode: Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `num_cache_nodes` must be greater than `1`. :param pulumi.Input[str] cluster_id: Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. - :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used. If not set, defaults to the latest version. See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. @@ -223,7 +223,7 @@ def cluster_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def engine(self) -> Optional[pulumi.Input[str]]: """ - Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. """ return pulumi.get(self, "engine") @@ -573,7 +573,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_address: (Memcached only) DNS name of the cache cluster without the port appended. :param pulumi.Input[str] cluster_id: Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. :param pulumi.Input[str] configuration_endpoint: (Memcached only) Configuration endpoint to allow host discovery. - :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used. If not set, defaults to the latest version. See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. @@ -802,7 +802,7 @@ def configuration_endpoint(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def engine(self) -> Optional[pulumi.Input[str]]: """ - Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. """ return pulumi.get(self, "engine") @@ -1304,7 +1304,7 @@ def __init__(__self__, :param pulumi.Input[str] availability_zone: Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferred_availability_zones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. :param pulumi.Input[str] az_mode: Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `num_cache_nodes` must be greater than `1`. :param pulumi.Input[str] cluster_id: Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. - :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used. If not set, defaults to the latest version. See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. @@ -1634,7 +1634,7 @@ def get(resource_name: str, :param pulumi.Input[str] cluster_address: (Memcached only) DNS name of the cache cluster without the port appended. :param pulumi.Input[str] cluster_id: Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. :param pulumi.Input[str] configuration_endpoint: (Memcached only) Configuration endpoint to allow host discovery. - :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used. If not set, defaults to the latest version. See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. @@ -1794,7 +1794,7 @@ def configuration_endpoint(self) -> pulumi.Output[str]: @pulumi.getter def engine(self) -> pulumi.Output[str]: """ - Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + Name of the cache engine to be used for this cache cluster. Valid values are `memcached` and `redis`. """ return pulumi.get(self, "engine") diff --git a/sdk/python/pulumi_aws/elasticache/get_reserved_cache_node_offering.py b/sdk/python/pulumi_aws/elasticache/get_reserved_cache_node_offering.py index 95f35251567..5b8e834870e 100644 --- a/sdk/python/pulumi_aws/elasticache/get_reserved_cache_node_offering.py +++ b/sdk/python/pulumi_aws/elasticache/get_reserved_cache_node_offering.py @@ -140,7 +140,7 @@ def get_reserved_cache_node_offering(cache_node_type: Optional[str] = None, For other current generation nodes (i.e. T2, M3, M4, R3, or R4) the only valid value is `Heavy Utilization`. For previous generation modes (i.e. T1, M1, M2, or C1) valid values are `Heavy Utilization`, `Medium Utilization`, and `Light Utilization`. :param str product_description: Engine type for the reserved cache node. - Valid values are `redis` and `memcached`. + Valid values are `redis`, `valkey` and `memcached`. """ __args__ = dict() __args__['cacheNodeType'] = cache_node_type @@ -189,7 +189,7 @@ def get_reserved_cache_node_offering_output(cache_node_type: Optional[pulumi.Inp For other current generation nodes (i.e. T2, M3, M4, R3, or R4) the only valid value is `Heavy Utilization`. For previous generation modes (i.e. T1, M1, M2, or C1) valid values are `Heavy Utilization`, `Medium Utilization`, and `Light Utilization`. :param str product_description: Engine type for the reserved cache node. - Valid values are `redis` and `memcached`. + Valid values are `redis`, `valkey` and `memcached`. """ __args__ = dict() __args__['cacheNodeType'] = cache_node_type diff --git a/sdk/python/pulumi_aws/elasticache/get_serverless_cache.py b/sdk/python/pulumi_aws/elasticache/get_serverless_cache.py index 57c6fc6f2c4..acc06232164 100644 --- a/sdk/python/pulumi_aws/elasticache/get_serverless_cache.py +++ b/sdk/python/pulumi_aws/elasticache/get_serverless_cache.py @@ -111,7 +111,7 @@ def create_time(self) -> str: @pulumi.getter(name="dailySnapshotTime") def daily_snapshot_time(self) -> str: """ - The daily time that snapshots will be created from the new serverless cache. Only available for engine type `"redis"`. + The daily time that snapshots will be created from the new serverless cache. Only available for engine types `"redis"` and `"valkey"`. """ return pulumi.get(self, "daily_snapshot_time") diff --git a/sdk/python/pulumi_aws/elasticache/global_replication_group.py b/sdk/python/pulumi_aws/elasticache/global_replication_group.py index aa15784b0b4..d2073c98576 100644 --- a/sdk/python/pulumi_aws/elasticache/global_replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/global_replication_group.py @@ -534,7 +534,7 @@ def __init__(__self__, num_cache_clusters=1) ``` - ### Managing Redis Engine Versions + ### Managing Redis OOS/Valkey Engine Versions The initial Redis version is determined by the version set on the primary replication group. However, once it is part of a Global Replication Group, @@ -639,7 +639,7 @@ def __init__(__self__, num_cache_clusters=1) ``` - ### Managing Redis Engine Versions + ### Managing Redis OOS/Valkey Engine Versions The initial Redis version is determined by the version set on the primary replication group. However, once it is part of a Global Replication Group, diff --git a/sdk/python/pulumi_aws/elasticache/replication_group.py b/sdk/python/pulumi_aws/elasticache/replication_group.py index b71bbbe964d..955214df579 100644 --- a/sdk/python/pulumi_aws/elasticache/replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/replication_group.py @@ -68,12 +68,12 @@ def __init__(__self__, *, :param pulumi.Input[str] auth_token: Password used to access a password protected server. Can be specified only if `transit_encryption_enabled = true`. :param pulumi.Input[str] auth_token_update_strategy: Strategy to use when updating the `auth_token`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. :param pulumi.Input[bool] auto_minor_version_upgrade: Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - Only supported for engine type `"redis"` and if the engine version is 6 or higher. + Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. Defaults to `true`. :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `num_cache_clusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. :param pulumi.Input[str] cluster_mode: Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. - :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used for the cache clusters in this replication group. If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. If the version is 6, the major and minor version can be set, e.g., `6.2`, @@ -84,7 +84,7 @@ def __init__(__self__, *, :param pulumi.Input[str] global_replication_group_id: The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If `global_replication_group_id` is set, the `num_node_groups` parameter cannot be set. :param pulumi.Input[str] ip_discovery: The IP version to advertise in the discovery protocol. Valid values are `ipv4` or `ipv6`. :param pulumi.Input[str] kms_key_id: The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. - :param pulumi.Input[Sequence[pulumi.Input['ReplicationGroupLogDeliveryConfigurationArgs']]] log_delivery_configurations: Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + :param pulumi.Input[Sequence[pulumi.Input['ReplicationGroupLogDeliveryConfigurationArgs']]] log_delivery_configurations: Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. @@ -274,7 +274,7 @@ def auth_token_update_strategy(self, value: Optional[pulumi.Input[str]]): def auto_minor_version_upgrade(self) -> Optional[pulumi.Input[bool]]: """ Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - Only supported for engine type `"redis"` and if the engine version is 6 or higher. + Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. Defaults to `true`. """ return pulumi.get(self, "auto_minor_version_upgrade") @@ -323,7 +323,7 @@ def data_tiering_enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def engine(self) -> Optional[pulumi.Input[str]]: """ - Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. """ return pulumi.get(self, "engine") @@ -400,7 +400,7 @@ def kms_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="logDeliveryConfigurations") def log_delivery_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ReplicationGroupLogDeliveryConfigurationArgs']]]]: """ - Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. """ return pulumi.get(self, "log_delivery_configurations") @@ -765,7 +765,7 @@ def __init__(__self__, *, :param pulumi.Input[str] auth_token: Password used to access a password protected server. Can be specified only if `transit_encryption_enabled = true`. :param pulumi.Input[str] auth_token_update_strategy: Strategy to use when updating the `auth_token`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. :param pulumi.Input[bool] auto_minor_version_upgrade: Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - Only supported for engine type `"redis"` and if the engine version is 6 or higher. + Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. Defaults to `true`. :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `num_cache_clusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. :param pulumi.Input[bool] cluster_enabled: Indicates if cluster mode is enabled. @@ -773,7 +773,7 @@ def __init__(__self__, *, :param pulumi.Input[str] configuration_endpoint_address: Address of the replication group configuration endpoint when cluster mode is enabled. :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. - :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used for the cache clusters in this replication group. If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. If the version is 6, the major and minor version can be set, e.g., `6.2`, @@ -785,7 +785,7 @@ def __init__(__self__, *, :param pulumi.Input[str] global_replication_group_id: The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If `global_replication_group_id` is set, the `num_node_groups` parameter cannot be set. :param pulumi.Input[str] ip_discovery: The IP version to advertise in the discovery protocol. Valid values are `ipv4` or `ipv6`. :param pulumi.Input[str] kms_key_id: The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. - :param pulumi.Input[Sequence[pulumi.Input['ReplicationGroupLogDeliveryConfigurationArgs']]] log_delivery_configurations: Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + :param pulumi.Input[Sequence[pulumi.Input['ReplicationGroupLogDeliveryConfigurationArgs']]] log_delivery_configurations: Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` :param pulumi.Input[Sequence[pulumi.Input[str]]] member_clusters: Identifiers of all the nodes that are part of this replication group. :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. @@ -999,7 +999,7 @@ def auth_token_update_strategy(self, value: Optional[pulumi.Input[str]]): def auto_minor_version_upgrade(self) -> Optional[pulumi.Input[bool]]: """ Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - Only supported for engine type `"redis"` and if the engine version is 6 or higher. + Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. Defaults to `true`. """ return pulumi.get(self, "auto_minor_version_upgrade") @@ -1084,7 +1084,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def engine(self) -> Optional[pulumi.Input[str]]: """ - Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. """ return pulumi.get(self, "engine") @@ -1173,7 +1173,7 @@ def kms_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="logDeliveryConfigurations") def log_delivery_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ReplicationGroupLogDeliveryConfigurationArgs']]]]: """ - Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. """ return pulumi.get(self, "log_delivery_configurations") @@ -1598,7 +1598,7 @@ def __init__(__self__, ## Example Usage - ### Redis Cluster Mode Disabled + ### Redis OSS/Valkey Cluster Mode Disabled To create a single shard primary with single read replica: @@ -1648,7 +1648,7 @@ def __init__(__self__, replication_group_id=example.id)) ``` - ### Redis Cluster Mode Enabled + ### Redis OSS/Valkey Cluster Mode Enabled To create two shards with a primary and a single read replica each: @@ -1767,13 +1767,13 @@ def __init__(__self__, :param pulumi.Input[str] auth_token: Password used to access a password protected server. Can be specified only if `transit_encryption_enabled = true`. :param pulumi.Input[str] auth_token_update_strategy: Strategy to use when updating the `auth_token`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. :param pulumi.Input[bool] auto_minor_version_upgrade: Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - Only supported for engine type `"redis"` and if the engine version is 6 or higher. + Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. Defaults to `true`. :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `num_cache_clusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. :param pulumi.Input[str] cluster_mode: Specifies whether cluster mode is enabled or disabled. Valid values are `enabled` or `disabled` or `compatible` :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. - :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used for the cache clusters in this replication group. If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. If the version is 6, the major and minor version can be set, e.g., `6.2`, @@ -1784,7 +1784,7 @@ def __init__(__self__, :param pulumi.Input[str] global_replication_group_id: The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If `global_replication_group_id` is set, the `num_node_groups` parameter cannot be set. :param pulumi.Input[str] ip_discovery: The IP version to advertise in the discovery protocol. Valid values are `ipv4` or `ipv6`. :param pulumi.Input[str] kms_key_id: The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. - :param pulumi.Input[Sequence[pulumi.Input[Union['ReplicationGroupLogDeliveryConfigurationArgs', 'ReplicationGroupLogDeliveryConfigurationArgsDict']]]] log_delivery_configurations: Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + :param pulumi.Input[Sequence[pulumi.Input[Union['ReplicationGroupLogDeliveryConfigurationArgs', 'ReplicationGroupLogDeliveryConfigurationArgsDict']]]] log_delivery_configurations: Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. @@ -1861,7 +1861,7 @@ def __init__(__self__, ## Example Usage - ### Redis Cluster Mode Disabled + ### Redis OSS/Valkey Cluster Mode Disabled To create a single shard primary with single read replica: @@ -1911,7 +1911,7 @@ def __init__(__self__, replication_group_id=example.id)) ``` - ### Redis Cluster Mode Enabled + ### Redis OSS/Valkey Cluster Mode Enabled To create two shards with a primary and a single read replica each: @@ -2207,7 +2207,7 @@ def get(resource_name: str, :param pulumi.Input[str] auth_token: Password used to access a password protected server. Can be specified only if `transit_encryption_enabled = true`. :param pulumi.Input[str] auth_token_update_strategy: Strategy to use when updating the `auth_token`. Valid values are `SET`, `ROTATE`, and `DELETE`. Defaults to `ROTATE`. :param pulumi.Input[bool] auto_minor_version_upgrade: Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - Only supported for engine type `"redis"` and if the engine version is 6 or higher. + Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. Defaults to `true`. :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, `num_cache_clusters` must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. :param pulumi.Input[bool] cluster_enabled: Indicates if cluster mode is enabled. @@ -2215,7 +2215,7 @@ def get(resource_name: str, :param pulumi.Input[str] configuration_endpoint_address: Address of the replication group configuration endpoint when cluster mode is enabled. :param pulumi.Input[bool] data_tiering_enabled: Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to `true` when using r6gd nodes. :param pulumi.Input[str] description: User-created description for the replication group. Must not be empty. - :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. :param pulumi.Input[str] engine_version: Version number of the cache engine to be used for the cache clusters in this replication group. If the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. If the version is 6, the major and minor version can be set, e.g., `6.2`, @@ -2227,7 +2227,7 @@ def get(resource_name: str, :param pulumi.Input[str] global_replication_group_id: The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If `global_replication_group_id` is set, the `num_node_groups` parameter cannot be set. :param pulumi.Input[str] ip_discovery: The IP version to advertise in the discovery protocol. Valid values are `ipv4` or `ipv6`. :param pulumi.Input[str] kms_key_id: The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. - :param pulumi.Input[Sequence[pulumi.Input[Union['ReplicationGroupLogDeliveryConfigurationArgs', 'ReplicationGroupLogDeliveryConfigurationArgsDict']]]] log_delivery_configurations: Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + :param pulumi.Input[Sequence[pulumi.Input[Union['ReplicationGroupLogDeliveryConfigurationArgs', 'ReplicationGroupLogDeliveryConfigurationArgsDict']]]] log_delivery_configurations: Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` :param pulumi.Input[Sequence[pulumi.Input[str]]] member_clusters: Identifiers of all the nodes that are part of this replication group. :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. @@ -2376,7 +2376,7 @@ def auth_token_update_strategy(self) -> pulumi.Output[Optional[str]]: def auto_minor_version_upgrade(self) -> pulumi.Output[bool]: """ Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - Only supported for engine type `"redis"` and if the engine version is 6 or higher. + Only supported for engine types `"redis"` and `"valkey"` and if the engine version is 6 or higher. Defaults to `true`. """ return pulumi.get(self, "auto_minor_version_upgrade") @@ -2433,7 +2433,7 @@ def description(self) -> pulumi.Output[str]: @pulumi.getter def engine(self) -> pulumi.Output[Optional[str]]: """ - Name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. + Name of the cache engine to be used for the clusters in this replication group. Valid values are `redis` or `valkey`. """ return pulumi.get(self, "engine") @@ -2494,7 +2494,7 @@ def kms_key_id(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="logDeliveryConfigurations") def log_delivery_configurations(self) -> pulumi.Output[Optional[Sequence['outputs.ReplicationGroupLogDeliveryConfiguration']]]: """ - Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. + Specifies the destination and format of Redis OSS/Valkey [SLOWLOG](https://redis.io/commands/slowlog) or Redis OSS/Valkey [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See Log Delivery Configuration below for more details. """ return pulumi.get(self, "log_delivery_configurations") diff --git a/sdk/python/pulumi_aws/elasticache/serverless_cache.py b/sdk/python/pulumi_aws/elasticache/serverless_cache.py index ed7abcfd479..a479ad6ddc1 100644 --- a/sdk/python/pulumi_aws/elasticache/serverless_cache.py +++ b/sdk/python/pulumi_aws/elasticache/serverless_cache.py @@ -37,9 +37,9 @@ def __init__(__self__, *, user_group_id: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a ServerlessCache resource. - :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. :param pulumi.Input['ServerlessCacheCacheUsageLimitsArgs'] cache_usage_limits: Sets the cache usage limits for storage and ElastiCache Processing Units for the cache. See `cache_usage_limits` Block for details. - :param pulumi.Input[str] daily_snapshot_time: The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + :param pulumi.Input[str] daily_snapshot_time: The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. :param pulumi.Input[str] description: User-provided description for the serverless cache. The default is NULL. :param pulumi.Input[str] kms_key_id: ARN of the customer managed key for encrypting the data at rest. If no KMS key is provided, a default service key is used. :param pulumi.Input[str] major_engine_version: The version of the cache engine that will be used to create the serverless cache. @@ -86,7 +86,7 @@ def __init__(__self__, *, @pulumi.getter def engine(self) -> pulumi.Input[str]: """ - Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. """ return pulumi.get(self, "engine") @@ -110,7 +110,7 @@ def cache_usage_limits(self, value: Optional[pulumi.Input['ServerlessCacheCacheU @pulumi.getter(name="dailySnapshotTime") def daily_snapshot_time(self) -> Optional[pulumi.Input[str]]: """ - The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. """ return pulumi.get(self, "daily_snapshot_time") @@ -280,10 +280,10 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the serverless cache. :param pulumi.Input['ServerlessCacheCacheUsageLimitsArgs'] cache_usage_limits: Sets the cache usage limits for storage and ElastiCache Processing Units for the cache. See `cache_usage_limits` Block for details. :param pulumi.Input[str] create_time: Timestamp of when the serverless cache was created. - :param pulumi.Input[str] daily_snapshot_time: The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + :param pulumi.Input[str] daily_snapshot_time: The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. :param pulumi.Input[str] description: User-provided description for the serverless cache. The default is NULL. :param pulumi.Input[Sequence[pulumi.Input['ServerlessCacheEndpointArgs']]] endpoints: Represents the information required for client programs to connect to a cache node. See `endpoint` Block for details. - :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. :param pulumi.Input[str] full_engine_version: The name and version number of the engine the serverless cache is compatible with. :param pulumi.Input[str] kms_key_id: ARN of the customer managed key for encrypting the data at rest. If no KMS key is provided, a default service key is used. :param pulumi.Input[str] major_engine_version: The version of the cache engine that will be used to create the serverless cache. @@ -386,7 +386,7 @@ def create_time(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="dailySnapshotTime") def daily_snapshot_time(self) -> Optional[pulumi.Input[str]]: """ - The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. """ return pulumi.get(self, "daily_snapshot_time") @@ -422,7 +422,7 @@ def endpoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Serverle @pulumi.getter def engine(self) -> Optional[pulumi.Input[str]]: """ - Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. """ return pulumi.get(self, "engine") @@ -618,7 +618,7 @@ def __init__(__self__, user_group_id: Optional[pulumi.Input[str]] = None, __props__=None): """ - Provides an ElastiCache Serverless Cache resource which manages memcached or redis. + Provides an ElastiCache Serverless Cache resource which manages memcached, redis or valkey. ## Example Usage @@ -647,7 +647,7 @@ def __init__(__self__, subnet_ids=[__item["id"] for __item in test_aws_subnet]) ``` - ### Redis Serverless + ### Redis OSS Serverless ```python import pulumi @@ -674,6 +674,33 @@ def __init__(__self__, subnet_ids=[__item["id"] for __item in test_aws_subnet]) ``` + ### Valkey Serverless + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.elasticache.ServerlessCache("example", + engine="valkey", + name="example", + cache_usage_limits={ + "data_storage": { + "maximum": 10, + "unit": "GB", + }, + "ecpu_per_seconds": [{ + "maximum": 5000, + }], + }, + daily_snapshot_time="09:00", + description="Test Server", + kms_key_id=test["arn"], + major_engine_version="7", + snapshot_retention_limit=1, + security_group_ids=[test_aws_security_group["id"]], + subnet_ids=[__item["id"] for __item in test_aws_subnet]) + ``` + ## Import Using `pulumi import`, import ElastiCache Serverless Cache using the `name`. For example: @@ -685,9 +712,9 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Union['ServerlessCacheCacheUsageLimitsArgs', 'ServerlessCacheCacheUsageLimitsArgsDict']] cache_usage_limits: Sets the cache usage limits for storage and ElastiCache Processing Units for the cache. See `cache_usage_limits` Block for details. - :param pulumi.Input[str] daily_snapshot_time: The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + :param pulumi.Input[str] daily_snapshot_time: The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. :param pulumi.Input[str] description: User-provided description for the serverless cache. The default is NULL. - :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. :param pulumi.Input[str] kms_key_id: ARN of the customer managed key for encrypting the data at rest. If no KMS key is provided, a default service key is used. :param pulumi.Input[str] major_engine_version: The version of the cache engine that will be used to create the serverless cache. See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. @@ -708,7 +735,7 @@ def __init__(__self__, args: ServerlessCacheArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Provides an ElastiCache Serverless Cache resource which manages memcached or redis. + Provides an ElastiCache Serverless Cache resource which manages memcached, redis or valkey. ## Example Usage @@ -737,7 +764,7 @@ def __init__(__self__, subnet_ids=[__item["id"] for __item in test_aws_subnet]) ``` - ### Redis Serverless + ### Redis OSS Serverless ```python import pulumi @@ -764,6 +791,33 @@ def __init__(__self__, subnet_ids=[__item["id"] for __item in test_aws_subnet]) ``` + ### Valkey Serverless + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.elasticache.ServerlessCache("example", + engine="valkey", + name="example", + cache_usage_limits={ + "data_storage": { + "maximum": 10, + "unit": "GB", + }, + "ecpu_per_seconds": [{ + "maximum": 5000, + }], + }, + daily_snapshot_time="09:00", + description="Test Server", + kms_key_id=test["arn"], + major_engine_version="7", + snapshot_retention_limit=1, + security_group_ids=[test_aws_security_group["id"]], + subnet_ids=[__item["id"] for __item in test_aws_subnet]) + ``` + ## Import Using `pulumi import`, import ElastiCache Serverless Cache using the `name`. For example: @@ -874,10 +928,10 @@ def get(resource_name: str, :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the serverless cache. :param pulumi.Input[Union['ServerlessCacheCacheUsageLimitsArgs', 'ServerlessCacheCacheUsageLimitsArgsDict']] cache_usage_limits: Sets the cache usage limits for storage and ElastiCache Processing Units for the cache. See `cache_usage_limits` Block for details. :param pulumi.Input[str] create_time: Timestamp of when the serverless cache was created. - :param pulumi.Input[str] daily_snapshot_time: The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + :param pulumi.Input[str] daily_snapshot_time: The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. :param pulumi.Input[str] description: User-provided description for the serverless cache. The default is NULL. :param pulumi.Input[Sequence[pulumi.Input[Union['ServerlessCacheEndpointArgs', 'ServerlessCacheEndpointArgsDict']]]] endpoints: Represents the information required for client programs to connect to a cache node. See `endpoint` Block for details. - :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + :param pulumi.Input[str] engine: Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. :param pulumi.Input[str] full_engine_version: The name and version number of the engine the serverless cache is compatible with. :param pulumi.Input[str] kms_key_id: ARN of the customer managed key for encrypting the data at rest. If no KMS key is provided, a default service key is used. :param pulumi.Input[str] major_engine_version: The version of the cache engine that will be used to create the serverless cache. @@ -949,7 +1003,7 @@ def create_time(self) -> pulumi.Output[str]: @pulumi.getter(name="dailySnapshotTime") def daily_snapshot_time(self) -> pulumi.Output[str]: """ - The daily time that snapshots will be created from the new serverless cache. Only supported for engine type `"redis"`. Defaults to `0`. + The daily time that snapshots will be created from the new serverless cache. Only supported for engine types `"redis"` or `"valkey"`. Defaults to `0`. """ return pulumi.get(self, "daily_snapshot_time") @@ -973,7 +1027,7 @@ def endpoints(self) -> pulumi.Output[Sequence['outputs.ServerlessCacheEndpoint'] @pulumi.getter def engine(self) -> pulumi.Output[str]: """ - Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. + Name of the cache engine to be used for this cache cluster. Valid values are `memcached`, `redis` or `valkey`. """ return pulumi.get(self, "engine") diff --git a/sdk/python/pulumi_aws/imagebuilder/__init__.py b/sdk/python/pulumi_aws/imagebuilder/__init__.py index 029bdab248d..472dc16fdd6 100644 --- a/sdk/python/pulumi_aws/imagebuilder/__init__.py +++ b/sdk/python/pulumi_aws/imagebuilder/__init__.py @@ -25,6 +25,7 @@ from .image_pipeline import * from .image_recipe import * from .infrastructure_configuration import * +from .lifecycle_policy import * from .workflow import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/imagebuilder/_inputs.py b/sdk/python/pulumi_aws/imagebuilder/_inputs.py index 8a3043a3469..117411e4b06 100644 --- a/sdk/python/pulumi_aws/imagebuilder/_inputs.py +++ b/sdk/python/pulumi_aws/imagebuilder/_inputs.py @@ -89,6 +89,24 @@ 'InfrastructureConfigurationLoggingArgsDict', 'InfrastructureConfigurationLoggingS3LogsArgs', 'InfrastructureConfigurationLoggingS3LogsArgsDict', + 'LifecyclePolicyPolicyDetailArgs', + 'LifecyclePolicyPolicyDetailArgsDict', + 'LifecyclePolicyPolicyDetailActionArgs', + 'LifecyclePolicyPolicyDetailActionArgsDict', + 'LifecyclePolicyPolicyDetailActionIncludeResourcesArgs', + 'LifecyclePolicyPolicyDetailActionIncludeResourcesArgsDict', + 'LifecyclePolicyPolicyDetailExclusionRulesArgs', + 'LifecyclePolicyPolicyDetailExclusionRulesArgsDict', + 'LifecyclePolicyPolicyDetailExclusionRulesAmisArgs', + 'LifecyclePolicyPolicyDetailExclusionRulesAmisArgsDict', + 'LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs', + 'LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgsDict', + 'LifecyclePolicyPolicyDetailFilterArgs', + 'LifecyclePolicyPolicyDetailFilterArgsDict', + 'LifecyclePolicyResourceSelectionArgs', + 'LifecyclePolicyResourceSelectionArgsDict', + 'LifecyclePolicyResourceSelectionRecipeArgs', + 'LifecyclePolicyResourceSelectionRecipeArgsDict', 'GetComponentsFilterArgs', 'GetComponentsFilterArgsDict', 'GetContainerRecipesFilterArgs', @@ -2767,6 +2785,625 @@ def s3_key_prefix(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "s3_key_prefix", value) +if not MYPY: + class LifecyclePolicyPolicyDetailArgsDict(TypedDict): + action: NotRequired[pulumi.Input['LifecyclePolicyPolicyDetailActionArgsDict']] + """ + Configuration details for the policy action. + """ + exclusion_rules: NotRequired[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesArgsDict']] + """ + Additional rules to specify resources that should be exempt from policy actions. + """ + filter: NotRequired[pulumi.Input['LifecyclePolicyPolicyDetailFilterArgsDict']] + """ + Specifies the resources that the lifecycle policy applies to. + + The following arguments are optional: + """ +elif False: + LifecyclePolicyPolicyDetailArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LifecyclePolicyPolicyDetailArgs: + def __init__(__self__, *, + action: Optional[pulumi.Input['LifecyclePolicyPolicyDetailActionArgs']] = None, + exclusion_rules: Optional[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesArgs']] = None, + filter: Optional[pulumi.Input['LifecyclePolicyPolicyDetailFilterArgs']] = None): + """ + :param pulumi.Input['LifecyclePolicyPolicyDetailActionArgs'] action: Configuration details for the policy action. + :param pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesArgs'] exclusion_rules: Additional rules to specify resources that should be exempt from policy actions. + :param pulumi.Input['LifecyclePolicyPolicyDetailFilterArgs'] filter: Specifies the resources that the lifecycle policy applies to. + + The following arguments are optional: + """ + if action is not None: + pulumi.set(__self__, "action", action) + if exclusion_rules is not None: + pulumi.set(__self__, "exclusion_rules", exclusion_rules) + if filter is not None: + pulumi.set(__self__, "filter", filter) + + @property + @pulumi.getter + def action(self) -> Optional[pulumi.Input['LifecyclePolicyPolicyDetailActionArgs']]: + """ + Configuration details for the policy action. + """ + return pulumi.get(self, "action") + + @action.setter + def action(self, value: Optional[pulumi.Input['LifecyclePolicyPolicyDetailActionArgs']]): + pulumi.set(self, "action", value) + + @property + @pulumi.getter(name="exclusionRules") + def exclusion_rules(self) -> Optional[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesArgs']]: + """ + Additional rules to specify resources that should be exempt from policy actions. + """ + return pulumi.get(self, "exclusion_rules") + + @exclusion_rules.setter + def exclusion_rules(self, value: Optional[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesArgs']]): + pulumi.set(self, "exclusion_rules", value) + + @property + @pulumi.getter + def filter(self) -> Optional[pulumi.Input['LifecyclePolicyPolicyDetailFilterArgs']]: + """ + Specifies the resources that the lifecycle policy applies to. + + The following arguments are optional: + """ + return pulumi.get(self, "filter") + + @filter.setter + def filter(self, value: Optional[pulumi.Input['LifecyclePolicyPolicyDetailFilterArgs']]): + pulumi.set(self, "filter", value) + + +if not MYPY: + class LifecyclePolicyPolicyDetailActionArgsDict(TypedDict): + type: pulumi.Input[str] + """ + Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + + The following arguments are optional: + """ + include_resources: NotRequired[pulumi.Input['LifecyclePolicyPolicyDetailActionIncludeResourcesArgsDict']] + """ + Specifies the resources that the lifecycle policy applies to. Detailed below. + """ +elif False: + LifecyclePolicyPolicyDetailActionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LifecyclePolicyPolicyDetailActionArgs: + def __init__(__self__, *, + type: pulumi.Input[str], + include_resources: Optional[pulumi.Input['LifecyclePolicyPolicyDetailActionIncludeResourcesArgs']] = None): + """ + :param pulumi.Input[str] type: Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + + The following arguments are optional: + :param pulumi.Input['LifecyclePolicyPolicyDetailActionIncludeResourcesArgs'] include_resources: Specifies the resources that the lifecycle policy applies to. Detailed below. + """ + pulumi.set(__self__, "type", type) + if include_resources is not None: + pulumi.set(__self__, "include_resources", include_resources) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + + The following arguments are optional: + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="includeResources") + def include_resources(self) -> Optional[pulumi.Input['LifecyclePolicyPolicyDetailActionIncludeResourcesArgs']]: + """ + Specifies the resources that the lifecycle policy applies to. Detailed below. + """ + return pulumi.get(self, "include_resources") + + @include_resources.setter + def include_resources(self, value: Optional[pulumi.Input['LifecyclePolicyPolicyDetailActionIncludeResourcesArgs']]): + pulumi.set(self, "include_resources", value) + + +if not MYPY: + class LifecyclePolicyPolicyDetailActionIncludeResourcesArgsDict(TypedDict): + amis: NotRequired[pulumi.Input[bool]] + """ + Specifies whether the lifecycle action should apply to distributed AMIs. + """ + containers: NotRequired[pulumi.Input[bool]] + """ + Specifies whether the lifecycle action should apply to distributed containers. + """ + snapshots: NotRequired[pulumi.Input[bool]] + """ + Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + """ +elif False: + LifecyclePolicyPolicyDetailActionIncludeResourcesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LifecyclePolicyPolicyDetailActionIncludeResourcesArgs: + def __init__(__self__, *, + amis: Optional[pulumi.Input[bool]] = None, + containers: Optional[pulumi.Input[bool]] = None, + snapshots: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[bool] amis: Specifies whether the lifecycle action should apply to distributed AMIs. + :param pulumi.Input[bool] containers: Specifies whether the lifecycle action should apply to distributed containers. + :param pulumi.Input[bool] snapshots: Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + """ + if amis is not None: + pulumi.set(__self__, "amis", amis) + if containers is not None: + pulumi.set(__self__, "containers", containers) + if snapshots is not None: + pulumi.set(__self__, "snapshots", snapshots) + + @property + @pulumi.getter + def amis(self) -> Optional[pulumi.Input[bool]]: + """ + Specifies whether the lifecycle action should apply to distributed AMIs. + """ + return pulumi.get(self, "amis") + + @amis.setter + def amis(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "amis", value) + + @property + @pulumi.getter + def containers(self) -> Optional[pulumi.Input[bool]]: + """ + Specifies whether the lifecycle action should apply to distributed containers. + """ + return pulumi.get(self, "containers") + + @containers.setter + def containers(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "containers", value) + + @property + @pulumi.getter + def snapshots(self) -> Optional[pulumi.Input[bool]]: + """ + Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + """ + return pulumi.get(self, "snapshots") + + @snapshots.setter + def snapshots(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "snapshots", value) + + +if not MYPY: + class LifecyclePolicyPolicyDetailExclusionRulesArgsDict(TypedDict): + amis: NotRequired[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesAmisArgsDict']] + """ + Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + """ + tag_map: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + """ +elif False: + LifecyclePolicyPolicyDetailExclusionRulesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LifecyclePolicyPolicyDetailExclusionRulesArgs: + def __init__(__self__, *, + amis: Optional[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesAmisArgs']] = None, + tag_map: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + :param pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesAmisArgs'] amis: Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tag_map: Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + """ + if amis is not None: + pulumi.set(__self__, "amis", amis) + if tag_map is not None: + pulumi.set(__self__, "tag_map", tag_map) + + @property + @pulumi.getter + def amis(self) -> Optional[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesAmisArgs']]: + """ + Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + """ + return pulumi.get(self, "amis") + + @amis.setter + def amis(self, value: Optional[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesAmisArgs']]): + pulumi.set(self, "amis", value) + + @property + @pulumi.getter(name="tagMap") + def tag_map(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + """ + return pulumi.get(self, "tag_map") + + @tag_map.setter + def tag_map(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tag_map", value) + + +if not MYPY: + class LifecyclePolicyPolicyDetailExclusionRulesAmisArgsDict(TypedDict): + is_public: NotRequired[pulumi.Input[bool]] + """ + Configures whether public AMIs are excluded from the lifecycle action. + """ + last_launched: NotRequired[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgsDict']] + """ + Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + """ + regions: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Configures AWS Regions that are excluded from the lifecycle action. + """ + shared_accounts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Specifies AWS accounts whose resources are excluded from the lifecycle action. + """ + tag_map: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + """ +elif False: + LifecyclePolicyPolicyDetailExclusionRulesAmisArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LifecyclePolicyPolicyDetailExclusionRulesAmisArgs: + def __init__(__self__, *, + is_public: Optional[pulumi.Input[bool]] = None, + last_launched: Optional[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs']] = None, + regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + shared_accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_map: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[bool] is_public: Configures whether public AMIs are excluded from the lifecycle action. + :param pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs'] last_launched: Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] regions: Configures AWS Regions that are excluded from the lifecycle action. + :param pulumi.Input[Sequence[pulumi.Input[str]]] shared_accounts: Specifies AWS accounts whose resources are excluded from the lifecycle action. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tag_map: Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + """ + if is_public is not None: + pulumi.set(__self__, "is_public", is_public) + if last_launched is not None: + pulumi.set(__self__, "last_launched", last_launched) + if regions is not None: + pulumi.set(__self__, "regions", regions) + if shared_accounts is not None: + pulumi.set(__self__, "shared_accounts", shared_accounts) + if tag_map is not None: + pulumi.set(__self__, "tag_map", tag_map) + + @property + @pulumi.getter(name="isPublic") + def is_public(self) -> Optional[pulumi.Input[bool]]: + """ + Configures whether public AMIs are excluded from the lifecycle action. + """ + return pulumi.get(self, "is_public") + + @is_public.setter + def is_public(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_public", value) + + @property + @pulumi.getter(name="lastLaunched") + def last_launched(self) -> Optional[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs']]: + """ + Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + """ + return pulumi.get(self, "last_launched") + + @last_launched.setter + def last_launched(self, value: Optional[pulumi.Input['LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs']]): + pulumi.set(self, "last_launched", value) + + @property + @pulumi.getter + def regions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Configures AWS Regions that are excluded from the lifecycle action. + """ + return pulumi.get(self, "regions") + + @regions.setter + def regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "regions", value) + + @property + @pulumi.getter(name="sharedAccounts") + def shared_accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Specifies AWS accounts whose resources are excluded from the lifecycle action. + """ + return pulumi.get(self, "shared_accounts") + + @shared_accounts.setter + def shared_accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "shared_accounts", value) + + @property + @pulumi.getter(name="tagMap") + def tag_map(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + """ + return pulumi.get(self, "tag_map") + + @tag_map.setter + def tag_map(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tag_map", value) + + +if not MYPY: + class LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgsDict(TypedDict): + unit: pulumi.Input[str] + """ + Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + """ + value: pulumi.Input[int] + """ + The integer number of units for the time period. For example 6 (months). + """ +elif False: + LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs: + def __init__(__self__, *, + unit: pulumi.Input[str], + value: pulumi.Input[int]): + """ + :param pulumi.Input[str] unit: Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + :param pulumi.Input[int] value: The integer number of units for the time period. For example 6 (months). + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> pulumi.Input[str]: + """ + Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input[str]): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[int]: + """ + The integer number of units for the time period. For example 6 (months). + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[int]): + pulumi.set(self, "value", value) + + +if not MYPY: + class LifecyclePolicyPolicyDetailFilterArgsDict(TypedDict): + type: pulumi.Input[str] + """ + Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + """ + value: pulumi.Input[int] + """ + The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + + The following arguments are optional: + """ + retain_at_least: NotRequired[pulumi.Input[int]] + """ + For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + """ + unit: NotRequired[pulumi.Input[str]] + """ + Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + """ +elif False: + LifecyclePolicyPolicyDetailFilterArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LifecyclePolicyPolicyDetailFilterArgs: + def __init__(__self__, *, + type: pulumi.Input[str], + value: pulumi.Input[int], + retain_at_least: Optional[pulumi.Input[int]] = None, + unit: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] type: Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + :param pulumi.Input[int] value: The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + + The following arguments are optional: + :param pulumi.Input[int] retain_at_least: For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + :param pulumi.Input[str] unit: Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + """ + pulumi.set(__self__, "type", type) + pulumi.set(__self__, "value", value) + if retain_at_least is not None: + pulumi.set(__self__, "retain_at_least", retain_at_least) + if unit is not None: + pulumi.set(__self__, "unit", unit) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[int]: + """ + The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + + The following arguments are optional: + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[int]): + pulumi.set(self, "value", value) + + @property + @pulumi.getter(name="retainAtLeast") + def retain_at_least(self) -> Optional[pulumi.Input[int]]: + """ + For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + """ + return pulumi.get(self, "retain_at_least") + + @retain_at_least.setter + def retain_at_least(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "retain_at_least", value) + + @property + @pulumi.getter + def unit(self) -> Optional[pulumi.Input[str]]: + """ + Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "unit", value) + + +if not MYPY: + class LifecyclePolicyResourceSelectionArgsDict(TypedDict): + recipes: NotRequired[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyResourceSelectionRecipeArgsDict']]]] + """ + A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + """ + tag_map: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + """ +elif False: + LifecyclePolicyResourceSelectionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LifecyclePolicyResourceSelectionArgs: + def __init__(__self__, *, + recipes: Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyResourceSelectionRecipeArgs']]]] = None, + tag_map: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyResourceSelectionRecipeArgs']]] recipes: A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tag_map: A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + """ + if recipes is not None: + pulumi.set(__self__, "recipes", recipes) + if tag_map is not None: + pulumi.set(__self__, "tag_map", tag_map) + + @property + @pulumi.getter + def recipes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyResourceSelectionRecipeArgs']]]]: + """ + A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + """ + return pulumi.get(self, "recipes") + + @recipes.setter + def recipes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyResourceSelectionRecipeArgs']]]]): + pulumi.set(self, "recipes", value) + + @property + @pulumi.getter(name="tagMap") + def tag_map(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + """ + return pulumi.get(self, "tag_map") + + @tag_map.setter + def tag_map(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tag_map", value) + + +if not MYPY: + class LifecyclePolicyResourceSelectionRecipeArgsDict(TypedDict): + name: pulumi.Input[str] + """ + The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + """ + semantic_version: pulumi.Input[str] + """ + The version of the Image Builder recipe specified by the name field. + """ +elif False: + LifecyclePolicyResourceSelectionRecipeArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LifecyclePolicyResourceSelectionRecipeArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + semantic_version: pulumi.Input[str]): + """ + :param pulumi.Input[str] name: The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + :param pulumi.Input[str] semantic_version: The version of the Image Builder recipe specified by the name field. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "semantic_version", semantic_version) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="semanticVersion") + def semantic_version(self) -> pulumi.Input[str]: + """ + The version of the Image Builder recipe specified by the name field. + """ + return pulumi.get(self, "semantic_version") + + @semantic_version.setter + def semantic_version(self, value: pulumi.Input[str]): + pulumi.set(self, "semantic_version", value) + + if not MYPY: class GetComponentsFilterArgsDict(TypedDict): name: str diff --git a/sdk/python/pulumi_aws/imagebuilder/get_container_recipe.py b/sdk/python/pulumi_aws/imagebuilder/get_container_recipe.py index 647a7c25e21..27b5dd631e8 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_container_recipe.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_container_recipe.py @@ -194,7 +194,7 @@ def platform(self) -> str: @property @pulumi.getter - def tags(self) -> Optional[Mapping[str, str]]: + def tags(self) -> Mapping[str, str]: """ Key-value map of resource tags for the container recipe. """ diff --git a/sdk/python/pulumi_aws/imagebuilder/get_image_recipe.py b/sdk/python/pulumi_aws/imagebuilder/get_image_recipe.py index 6efef1c01ac..504bf5ccffc 100644 --- a/sdk/python/pulumi_aws/imagebuilder/get_image_recipe.py +++ b/sdk/python/pulumi_aws/imagebuilder/get_image_recipe.py @@ -150,7 +150,7 @@ def platform(self) -> str: @property @pulumi.getter - def tags(self) -> Optional[Mapping[str, str]]: + def tags(self) -> Mapping[str, str]: """ Key-value map of resource tags for the image recipe. """ diff --git a/sdk/python/pulumi_aws/imagebuilder/lifecycle_policy.py b/sdk/python/pulumi_aws/imagebuilder/lifecycle_policy.py new file mode 100644 index 00000000000..c931e375144 --- /dev/null +++ b/sdk/python/pulumi_aws/imagebuilder/lifecycle_policy.py @@ -0,0 +1,672 @@ +# 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__ = ['LifecyclePolicyArgs', 'LifecyclePolicy'] + +@pulumi.input_type +class LifecyclePolicyArgs: + def __init__(__self__, *, + execution_role: pulumi.Input[str], + resource_type: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_details: Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailArgs']]]] = None, + resource_selection: Optional[pulumi.Input['LifecyclePolicyResourceSelectionArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a LifecyclePolicy resource. + :param pulumi.Input[str] execution_role: The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + :param pulumi.Input[str] resource_type: The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + :param pulumi.Input[str] description: description for the lifecycle policy. + :param pulumi.Input[str] name: The name of the lifecycle policy to create. + :param pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailArgs']]] policy_details: Configuration block with policy details. Detailed below. + :param pulumi.Input['LifecyclePolicyResourceSelectionArgs'] resource_selection: Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + + The following arguments are optional: + :param pulumi.Input[str] status: The status of the lifecycle policy. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the Image Builder Lifecycle Policy. 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__, "execution_role", execution_role) + pulumi.set(__self__, "resource_type", resource_type) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if policy_details is not None: + pulumi.set(__self__, "policy_details", policy_details) + if resource_selection is not None: + pulumi.set(__self__, "resource_selection", resource_selection) + if status is not None: + pulumi.set(__self__, "status", status) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="executionRole") + def execution_role(self) -> pulumi.Input[str]: + """ + The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + """ + return pulumi.get(self, "execution_role") + + @execution_role.setter + def execution_role(self, value: pulumi.Input[str]): + pulumi.set(self, "execution_role", value) + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> pulumi.Input[str]: + """ + The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + """ + return pulumi.get(self, "resource_type") + + @resource_type.setter + def resource_type(self, value: pulumi.Input[str]): + pulumi.set(self, "resource_type", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + description for the lifecycle policy. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the lifecycle policy 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(name="policyDetails") + def policy_details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailArgs']]]]: + """ + Configuration block with policy details. Detailed below. + """ + return pulumi.get(self, "policy_details") + + @policy_details.setter + def policy_details(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailArgs']]]]): + pulumi.set(self, "policy_details", value) + + @property + @pulumi.getter(name="resourceSelection") + def resource_selection(self) -> Optional[pulumi.Input['LifecyclePolicyResourceSelectionArgs']]: + """ + Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + + The following arguments are optional: + """ + return pulumi.get(self, "resource_selection") + + @resource_selection.setter + def resource_selection(self, value: Optional[pulumi.Input['LifecyclePolicyResourceSelectionArgs']]): + pulumi.set(self, "resource_selection", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + The status of the lifecycle policy. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 _LifecyclePolicyState: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + execution_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_details: Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailArgs']]]] = None, + resource_selection: Optional[pulumi.Input['LifecyclePolicyResourceSelectionArgs']] = None, + resource_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + Input properties used for looking up and filtering LifecyclePolicy resources. + :param pulumi.Input[str] arn: Amazon Resource Name (ARN) of the lifecycle policy. + :param pulumi.Input[str] description: description for the lifecycle policy. + :param pulumi.Input[str] execution_role: The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + :param pulumi.Input[str] name: The name of the lifecycle policy to create. + :param pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailArgs']]] policy_details: Configuration block with policy details. Detailed below. + :param pulumi.Input['LifecyclePolicyResourceSelectionArgs'] resource_selection: Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + + The following arguments are optional: + :param pulumi.Input[str] resource_type: The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + :param pulumi.Input[str] status: The status of the lifecycle policy. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 description is not None: + pulumi.set(__self__, "description", description) + if execution_role is not None: + pulumi.set(__self__, "execution_role", execution_role) + if name is not None: + pulumi.set(__self__, "name", name) + if policy_details is not None: + pulumi.set(__self__, "policy_details", policy_details) + if resource_selection is not None: + pulumi.set(__self__, "resource_selection", resource_selection) + if resource_type is not None: + pulumi.set(__self__, "resource_type", resource_type) + if status is not None: + pulumi.set(__self__, "status", status) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tags_all is not None: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + if tags_all is not None: + pulumi.set(__self__, "tags_all", tags_all) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + Amazon Resource Name (ARN) of the lifecycle policy. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + description for the lifecycle policy. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="executionRole") + def execution_role(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + """ + return pulumi.get(self, "execution_role") + + @execution_role.setter + def execution_role(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "execution_role", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the lifecycle policy 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(name="policyDetails") + def policy_details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailArgs']]]]: + """ + Configuration block with policy details. Detailed below. + """ + return pulumi.get(self, "policy_details") + + @policy_details.setter + def policy_details(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailArgs']]]]): + pulumi.set(self, "policy_details", value) + + @property + @pulumi.getter(name="resourceSelection") + def resource_selection(self) -> Optional[pulumi.Input['LifecyclePolicyResourceSelectionArgs']]: + """ + Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + + The following arguments are optional: + """ + return pulumi.get(self, "resource_selection") + + @resource_selection.setter + def resource_selection(self, value: Optional[pulumi.Input['LifecyclePolicyResourceSelectionArgs']]): + pulumi.set(self, "resource_selection", value) + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + """ + return pulumi.get(self, "resource_type") + + @resource_type.setter + def resource_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_type", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + The status of the lifecycle policy. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value map of resource tags for the Image Builder Lifecycle Policy. 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 LifecyclePolicy(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + execution_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_details: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LifecyclePolicyPolicyDetailArgs', 'LifecyclePolicyPolicyDetailArgsDict']]]]] = None, + resource_selection: Optional[pulumi.Input[Union['LifecyclePolicyResourceSelectionArgs', 'LifecyclePolicyResourceSelectionArgsDict']]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + """ + Manages an Image Builder Lifecycle Policy. + + ## Example Usage + + ```python + import pulumi + import json + import pulumi_aws as aws + + current = aws.get_region() + current_get_partition = aws.get_partition() + example = aws.iam.Role("example", + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [{ + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": f"imagebuilder.{current_get_partition.dns_suffix}", + }, + }], + }), + name="example") + example_role_policy_attachment = aws.iam.RolePolicyAttachment("example", + policy_arn=f"arn:{current_get_partition.partition}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy", + role=example.name) + example_lifecycle_policy = aws.imagebuilder.LifecyclePolicy("example", + name="name", + description="Example description", + execution_role=example.arn, + resource_type="AMI_IMAGE", + policy_details=[{ + "action": { + "type": "DELETE", + }, + "filter": { + "type": "AGE", + "value": 6, + "retain_at_least": 10, + "unit": "YEARS", + }, + }], + resource_selection={ + "tag_map": { + "key1": "value1", + "key2": "value2", + }, + }, + opts = pulumi.ResourceOptions(depends_on=[example_role_policy_attachment])) + ``` + + ## Import + + Using `pulumi import`, import `aws_imagebuilder_lifecycle_policy` using the Amazon Resource Name (ARN). For example: + + ```sh + $ pulumi import aws:imagebuilder/lifecyclePolicy:LifecyclePolicy example arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/example + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: description for the lifecycle policy. + :param pulumi.Input[str] execution_role: The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + :param pulumi.Input[str] name: The name of the lifecycle policy to create. + :param pulumi.Input[Sequence[pulumi.Input[Union['LifecyclePolicyPolicyDetailArgs', 'LifecyclePolicyPolicyDetailArgsDict']]]] policy_details: Configuration block with policy details. Detailed below. + :param pulumi.Input[Union['LifecyclePolicyResourceSelectionArgs', 'LifecyclePolicyResourceSelectionArgsDict']] resource_selection: Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + + The following arguments are optional: + :param pulumi.Input[str] resource_type: The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + :param pulumi.Input[str] status: The status of the lifecycle policy. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the Image Builder Lifecycle Policy. 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: LifecyclePolicyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages an Image Builder Lifecycle Policy. + + ## Example Usage + + ```python + import pulumi + import json + import pulumi_aws as aws + + current = aws.get_region() + current_get_partition = aws.get_partition() + example = aws.iam.Role("example", + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [{ + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": f"imagebuilder.{current_get_partition.dns_suffix}", + }, + }], + }), + name="example") + example_role_policy_attachment = aws.iam.RolePolicyAttachment("example", + policy_arn=f"arn:{current_get_partition.partition}:iam::aws:policy/service-role/EC2ImageBuilderLifecycleExecutionPolicy", + role=example.name) + example_lifecycle_policy = aws.imagebuilder.LifecyclePolicy("example", + name="name", + description="Example description", + execution_role=example.arn, + resource_type="AMI_IMAGE", + policy_details=[{ + "action": { + "type": "DELETE", + }, + "filter": { + "type": "AGE", + "value": 6, + "retain_at_least": 10, + "unit": "YEARS", + }, + }], + resource_selection={ + "tag_map": { + "key1": "value1", + "key2": "value2", + }, + }, + opts = pulumi.ResourceOptions(depends_on=[example_role_policy_attachment])) + ``` + + ## Import + + Using `pulumi import`, import `aws_imagebuilder_lifecycle_policy` using the Amazon Resource Name (ARN). For example: + + ```sh + $ pulumi import aws:imagebuilder/lifecyclePolicy:LifecyclePolicy example arn:aws:imagebuilder:us-east-1:123456789012:lifecycle-policy/example + ``` + + :param str resource_name: The name of the resource. + :param LifecyclePolicyArgs 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(LifecyclePolicyArgs, 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, + execution_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_details: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LifecyclePolicyPolicyDetailArgs', 'LifecyclePolicyPolicyDetailArgsDict']]]]] = None, + resource_selection: Optional[pulumi.Input[Union['LifecyclePolicyResourceSelectionArgs', 'LifecyclePolicyResourceSelectionArgsDict']]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = LifecyclePolicyArgs.__new__(LifecyclePolicyArgs) + + __props__.__dict__["description"] = description + if execution_role is None and not opts.urn: + raise TypeError("Missing required property 'execution_role'") + __props__.__dict__["execution_role"] = execution_role + __props__.__dict__["name"] = name + __props__.__dict__["policy_details"] = policy_details + __props__.__dict__["resource_selection"] = resource_selection + if resource_type is None and not opts.urn: + raise TypeError("Missing required property 'resource_type'") + __props__.__dict__["resource_type"] = resource_type + __props__.__dict__["status"] = status + __props__.__dict__["tags"] = tags + __props__.__dict__["arn"] = None + __props__.__dict__["tags_all"] = None + super(LifecyclePolicy, __self__).__init__( + 'aws:imagebuilder/lifecyclePolicy:LifecyclePolicy', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + execution_role: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_details: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LifecyclePolicyPolicyDetailArgs', 'LifecyclePolicyPolicyDetailArgsDict']]]]] = None, + resource_selection: Optional[pulumi.Input[Union['LifecyclePolicyResourceSelectionArgs', 'LifecyclePolicyResourceSelectionArgsDict']]] = None, + resource_type: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'LifecyclePolicy': + """ + Get an existing LifecyclePolicy 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: Amazon Resource Name (ARN) of the lifecycle policy. + :param pulumi.Input[str] description: description for the lifecycle policy. + :param pulumi.Input[str] execution_role: The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + :param pulumi.Input[str] name: The name of the lifecycle policy to create. + :param pulumi.Input[Sequence[pulumi.Input[Union['LifecyclePolicyPolicyDetailArgs', 'LifecyclePolicyPolicyDetailArgsDict']]]] policy_details: Configuration block with policy details. Detailed below. + :param pulumi.Input[Union['LifecyclePolicyResourceSelectionArgs', 'LifecyclePolicyResourceSelectionArgsDict']] resource_selection: Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + + The following arguments are optional: + :param pulumi.Input[str] resource_type: The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + :param pulumi.Input[str] status: The status of the lifecycle policy. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the Image Builder Lifecycle Policy. 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__ = _LifecyclePolicyState.__new__(_LifecyclePolicyState) + + __props__.__dict__["arn"] = arn + __props__.__dict__["description"] = description + __props__.__dict__["execution_role"] = execution_role + __props__.__dict__["name"] = name + __props__.__dict__["policy_details"] = policy_details + __props__.__dict__["resource_selection"] = resource_selection + __props__.__dict__["resource_type"] = resource_type + __props__.__dict__["status"] = status + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + return LifecyclePolicy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + Amazon Resource Name (ARN) of the lifecycle policy. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + description for the lifecycle policy. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="executionRole") + def execution_role(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) for the IAM role you create that grants Image Builder access to run lifecycle actions. More information about this role can be found [`here`](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-lifecycle-prerequisites.html#image-lifecycle-prereq-role). + """ + return pulumi.get(self, "execution_role") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the lifecycle policy to create. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="policyDetails") + def policy_details(self) -> pulumi.Output[Optional[Sequence['outputs.LifecyclePolicyPolicyDetail']]]: + """ + Configuration block with policy details. Detailed below. + """ + return pulumi.get(self, "policy_details") + + @property + @pulumi.getter(name="resourceSelection") + def resource_selection(self) -> pulumi.Output[Optional['outputs.LifecyclePolicyResourceSelection']]: + """ + Selection criteria for the resources that the lifecycle policy applies to. Detailed below. + + The following arguments are optional: + """ + return pulumi.get(self, "resource_selection") + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> pulumi.Output[str]: + """ + The type of Image Builder resource that the lifecycle policy applies to. Valid values: `AMI_IMAGE` or `CONTAINER_IMAGE`. + """ + return pulumi.get(self, "resource_type") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[str]: + """ + The status of the lifecycle policy. + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Key-value map of resource tags for the Image Builder Lifecycle Policy. 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/imagebuilder/outputs.py b/sdk/python/pulumi_aws/imagebuilder/outputs.py index 460a15ca71d..9e3d473ec12 100644 --- a/sdk/python/pulumi_aws/imagebuilder/outputs.py +++ b/sdk/python/pulumi_aws/imagebuilder/outputs.py @@ -53,6 +53,15 @@ 'InfrastructureConfigurationInstanceMetadataOptions', 'InfrastructureConfigurationLogging', 'InfrastructureConfigurationLoggingS3Logs', + 'LifecyclePolicyPolicyDetail', + 'LifecyclePolicyPolicyDetailAction', + 'LifecyclePolicyPolicyDetailActionIncludeResources', + 'LifecyclePolicyPolicyDetailExclusionRules', + 'LifecyclePolicyPolicyDetailExclusionRulesAmis', + 'LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched', + 'LifecyclePolicyPolicyDetailFilter', + 'LifecyclePolicyResourceSelection', + 'LifecyclePolicyResourceSelectionRecipe', 'GetComponentsFilterResult', 'GetContainerRecipeComponentResult', 'GetContainerRecipeComponentParameterResult', @@ -2303,6 +2312,499 @@ def s3_key_prefix(self) -> Optional[str]: return pulumi.get(self, "s3_key_prefix") +@pulumi.output_type +class LifecyclePolicyPolicyDetail(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "exclusionRules": + suggest = "exclusion_rules" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LifecyclePolicyPolicyDetail. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LifecyclePolicyPolicyDetail.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LifecyclePolicyPolicyDetail.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + action: Optional['outputs.LifecyclePolicyPolicyDetailAction'] = None, + exclusion_rules: Optional['outputs.LifecyclePolicyPolicyDetailExclusionRules'] = None, + filter: Optional['outputs.LifecyclePolicyPolicyDetailFilter'] = None): + """ + :param 'LifecyclePolicyPolicyDetailActionArgs' action: Configuration details for the policy action. + :param 'LifecyclePolicyPolicyDetailExclusionRulesArgs' exclusion_rules: Additional rules to specify resources that should be exempt from policy actions. + :param 'LifecyclePolicyPolicyDetailFilterArgs' filter: Specifies the resources that the lifecycle policy applies to. + + The following arguments are optional: + """ + if action is not None: + pulumi.set(__self__, "action", action) + if exclusion_rules is not None: + pulumi.set(__self__, "exclusion_rules", exclusion_rules) + if filter is not None: + pulumi.set(__self__, "filter", filter) + + @property + @pulumi.getter + def action(self) -> Optional['outputs.LifecyclePolicyPolicyDetailAction']: + """ + Configuration details for the policy action. + """ + return pulumi.get(self, "action") + + @property + @pulumi.getter(name="exclusionRules") + def exclusion_rules(self) -> Optional['outputs.LifecyclePolicyPolicyDetailExclusionRules']: + """ + Additional rules to specify resources that should be exempt from policy actions. + """ + return pulumi.get(self, "exclusion_rules") + + @property + @pulumi.getter + def filter(self) -> Optional['outputs.LifecyclePolicyPolicyDetailFilter']: + """ + Specifies the resources that the lifecycle policy applies to. + + The following arguments are optional: + """ + return pulumi.get(self, "filter") + + +@pulumi.output_type +class LifecyclePolicyPolicyDetailAction(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "includeResources": + suggest = "include_resources" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LifecyclePolicyPolicyDetailAction. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LifecyclePolicyPolicyDetailAction.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LifecyclePolicyPolicyDetailAction.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + type: str, + include_resources: Optional['outputs.LifecyclePolicyPolicyDetailActionIncludeResources'] = None): + """ + :param str type: Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + + The following arguments are optional: + :param 'LifecyclePolicyPolicyDetailActionIncludeResourcesArgs' include_resources: Specifies the resources that the lifecycle policy applies to. Detailed below. + """ + pulumi.set(__self__, "type", type) + if include_resources is not None: + pulumi.set(__self__, "include_resources", include_resources) + + @property + @pulumi.getter + def type(self) -> str: + """ + Specifies the lifecycle action to take. Valid values: `DELETE`, `DEPRECATE` or `DISABLE`. + + The following arguments are optional: + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="includeResources") + def include_resources(self) -> Optional['outputs.LifecyclePolicyPolicyDetailActionIncludeResources']: + """ + Specifies the resources that the lifecycle policy applies to. Detailed below. + """ + return pulumi.get(self, "include_resources") + + +@pulumi.output_type +class LifecyclePolicyPolicyDetailActionIncludeResources(dict): + def __init__(__self__, *, + amis: Optional[bool] = None, + containers: Optional[bool] = None, + snapshots: Optional[bool] = None): + """ + :param bool amis: Specifies whether the lifecycle action should apply to distributed AMIs. + :param bool containers: Specifies whether the lifecycle action should apply to distributed containers. + :param bool snapshots: Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + """ + if amis is not None: + pulumi.set(__self__, "amis", amis) + if containers is not None: + pulumi.set(__self__, "containers", containers) + if snapshots is not None: + pulumi.set(__self__, "snapshots", snapshots) + + @property + @pulumi.getter + def amis(self) -> Optional[bool]: + """ + Specifies whether the lifecycle action should apply to distributed AMIs. + """ + return pulumi.get(self, "amis") + + @property + @pulumi.getter + def containers(self) -> Optional[bool]: + """ + Specifies whether the lifecycle action should apply to distributed containers. + """ + return pulumi.get(self, "containers") + + @property + @pulumi.getter + def snapshots(self) -> Optional[bool]: + """ + Specifies whether the lifecycle action should apply to snapshots associated with distributed AMIs. + """ + return pulumi.get(self, "snapshots") + + +@pulumi.output_type +class LifecyclePolicyPolicyDetailExclusionRules(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "tagMap": + suggest = "tag_map" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LifecyclePolicyPolicyDetailExclusionRules. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LifecyclePolicyPolicyDetailExclusionRules.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LifecyclePolicyPolicyDetailExclusionRules.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + amis: Optional['outputs.LifecyclePolicyPolicyDetailExclusionRulesAmis'] = None, + tag_map: Optional[Mapping[str, str]] = None): + """ + :param 'LifecyclePolicyPolicyDetailExclusionRulesAmisArgs' amis: Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + :param Mapping[str, str] tag_map: Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + """ + if amis is not None: + pulumi.set(__self__, "amis", amis) + if tag_map is not None: + pulumi.set(__self__, "tag_map", tag_map) + + @property + @pulumi.getter + def amis(self) -> Optional['outputs.LifecyclePolicyPolicyDetailExclusionRulesAmis']: + """ + Lists configuration values that apply to AMIs that Image Builder should exclude from the lifecycle action. Detailed below. + """ + return pulumi.get(self, "amis") + + @property + @pulumi.getter(name="tagMap") + def tag_map(self) -> Optional[Mapping[str, str]]: + """ + Contains a list of tags that Image Builder uses to skip lifecycle actions for Image Builder image resources that have them. + """ + return pulumi.get(self, "tag_map") + + +@pulumi.output_type +class LifecyclePolicyPolicyDetailExclusionRulesAmis(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "isPublic": + suggest = "is_public" + elif key == "lastLaunched": + suggest = "last_launched" + elif key == "sharedAccounts": + suggest = "shared_accounts" + elif key == "tagMap": + suggest = "tag_map" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LifecyclePolicyPolicyDetailExclusionRulesAmis. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LifecyclePolicyPolicyDetailExclusionRulesAmis.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LifecyclePolicyPolicyDetailExclusionRulesAmis.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + is_public: Optional[bool] = None, + last_launched: Optional['outputs.LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched'] = None, + regions: Optional[Sequence[str]] = None, + shared_accounts: Optional[Sequence[str]] = None, + tag_map: Optional[Mapping[str, str]] = None): + """ + :param bool is_public: Configures whether public AMIs are excluded from the lifecycle action. + :param 'LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunchedArgs' last_launched: Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + :param Sequence[str] regions: Configures AWS Regions that are excluded from the lifecycle action. + :param Sequence[str] shared_accounts: Specifies AWS accounts whose resources are excluded from the lifecycle action. + :param Mapping[str, str] tag_map: Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + """ + if is_public is not None: + pulumi.set(__self__, "is_public", is_public) + if last_launched is not None: + pulumi.set(__self__, "last_launched", last_launched) + if regions is not None: + pulumi.set(__self__, "regions", regions) + if shared_accounts is not None: + pulumi.set(__self__, "shared_accounts", shared_accounts) + if tag_map is not None: + pulumi.set(__self__, "tag_map", tag_map) + + @property + @pulumi.getter(name="isPublic") + def is_public(self) -> Optional[bool]: + """ + Configures whether public AMIs are excluded from the lifecycle action. + """ + return pulumi.get(self, "is_public") + + @property + @pulumi.getter(name="lastLaunched") + def last_launched(self) -> Optional['outputs.LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched']: + """ + Specifies configuration details for Image Builder to exclude the most recent resources from lifecycle actions. Detailed below. + """ + return pulumi.get(self, "last_launched") + + @property + @pulumi.getter + def regions(self) -> Optional[Sequence[str]]: + """ + Configures AWS Regions that are excluded from the lifecycle action. + """ + return pulumi.get(self, "regions") + + @property + @pulumi.getter(name="sharedAccounts") + def shared_accounts(self) -> Optional[Sequence[str]]: + """ + Specifies AWS accounts whose resources are excluded from the lifecycle action. + """ + return pulumi.get(self, "shared_accounts") + + @property + @pulumi.getter(name="tagMap") + def tag_map(self) -> Optional[Mapping[str, str]]: + """ + Lists tags that should be excluded from lifecycle actions for the AMIs that have them. + """ + return pulumi.get(self, "tag_map") + + +@pulumi.output_type +class LifecyclePolicyPolicyDetailExclusionRulesAmisLastLaunched(dict): + def __init__(__self__, *, + unit: str, + value: int): + """ + :param str unit: Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + :param int value: The integer number of units for the time period. For example 6 (months). + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> str: + """ + Defines the unit of time that the lifecycle policy uses to calculate elapsed time since the last instance launched from the AMI. For example: days, weeks, months, or years. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + """ + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> int: + """ + The integer number of units for the time period. For example 6 (months). + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class LifecyclePolicyPolicyDetailFilter(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "retainAtLeast": + suggest = "retain_at_least" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LifecyclePolicyPolicyDetailFilter. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LifecyclePolicyPolicyDetailFilter.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LifecyclePolicyPolicyDetailFilter.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + type: str, + value: int, + retain_at_least: Optional[int] = None, + unit: Optional[str] = None): + """ + :param str type: Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + :param int value: The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + + The following arguments are optional: + :param int retain_at_least: For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + :param str unit: Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + """ + pulumi.set(__self__, "type", type) + pulumi.set(__self__, "value", value) + if retain_at_least is not None: + pulumi.set(__self__, "retain_at_least", retain_at_least) + if unit is not None: + pulumi.set(__self__, "unit", unit) + + @property + @pulumi.getter + def type(self) -> str: + """ + Filter resources based on either age or count. Valid values: `AGE` or `COUNT`. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter + def value(self) -> int: + """ + The number of units for the time period or for the count. For example, a value of 6 might refer to six months or six AMIs. + + The following arguments are optional: + """ + return pulumi.get(self, "value") + + @property + @pulumi.getter(name="retainAtLeast") + def retain_at_least(self) -> Optional[int]: + """ + For age-based filters, this is the number of resources to keep on hand after the lifecycle DELETE action is applied. Impacted resources are only deleted if you have more than this number of resources. If you have fewer resources than this number, the impacted resource is not deleted. + """ + return pulumi.get(self, "retain_at_least") + + @property + @pulumi.getter + def unit(self) -> Optional[str]: + """ + Defines the unit of time that the lifecycle policy uses to determine impacted resources. This is required for age-based rules. Valid values: `DAYS`, `WEEKS`, `MONTHS` or `YEARS`. + """ + return pulumi.get(self, "unit") + + +@pulumi.output_type +class LifecyclePolicyResourceSelection(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "tagMap": + suggest = "tag_map" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LifecyclePolicyResourceSelection. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LifecyclePolicyResourceSelection.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LifecyclePolicyResourceSelection.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + recipes: Optional[Sequence['outputs.LifecyclePolicyResourceSelectionRecipe']] = None, + tag_map: Optional[Mapping[str, str]] = None): + """ + :param Sequence['LifecyclePolicyResourceSelectionRecipeArgs'] recipes: A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + :param Mapping[str, str] tag_map: A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + """ + if recipes is not None: + pulumi.set(__self__, "recipes", recipes) + if tag_map is not None: + pulumi.set(__self__, "tag_map", tag_map) + + @property + @pulumi.getter + def recipes(self) -> Optional[Sequence['outputs.LifecyclePolicyResourceSelectionRecipe']]: + """ + A list of recipe that are used as selection criteria for the output images that the lifecycle policy applies to. Detailed below. + """ + return pulumi.get(self, "recipes") + + @property + @pulumi.getter(name="tagMap") + def tag_map(self) -> Optional[Mapping[str, str]]: + """ + A list of tags that are used as selection criteria for the Image Builder image resources that the lifecycle policy applies to. + """ + return pulumi.get(self, "tag_map") + + +@pulumi.output_type +class LifecyclePolicyResourceSelectionRecipe(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "semanticVersion": + suggest = "semantic_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LifecyclePolicyResourceSelectionRecipe. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LifecyclePolicyResourceSelectionRecipe.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LifecyclePolicyResourceSelectionRecipe.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + name: str, + semantic_version: str): + """ + :param str name: The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + :param str semantic_version: The version of the Image Builder recipe specified by the name field. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "semantic_version", semantic_version) + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of an Image Builder recipe that the lifecycle policy uses for resource selection. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="semanticVersion") + def semantic_version(self) -> str: + """ + The version of the Image Builder recipe specified by the name field. + """ + return pulumi.get(self, "semantic_version") + + @pulumi.output_type class GetComponentsFilterResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/kinesis/_inputs.py b/sdk/python/pulumi_aws/kinesis/_inputs.py index 12ea7254a5e..03c4db84cb8 100644 --- a/sdk/python/pulumi_aws/kinesis/_inputs.py +++ b/sdk/python/pulumi_aws/kinesis/_inputs.py @@ -141,6 +141,22 @@ 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptionsArgsDict', 'FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgs', 'FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfigurationArgsDict', + 'FirehoseDeliveryStreamIcebergConfigurationArgs', + 'FirehoseDeliveryStreamIcebergConfigurationArgsDict', + 'FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs', + 'FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgsDict', + 'FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs', + 'FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgsDict', + 'FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs', + 'FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgsDict', + 'FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs', + 'FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgsDict', + 'FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs', + 'FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgsDict', + 'FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs', + 'FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgsDict', + 'FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs', + 'FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgsDict', 'FirehoseDeliveryStreamKinesisSourceConfigurationArgs', 'FirehoseDeliveryStreamKinesisSourceConfigurationArgsDict', 'FirehoseDeliveryStreamMskSourceConfigurationArgs', @@ -2330,7 +2346,7 @@ def processors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgsDict(TypedDict): type: pulumi.Input[str] """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgsDict']]]] """ @@ -2345,7 +2361,7 @@ def __init__(__self__, *, type: pulumi.Input[str], parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None): """ - :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -2356,7 +2372,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -2381,7 +2397,7 @@ def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgsDict(TypedDict): parameter_name: pulumi.Input[str] """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ parameter_value: pulumi.Input[str] """ @@ -2398,7 +2414,7 @@ def __init__(__self__, *, parameter_name: pulumi.Input[str], parameter_value: pulumi.Input[str]): """ - :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param pulumi.Input[str] parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -2410,7 +2426,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> pulumi.Input[str]: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -4106,7 +4122,7 @@ def processors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgsDict(TypedDict): type: pulumi.Input[str] """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgsDict']]]] """ @@ -4121,7 +4137,7 @@ def __init__(__self__, *, type: pulumi.Input[str], parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None): """ - :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -4132,7 +4148,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -4157,7 +4173,7 @@ def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgsDict(TypedDict): parameter_name: pulumi.Input[str] """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ parameter_value: pulumi.Input[str] """ @@ -4174,7 +4190,7 @@ def __init__(__self__, *, parameter_name: pulumi.Input[str], parameter_value: pulumi.Input[str]): """ - :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param pulumi.Input[str] parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -4186,7 +4202,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> pulumi.Input[str]: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -4844,7 +4860,7 @@ def processors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorArgsDict(TypedDict): type: pulumi.Input[str] """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgsDict']]]] """ @@ -4859,7 +4875,7 @@ def __init__(__self__, *, type: pulumi.Input[str], parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None): """ - :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -4870,7 +4886,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -4895,7 +4911,7 @@ def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgsDict(TypedDict): parameter_name: pulumi.Input[str] """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ parameter_value: pulumi.Input[str] """ @@ -4912,7 +4928,7 @@ def __init__(__self__, *, parameter_name: pulumi.Input[str], parameter_value: pulumi.Input[str]): """ - :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param pulumi.Input[str] parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -4924,7 +4940,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> pulumi.Input[str]: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -5389,6 +5405,797 @@ def secret_arn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "secret_arn", value) +if not MYPY: + class FirehoseDeliveryStreamIcebergConfigurationArgsDict(TypedDict): + catalog_arn: pulumi.Input[str] + """ + Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + """ + role_arn: pulumi.Input[str] + """ + The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + """ + s3_configuration: pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgsDict'] + """ + The S3 Configuration. See `s3_configuration` block below for details. + """ + buffering_interval: NotRequired[pulumi.Input[int]] + """ + Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + """ + buffering_size: NotRequired[pulumi.Input[int]] + """ + Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + """ + cloudwatch_logging_options: NotRequired[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgsDict']] + """ + The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + """ + destination_table_configurations: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgsDict']]]] + """ + Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + """ + processing_configuration: NotRequired[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgsDict']] + """ + The data processing configuration. See `processing_configuration` block below for details. + """ + retry_duration: NotRequired[pulumi.Input[int]] + """ + The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + """ + s3_backup_mode: NotRequired[pulumi.Input[str]] +elif False: + FirehoseDeliveryStreamIcebergConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamIcebergConfigurationArgs: + def __init__(__self__, *, + catalog_arn: pulumi.Input[str], + role_arn: pulumi.Input[str], + s3_configuration: pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs'], + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs']] = None, + destination_table_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs']]]] = None, + processing_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs']] = None, + retry_duration: Optional[pulumi.Input[int]] = None, + s3_backup_mode: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] catalog_arn: Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + :param pulumi.Input[str] role_arn: The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + :param pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs'] s3_configuration: The S3 Configuration. See `s3_configuration` block below for details. + :param pulumi.Input[int] buffering_interval: Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + :param pulumi.Input[int] buffering_size: Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + :param pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs'] cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs']]] destination_table_configurations: Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + :param pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs'] processing_configuration: The data processing configuration. See `processing_configuration` block below for details. + :param pulumi.Input[int] retry_duration: The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + """ + pulumi.set(__self__, "catalog_arn", catalog_arn) + pulumi.set(__self__, "role_arn", role_arn) + pulumi.set(__self__, "s3_configuration", s3_configuration) + if buffering_interval is not None: + pulumi.set(__self__, "buffering_interval", buffering_interval) + if buffering_size is not None: + pulumi.set(__self__, "buffering_size", buffering_size) + if cloudwatch_logging_options is not None: + pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + if destination_table_configurations is not None: + pulumi.set(__self__, "destination_table_configurations", destination_table_configurations) + if processing_configuration is not None: + pulumi.set(__self__, "processing_configuration", processing_configuration) + if retry_duration is not None: + pulumi.set(__self__, "retry_duration", retry_duration) + if s3_backup_mode is not None: + pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + + @property + @pulumi.getter(name="catalogArn") + def catalog_arn(self) -> pulumi.Input[str]: + """ + Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + """ + return pulumi.get(self, "catalog_arn") + + @catalog_arn.setter + def catalog_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "catalog_arn", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + """ + The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="s3Configuration") + def s3_configuration(self) -> pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs']: + """ + The S3 Configuration. See `s3_configuration` block below for details. + """ + return pulumi.get(self, "s3_configuration") + + @s3_configuration.setter + def s3_configuration(self, value: pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs']): + pulumi.set(self, "s3_configuration", value) + + @property + @pulumi.getter(name="bufferingInterval") + def buffering_interval(self) -> Optional[pulumi.Input[int]]: + """ + Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + """ + return pulumi.get(self, "buffering_interval") + + @buffering_interval.setter + def buffering_interval(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "buffering_interval", value) + + @property + @pulumi.getter(name="bufferingSize") + def buffering_size(self) -> Optional[pulumi.Input[int]]: + """ + Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + """ + return pulumi.get(self, "buffering_size") + + @buffering_size.setter + def buffering_size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "buffering_size", value) + + @property + @pulumi.getter(name="cloudwatchLoggingOptions") + def cloudwatch_logging_options(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs']]: + """ + The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + """ + return pulumi.get(self, "cloudwatch_logging_options") + + @cloudwatch_logging_options.setter + def cloudwatch_logging_options(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs']]): + pulumi.set(self, "cloudwatch_logging_options", value) + + @property + @pulumi.getter(name="destinationTableConfigurations") + def destination_table_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs']]]]: + """ + Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + """ + return pulumi.get(self, "destination_table_configurations") + + @destination_table_configurations.setter + def destination_table_configurations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs']]]]): + pulumi.set(self, "destination_table_configurations", value) + + @property + @pulumi.getter(name="processingConfiguration") + def processing_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs']]: + """ + The data processing configuration. See `processing_configuration` block below for details. + """ + return pulumi.get(self, "processing_configuration") + + @processing_configuration.setter + def processing_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs']]): + pulumi.set(self, "processing_configuration", value) + + @property + @pulumi.getter(name="retryDuration") + def retry_duration(self) -> Optional[pulumi.Input[int]]: + """ + The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + """ + return pulumi.get(self, "retry_duration") + + @retry_duration.setter + def retry_duration(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "retry_duration", value) + + @property + @pulumi.getter(name="s3BackupMode") + def s3_backup_mode(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "s3_backup_mode") + + @s3_backup_mode.setter + def s3_backup_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_backup_mode", value) + + +if not MYPY: + class FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgsDict(TypedDict): + enabled: NotRequired[pulumi.Input[bool]] + """ + Enables or disables the logging. Defaults to `false`. + """ + log_group_name: NotRequired[pulumi.Input[str]] + """ + The CloudWatch group name for logging. This value is required if `enabled` is true. + """ + log_stream_name: NotRequired[pulumi.Input[str]] + """ + The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ +elif False: + FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] enabled: Enables or disables the logging. Defaults to `false`. + :param pulumi.Input[str] log_group_name: The CloudWatch group name for logging. This value is required if `enabled` is true. + :param pulumi.Input[str] log_stream_name: The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if log_group_name is not None: + pulumi.set(__self__, "log_group_name", log_group_name) + if log_stream_name is not None: + pulumi.set(__self__, "log_stream_name", log_stream_name) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables or disables the logging. Defaults to `false`. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="logGroupName") + def log_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The CloudWatch group name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_group_name") + + @log_group_name.setter + def log_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "log_group_name", value) + + @property + @pulumi.getter(name="logStreamName") + def log_stream_name(self) -> Optional[pulumi.Input[str]]: + """ + The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_stream_name") + + @log_stream_name.setter + def log_stream_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "log_stream_name", value) + + +if not MYPY: + class FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgsDict(TypedDict): + database_name: pulumi.Input[str] + """ + The name of the Apache Iceberg database. + """ + table_name: pulumi.Input[str] + """ + The name of the Apache Iceberg Table. + """ + s3_error_output_prefix: NotRequired[pulumi.Input[str]] + """ + The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + """ + unique_keys: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + """ +elif False: + FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs: + def __init__(__self__, *, + database_name: pulumi.Input[str], + table_name: pulumi.Input[str], + s3_error_output_prefix: Optional[pulumi.Input[str]] = None, + unique_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[str] database_name: The name of the Apache Iceberg database. + :param pulumi.Input[str] table_name: The name of the Apache Iceberg Table. + :param pulumi.Input[str] s3_error_output_prefix: The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + :param pulumi.Input[Sequence[pulumi.Input[str]]] unique_keys: A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + """ + pulumi.set(__self__, "database_name", database_name) + pulumi.set(__self__, "table_name", table_name) + if s3_error_output_prefix is not None: + pulumi.set(__self__, "s3_error_output_prefix", s3_error_output_prefix) + if unique_keys is not None: + pulumi.set(__self__, "unique_keys", unique_keys) + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> pulumi.Input[str]: + """ + The name of the Apache Iceberg database. + """ + return pulumi.get(self, "database_name") + + @database_name.setter + def database_name(self, value: pulumi.Input[str]): + pulumi.set(self, "database_name", value) + + @property + @pulumi.getter(name="tableName") + def table_name(self) -> pulumi.Input[str]: + """ + The name of the Apache Iceberg Table. + """ + return pulumi.get(self, "table_name") + + @table_name.setter + def table_name(self, value: pulumi.Input[str]): + pulumi.set(self, "table_name", value) + + @property + @pulumi.getter(name="s3ErrorOutputPrefix") + def s3_error_output_prefix(self) -> Optional[pulumi.Input[str]]: + """ + The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + """ + return pulumi.get(self, "s3_error_output_prefix") + + @s3_error_output_prefix.setter + def s3_error_output_prefix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_error_output_prefix", value) + + @property + @pulumi.getter(name="uniqueKeys") + def unique_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + """ + return pulumi.get(self, "unique_keys") + + @unique_keys.setter + def unique_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "unique_keys", value) + + +if not MYPY: + class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgsDict(TypedDict): + enabled: NotRequired[pulumi.Input[bool]] + """ + Enables or disables data processing. + """ + processors: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgsDict']]]] + """ + Specifies the data processors as multiple blocks. See `processors` block below for details. + """ +elif False: + FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + processors: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs']]]] = None): + """ + :param pulumi.Input[bool] enabled: Enables or disables data processing. + :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs']]] processors: Specifies the data processors as multiple blocks. See `processors` block below for details. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if processors is not None: + pulumi.set(__self__, "processors", processors) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables or disables data processing. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter + def processors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs']]]]: + """ + Specifies the data processors as multiple blocks. See `processors` block below for details. + """ + return pulumi.get(self, "processors") + + @processors.setter + def processors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs']]]]): + pulumi.set(self, "processors", value) + + +if not MYPY: + class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgsDict(TypedDict): + type: pulumi.Input[str] + """ + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + """ + parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgsDict']]]] + """ + Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + """ +elif False: + FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs: + def __init__(__self__, *, + type: pulumi.Input[str], + parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None): + """ + :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + """ + pulumi.set(__self__, "type", type) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs']]]]: + """ + Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + """ + return pulumi.get(self, "parameters") + + @parameters.setter + def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs']]]]): + pulumi.set(self, "parameters", value) + + +if not MYPY: + class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgsDict(TypedDict): + parameter_name: pulumi.Input[str] + """ + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + """ + parameter_value: pulumi.Input[str] + """ + Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + + > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + """ +elif False: + FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs: + def __init__(__self__, *, + parameter_name: pulumi.Input[str], + parameter_value: pulumi.Input[str]): + """ + :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + :param pulumi.Input[str] parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + + > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + """ + pulumi.set(__self__, "parameter_name", parameter_name) + pulumi.set(__self__, "parameter_value", parameter_value) + + @property + @pulumi.getter(name="parameterName") + def parameter_name(self) -> pulumi.Input[str]: + """ + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + """ + return pulumi.get(self, "parameter_name") + + @parameter_name.setter + def parameter_name(self, value: pulumi.Input[str]): + pulumi.set(self, "parameter_name", value) + + @property + @pulumi.getter(name="parameterValue") + def parameter_value(self) -> pulumi.Input[str]: + """ + Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + + > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + """ + return pulumi.get(self, "parameter_value") + + @parameter_value.setter + def parameter_value(self, value: pulumi.Input[str]): + pulumi.set(self, "parameter_value", value) + + +if not MYPY: + class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgsDict(TypedDict): + bucket_arn: pulumi.Input[str] + """ + The ARN of the S3 bucket + """ + role_arn: pulumi.Input[str] + """ + The ARN of the AWS credentials. + """ + buffering_interval: NotRequired[pulumi.Input[int]] + """ + Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + """ + buffering_size: NotRequired[pulumi.Input[int]] + """ + Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + """ + cloudwatch_logging_options: NotRequired[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgsDict']] + """ + The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + """ + compression_format: NotRequired[pulumi.Input[str]] + """ + The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + """ + error_output_prefix: NotRequired[pulumi.Input[str]] + """ + Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + """ + kms_key_arn: NotRequired[pulumi.Input[str]] + """ + Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + be used. + """ + prefix: NotRequired[pulumi.Input[str]] + """ + The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + """ +elif False: + FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs: + def __init__(__self__, *, + bucket_arn: pulumi.Input[str], + role_arn: pulumi.Input[str], + buffering_interval: Optional[pulumi.Input[int]] = None, + buffering_size: Optional[pulumi.Input[int]] = None, + cloudwatch_logging_options: Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']] = None, + compression_format: Optional[pulumi.Input[str]] = None, + error_output_prefix: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] bucket_arn: The ARN of the S3 bucket + :param pulumi.Input[str] role_arn: The ARN of the AWS credentials. + :param pulumi.Input[int] buffering_interval: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + :param pulumi.Input[int] buffering_size: Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + :param pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs'] cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + :param pulumi.Input[str] compression_format: The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + :param pulumi.Input[str] error_output_prefix: Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + :param pulumi.Input[str] kms_key_arn: Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + be used. + :param pulumi.Input[str] prefix: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + """ + pulumi.set(__self__, "bucket_arn", bucket_arn) + pulumi.set(__self__, "role_arn", role_arn) + if buffering_interval is not None: + pulumi.set(__self__, "buffering_interval", buffering_interval) + if buffering_size is not None: + pulumi.set(__self__, "buffering_size", buffering_size) + if cloudwatch_logging_options is not None: + pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + if compression_format is not None: + pulumi.set(__self__, "compression_format", compression_format) + if error_output_prefix is not None: + pulumi.set(__self__, "error_output_prefix", error_output_prefix) + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + if prefix is not None: + pulumi.set(__self__, "prefix", prefix) + + @property + @pulumi.getter(name="bucketArn") + def bucket_arn(self) -> pulumi.Input[str]: + """ + The ARN of the S3 bucket + """ + return pulumi.get(self, "bucket_arn") + + @bucket_arn.setter + def bucket_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "bucket_arn", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + """ + The ARN of the AWS credentials. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="bufferingInterval") + def buffering_interval(self) -> Optional[pulumi.Input[int]]: + """ + Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + """ + return pulumi.get(self, "buffering_interval") + + @buffering_interval.setter + def buffering_interval(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "buffering_interval", value) + + @property + @pulumi.getter(name="bufferingSize") + def buffering_size(self) -> Optional[pulumi.Input[int]]: + """ + Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + """ + return pulumi.get(self, "buffering_size") + + @buffering_size.setter + def buffering_size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "buffering_size", value) + + @property + @pulumi.getter(name="cloudwatchLoggingOptions") + def cloudwatch_logging_options(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']]: + """ + The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + """ + return pulumi.get(self, "cloudwatch_logging_options") + + @cloudwatch_logging_options.setter + def cloudwatch_logging_options(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs']]): + pulumi.set(self, "cloudwatch_logging_options", value) + + @property + @pulumi.getter(name="compressionFormat") + def compression_format(self) -> Optional[pulumi.Input[str]]: + """ + The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + """ + return pulumi.get(self, "compression_format") + + @compression_format.setter + def compression_format(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "compression_format", value) + + @property + @pulumi.getter(name="errorOutputPrefix") + def error_output_prefix(self) -> Optional[pulumi.Input[str]]: + """ + Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + """ + return pulumi.get(self, "error_output_prefix") + + @error_output_prefix.setter + def error_output_prefix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "error_output_prefix", value) + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + be used. + """ + return pulumi.get(self, "kms_key_arn") + + @kms_key_arn.setter + def kms_key_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_arn", value) + + @property + @pulumi.getter + def prefix(self) -> Optional[pulumi.Input[str]]: + """ + The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + """ + return pulumi.get(self, "prefix") + + @prefix.setter + def prefix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "prefix", value) + + +if not MYPY: + class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgsDict(TypedDict): + enabled: NotRequired[pulumi.Input[bool]] + """ + Enables or disables the logging. Defaults to `false`. + """ + log_group_name: NotRequired[pulumi.Input[str]] + """ + The CloudWatch group name for logging. This value is required if `enabled` is true. + """ + log_stream_name: NotRequired[pulumi.Input[str]] + """ + The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ +elif False: + FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + log_group_name: Optional[pulumi.Input[str]] = None, + log_stream_name: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] enabled: Enables or disables the logging. Defaults to `false`. + :param pulumi.Input[str] log_group_name: The CloudWatch group name for logging. This value is required if `enabled` is true. + :param pulumi.Input[str] log_stream_name: The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if log_group_name is not None: + pulumi.set(__self__, "log_group_name", log_group_name) + if log_stream_name is not None: + pulumi.set(__self__, "log_stream_name", log_stream_name) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enables or disables the logging. Defaults to `false`. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="logGroupName") + def log_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The CloudWatch group name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_group_name") + + @log_group_name.setter + def log_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "log_group_name", value) + + @property + @pulumi.getter(name="logStreamName") + def log_stream_name(self) -> Optional[pulumi.Input[str]]: + """ + The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_stream_name") + + @log_stream_name.setter + def log_stream_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "log_stream_name", value) + + if not MYPY: class FirehoseDeliveryStreamKinesisSourceConfigurationArgsDict(TypedDict): kinesis_stream_arn: pulumi.Input[str] @@ -6026,7 +6833,7 @@ def processors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgsDict(TypedDict): type: pulumi.Input[str] """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgsDict']]]] """ @@ -6041,7 +6848,7 @@ def __init__(__self__, *, type: pulumi.Input[str], parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None): """ - :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -6052,7 +6859,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -6077,7 +6884,7 @@ def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgsDict(TypedDict): parameter_name: pulumi.Input[str] """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ parameter_value: pulumi.Input[str] """ @@ -6094,7 +6901,7 @@ def __init__(__self__, *, parameter_name: pulumi.Input[str], parameter_value: pulumi.Input[str]): """ - :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param pulumi.Input[str] parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -6106,7 +6913,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> pulumi.Input[str]: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -6835,7 +7642,7 @@ def processors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgsDict(TypedDict): type: pulumi.Input[str] """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgsDict']]]] """ @@ -6850,7 +7657,7 @@ def __init__(__self__, *, type: pulumi.Input[str], parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None): """ - :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -6861,7 +7668,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -6886,7 +7693,7 @@ def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgsDict(TypedDict): parameter_name: pulumi.Input[str] """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ parameter_value: pulumi.Input[str] """ @@ -6903,7 +7710,7 @@ def __init__(__self__, *, parameter_name: pulumi.Input[str], parameter_value: pulumi.Input[str]): """ - :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param pulumi.Input[str] parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -6915,7 +7722,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> pulumi.Input[str]: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -7700,7 +8507,7 @@ def processors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorArgsDict(TypedDict): type: pulumi.Input[str] """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgsDict']]]] """ @@ -7715,7 +8522,7 @@ def __init__(__self__, *, type: pulumi.Input[str], parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None): """ - :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -7726,7 +8533,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -7751,7 +8558,7 @@ def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgsDict(TypedDict): parameter_name: pulumi.Input[str] """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ parameter_value: pulumi.Input[str] """ @@ -7768,7 +8575,7 @@ def __init__(__self__, *, parameter_name: pulumi.Input[str], parameter_value: pulumi.Input[str]): """ - :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param pulumi.Input[str] parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -7780,7 +8587,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> pulumi.Input[str]: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -9006,7 +9813,7 @@ def processors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorArgsDict(TypedDict): type: pulumi.Input[str] """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgsDict']]]] """ @@ -9021,7 +9828,7 @@ def __init__(__self__, *, type: pulumi.Input[str], parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None): """ - :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -9032,7 +9839,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -9057,7 +9864,7 @@ def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgsDict(TypedDict): parameter_name: pulumi.Input[str] """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ parameter_value: pulumi.Input[str] """ @@ -9074,7 +9881,7 @@ def __init__(__self__, *, parameter_name: pulumi.Input[str], parameter_value: pulumi.Input[str]): """ - :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param pulumi.Input[str] parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -9086,7 +9893,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> pulumi.Input[str]: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -9906,7 +10713,7 @@ def processors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorArgsDict(TypedDict): type: pulumi.Input[str] """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgsDict']]]] """ @@ -9921,7 +10728,7 @@ def __init__(__self__, *, type: pulumi.Input[str], parameters: Optional[pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs']]]] = None): """ - :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param pulumi.Input[Sequence[pulumi.Input['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs']]] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -9932,7 +10739,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> pulumi.Input[str]: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -9957,7 +10764,7 @@ def parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Firehos class FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgsDict(TypedDict): parameter_name: pulumi.Input[str] """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ parameter_value: pulumi.Input[str] """ @@ -9974,7 +10781,7 @@ def __init__(__self__, *, parameter_name: pulumi.Input[str], parameter_value: pulumi.Input[str]): """ - :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param pulumi.Input[str] parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param pulumi.Input[str] parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -9986,7 +10793,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> pulumi.Input[str]: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") diff --git a/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py b/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py index d1964d39e9c..3a80bd2b3e2 100644 --- a/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py +++ b/sdk/python/pulumi_aws/kinesis/firehose_delivery_stream.py @@ -27,6 +27,7 @@ def __init__(__self__, *, elasticsearch_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs']] = None, extended_s3_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationArgs']] = None, http_endpoint_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']] = None, + iceberg_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationArgs']] = None, kinesis_source_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']] = None, msk_source_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs']] = None, name: Optional[pulumi.Input[str]] = None, @@ -45,6 +46,7 @@ def __init__(__self__, *, :param pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs'] elasticsearch_configuration: Configuration options when `destination` is `elasticsearch`. See `elasticsearch_configuration` block below for details. :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationArgs'] extended_s3_configuration: Enhanced configuration options for the s3 destination. See `extended_s3_configuration` block below for details. :param pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs'] http_endpoint_configuration: Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details. + :param pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationArgs'] iceberg_configuration: Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. :param pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs'] kinesis_source_configuration: The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. :param pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs'] msk_source_configuration: The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `msk_source_configuration` block below for details. :param pulumi.Input[str] name: A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. @@ -69,6 +71,8 @@ def __init__(__self__, *, pulumi.set(__self__, "extended_s3_configuration", extended_s3_configuration) if http_endpoint_configuration is not None: pulumi.set(__self__, "http_endpoint_configuration", http_endpoint_configuration) + if iceberg_configuration is not None: + pulumi.set(__self__, "iceberg_configuration", iceberg_configuration) if kinesis_source_configuration is not None: pulumi.set(__self__, "kinesis_source_configuration", kinesis_source_configuration) if msk_source_configuration is not None: @@ -161,6 +165,18 @@ def http_endpoint_configuration(self) -> Optional[pulumi.Input['FirehoseDelivery def http_endpoint_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']]): pulumi.set(self, "http_endpoint_configuration", value) + @property + @pulumi.getter(name="icebergConfiguration") + def iceberg_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationArgs']]: + """ + Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + """ + return pulumi.get(self, "iceberg_configuration") + + @iceberg_configuration.setter + def iceberg_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationArgs']]): + pulumi.set(self, "iceberg_configuration", value) + @property @pulumi.getter(name="kinesisSourceConfiguration") def kinesis_source_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']]: @@ -302,6 +318,7 @@ def __init__(__self__, *, elasticsearch_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs']] = None, extended_s3_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationArgs']] = None, http_endpoint_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']] = None, + iceberg_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationArgs']] = None, kinesis_source_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']] = None, msk_source_configuration: Optional[pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs']] = None, name: Optional[pulumi.Input[str]] = None, @@ -321,6 +338,7 @@ def __init__(__self__, *, :param pulumi.Input['FirehoseDeliveryStreamElasticsearchConfigurationArgs'] elasticsearch_configuration: Configuration options when `destination` is `elasticsearch`. See `elasticsearch_configuration` block below for details. :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationArgs'] extended_s3_configuration: Enhanced configuration options for the s3 destination. See `extended_s3_configuration` block below for details. :param pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs'] http_endpoint_configuration: Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details. + :param pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationArgs'] iceberg_configuration: Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. :param pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs'] kinesis_source_configuration: The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. :param pulumi.Input['FirehoseDeliveryStreamMskSourceConfigurationArgs'] msk_source_configuration: The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `msk_source_configuration` block below for details. :param pulumi.Input[str] name: A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. @@ -347,6 +365,8 @@ def __init__(__self__, *, pulumi.set(__self__, "extended_s3_configuration", extended_s3_configuration) if http_endpoint_configuration is not None: pulumi.set(__self__, "http_endpoint_configuration", http_endpoint_configuration) + if iceberg_configuration is not None: + pulumi.set(__self__, "iceberg_configuration", iceberg_configuration) if kinesis_source_configuration is not None: pulumi.set(__self__, "kinesis_source_configuration", kinesis_source_configuration) if msk_source_configuration is not None: @@ -444,6 +464,18 @@ def http_endpoint_configuration(self) -> Optional[pulumi.Input['FirehoseDelivery def http_endpoint_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamHttpEndpointConfigurationArgs']]): pulumi.set(self, "http_endpoint_configuration", value) + @property + @pulumi.getter(name="icebergConfiguration") + def iceberg_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationArgs']]: + """ + Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + """ + return pulumi.get(self, "iceberg_configuration") + + @iceberg_configuration.setter + def iceberg_configuration(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamIcebergConfigurationArgs']]): + pulumi.set(self, "iceberg_configuration", value) + @property @pulumi.getter(name="kinesisSourceConfiguration") def kinesis_source_configuration(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamKinesisSourceConfigurationArgs']]: @@ -600,6 +632,7 @@ def __init__(__self__, elasticsearch_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamElasticsearchConfigurationArgs', 'FirehoseDeliveryStreamElasticsearchConfigurationArgsDict']]] = None, extended_s3_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamExtendedS3ConfigurationArgs', 'FirehoseDeliveryStreamExtendedS3ConfigurationArgsDict']]] = None, http_endpoint_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamHttpEndpointConfigurationArgs', 'FirehoseDeliveryStreamHttpEndpointConfigurationArgsDict']]] = None, + iceberg_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamIcebergConfigurationArgs', 'FirehoseDeliveryStreamIcebergConfigurationArgsDict']]] = None, kinesis_source_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamKinesisSourceConfigurationArgs', 'FirehoseDeliveryStreamKinesisSourceConfigurationArgsDict']]] = None, msk_source_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamMskSourceConfigurationArgs', 'FirehoseDeliveryStreamMskSourceConfigurationArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, @@ -1077,6 +1110,68 @@ def __init__(__self__, }) ``` + ### Iceberg Destination + + ```python + import pulumi + import pulumi_aws as aws + + current = aws.get_caller_identity() + current_get_partition = aws.get_partition() + current_get_region = aws.get_region() + bucket = aws.s3.BucketV2("bucket", + bucket="test-bucket", + force_destroy=True) + test = aws.glue.CatalogDatabase("test", name="test") + test_catalog_table = aws.glue.CatalogTable("test", + name="test", + database_name=test.name, + parameters={ + "format": "parquet", + }, + table_type="EXTERNAL_TABLE", + open_table_format_input={ + "iceberg_input": { + "metadata_operation": "CREATE", + "version": "2", + }, + }, + storage_descriptor={ + "location": bucket.id.apply(lambda id: f"s3://{id}"), + "columns": [{ + "name": "my_column_1", + "type": "int", + }], + }) + test_stream = aws.kinesis.FirehoseDeliveryStream("test_stream", + name="kinesis-firehose-test-stream", + destination="iceberg", + iceberg_configuration={ + "role_arn": firehose_role["arn"], + "catalog_arn": f"arn:{current_get_partition.partition}:glue:{current_get_region.name}:{current.account_id}:catalog", + "buffering_size": 10, + "buffering_interval": 400, + "s3_configuration": { + "role_arn": firehose_role["arn"], + "bucket_arn": bucket.arn, + }, + "destination_table_configurations": [{ + "database_name": test.name, + "table_name": test_catalog_table.name, + }], + "processing_configuration": { + "enabled": True, + "processors": [{ + "type": "Lambda", + "parameters": [{ + "parameter_name": "LambdaArn", + "parameter_value": f"{lambda_processor['arn']}:$LATEST", + }], + }], + }, + }) + ``` + ### Splunk Destination ```python @@ -1187,6 +1282,7 @@ def __init__(__self__, :param pulumi.Input[Union['FirehoseDeliveryStreamElasticsearchConfigurationArgs', 'FirehoseDeliveryStreamElasticsearchConfigurationArgsDict']] elasticsearch_configuration: Configuration options when `destination` is `elasticsearch`. See `elasticsearch_configuration` block below for details. :param pulumi.Input[Union['FirehoseDeliveryStreamExtendedS3ConfigurationArgs', 'FirehoseDeliveryStreamExtendedS3ConfigurationArgsDict']] extended_s3_configuration: Enhanced configuration options for the s3 destination. See `extended_s3_configuration` block below for details. :param pulumi.Input[Union['FirehoseDeliveryStreamHttpEndpointConfigurationArgs', 'FirehoseDeliveryStreamHttpEndpointConfigurationArgsDict']] http_endpoint_configuration: Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details. + :param pulumi.Input[Union['FirehoseDeliveryStreamIcebergConfigurationArgs', 'FirehoseDeliveryStreamIcebergConfigurationArgsDict']] iceberg_configuration: Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. :param pulumi.Input[Union['FirehoseDeliveryStreamKinesisSourceConfigurationArgs', 'FirehoseDeliveryStreamKinesisSourceConfigurationArgsDict']] kinesis_source_configuration: The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. :param pulumi.Input[Union['FirehoseDeliveryStreamMskSourceConfigurationArgs', 'FirehoseDeliveryStreamMskSourceConfigurationArgsDict']] msk_source_configuration: The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `msk_source_configuration` block below for details. :param pulumi.Input[str] name: A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. @@ -1671,6 +1767,68 @@ def __init__(__self__, }) ``` + ### Iceberg Destination + + ```python + import pulumi + import pulumi_aws as aws + + current = aws.get_caller_identity() + current_get_partition = aws.get_partition() + current_get_region = aws.get_region() + bucket = aws.s3.BucketV2("bucket", + bucket="test-bucket", + force_destroy=True) + test = aws.glue.CatalogDatabase("test", name="test") + test_catalog_table = aws.glue.CatalogTable("test", + name="test", + database_name=test.name, + parameters={ + "format": "parquet", + }, + table_type="EXTERNAL_TABLE", + open_table_format_input={ + "iceberg_input": { + "metadata_operation": "CREATE", + "version": "2", + }, + }, + storage_descriptor={ + "location": bucket.id.apply(lambda id: f"s3://{id}"), + "columns": [{ + "name": "my_column_1", + "type": "int", + }], + }) + test_stream = aws.kinesis.FirehoseDeliveryStream("test_stream", + name="kinesis-firehose-test-stream", + destination="iceberg", + iceberg_configuration={ + "role_arn": firehose_role["arn"], + "catalog_arn": f"arn:{current_get_partition.partition}:glue:{current_get_region.name}:{current.account_id}:catalog", + "buffering_size": 10, + "buffering_interval": 400, + "s3_configuration": { + "role_arn": firehose_role["arn"], + "bucket_arn": bucket.arn, + }, + "destination_table_configurations": [{ + "database_name": test.name, + "table_name": test_catalog_table.name, + }], + "processing_configuration": { + "enabled": True, + "processors": [{ + "type": "Lambda", + "parameters": [{ + "parameter_name": "LambdaArn", + "parameter_value": f"{lambda_processor['arn']}:$LATEST", + }], + }], + }, + }) + ``` + ### Splunk Destination ```python @@ -1795,6 +1953,7 @@ def _internal_init(__self__, elasticsearch_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamElasticsearchConfigurationArgs', 'FirehoseDeliveryStreamElasticsearchConfigurationArgsDict']]] = None, extended_s3_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamExtendedS3ConfigurationArgs', 'FirehoseDeliveryStreamExtendedS3ConfigurationArgsDict']]] = None, http_endpoint_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamHttpEndpointConfigurationArgs', 'FirehoseDeliveryStreamHttpEndpointConfigurationArgsDict']]] = None, + iceberg_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamIcebergConfigurationArgs', 'FirehoseDeliveryStreamIcebergConfigurationArgsDict']]] = None, kinesis_source_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamKinesisSourceConfigurationArgs', 'FirehoseDeliveryStreamKinesisSourceConfigurationArgsDict']]] = None, msk_source_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamMskSourceConfigurationArgs', 'FirehoseDeliveryStreamMskSourceConfigurationArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, @@ -1823,6 +1982,7 @@ def _internal_init(__self__, __props__.__dict__["elasticsearch_configuration"] = elasticsearch_configuration __props__.__dict__["extended_s3_configuration"] = extended_s3_configuration __props__.__dict__["http_endpoint_configuration"] = http_endpoint_configuration + __props__.__dict__["iceberg_configuration"] = iceberg_configuration __props__.__dict__["kinesis_source_configuration"] = kinesis_source_configuration __props__.__dict__["msk_source_configuration"] = msk_source_configuration __props__.__dict__["name"] = name @@ -1851,6 +2011,7 @@ def get(resource_name: str, elasticsearch_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamElasticsearchConfigurationArgs', 'FirehoseDeliveryStreamElasticsearchConfigurationArgsDict']]] = None, extended_s3_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamExtendedS3ConfigurationArgs', 'FirehoseDeliveryStreamExtendedS3ConfigurationArgsDict']]] = None, http_endpoint_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamHttpEndpointConfigurationArgs', 'FirehoseDeliveryStreamHttpEndpointConfigurationArgsDict']]] = None, + iceberg_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamIcebergConfigurationArgs', 'FirehoseDeliveryStreamIcebergConfigurationArgsDict']]] = None, kinesis_source_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamKinesisSourceConfigurationArgs', 'FirehoseDeliveryStreamKinesisSourceConfigurationArgsDict']]] = None, msk_source_configuration: Optional[pulumi.Input[Union['FirehoseDeliveryStreamMskSourceConfigurationArgs', 'FirehoseDeliveryStreamMskSourceConfigurationArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, @@ -1875,6 +2036,7 @@ def get(resource_name: str, :param pulumi.Input[Union['FirehoseDeliveryStreamElasticsearchConfigurationArgs', 'FirehoseDeliveryStreamElasticsearchConfigurationArgsDict']] elasticsearch_configuration: Configuration options when `destination` is `elasticsearch`. See `elasticsearch_configuration` block below for details. :param pulumi.Input[Union['FirehoseDeliveryStreamExtendedS3ConfigurationArgs', 'FirehoseDeliveryStreamExtendedS3ConfigurationArgsDict']] extended_s3_configuration: Enhanced configuration options for the s3 destination. See `extended_s3_configuration` block below for details. :param pulumi.Input[Union['FirehoseDeliveryStreamHttpEndpointConfigurationArgs', 'FirehoseDeliveryStreamHttpEndpointConfigurationArgsDict']] http_endpoint_configuration: Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details. + :param pulumi.Input[Union['FirehoseDeliveryStreamIcebergConfigurationArgs', 'FirehoseDeliveryStreamIcebergConfigurationArgsDict']] iceberg_configuration: Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. :param pulumi.Input[Union['FirehoseDeliveryStreamKinesisSourceConfigurationArgs', 'FirehoseDeliveryStreamKinesisSourceConfigurationArgsDict']] kinesis_source_configuration: The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details. :param pulumi.Input[Union['FirehoseDeliveryStreamMskSourceConfigurationArgs', 'FirehoseDeliveryStreamMskSourceConfigurationArgsDict']] msk_source_configuration: The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `msk_source_configuration` block below for details. :param pulumi.Input[str] name: A name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details. @@ -1899,6 +2061,7 @@ def get(resource_name: str, __props__.__dict__["elasticsearch_configuration"] = elasticsearch_configuration __props__.__dict__["extended_s3_configuration"] = extended_s3_configuration __props__.__dict__["http_endpoint_configuration"] = http_endpoint_configuration + __props__.__dict__["iceberg_configuration"] = iceberg_configuration __props__.__dict__["kinesis_source_configuration"] = kinesis_source_configuration __props__.__dict__["msk_source_configuration"] = msk_source_configuration __props__.__dict__["name"] = name @@ -1958,6 +2121,14 @@ def http_endpoint_configuration(self) -> pulumi.Output[Optional['outputs.Firehos """ return pulumi.get(self, "http_endpoint_configuration") + @property + @pulumi.getter(name="icebergConfiguration") + def iceberg_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseDeliveryStreamIcebergConfiguration']]: + """ + Configuration options when `destination` is `iceberg`. See `iceberg_configuration` block below for details. + """ + return pulumi.get(self, "iceberg_configuration") + @property @pulumi.getter(name="kinesisSourceConfiguration") def kinesis_source_configuration(self) -> pulumi.Output[Optional['outputs.FirehoseDeliveryStreamKinesisSourceConfiguration']]: diff --git a/sdk/python/pulumi_aws/kinesis/outputs.py b/sdk/python/pulumi_aws/kinesis/outputs.py index b844d422fa1..fe888b2f87e 100644 --- a/sdk/python/pulumi_aws/kinesis/outputs.py +++ b/sdk/python/pulumi_aws/kinesis/outputs.py @@ -79,6 +79,14 @@ 'FirehoseDeliveryStreamHttpEndpointConfigurationS3Configuration', 'FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationCloudwatchLoggingOptions', 'FirehoseDeliveryStreamHttpEndpointConfigurationSecretsManagerConfiguration', + 'FirehoseDeliveryStreamIcebergConfiguration', + 'FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions', + 'FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration', + 'FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration', + 'FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor', + 'FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter', + 'FirehoseDeliveryStreamIcebergConfigurationS3Configuration', + 'FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions', 'FirehoseDeliveryStreamKinesisSourceConfiguration', 'FirehoseDeliveryStreamMskSourceConfiguration', 'FirehoseDeliveryStreamMskSourceConfigurationAuthenticationConfiguration', @@ -1885,7 +1893,7 @@ def __init__(__self__, *, type: str, parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameter']] = None): """ - :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param Sequence['FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -1896,7 +1904,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -1934,7 +1942,7 @@ def __init__(__self__, *, parameter_name: str, parameter_value: str): """ - :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param str parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -1946,7 +1954,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> str: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -3295,7 +3303,7 @@ def __init__(__self__, *, type: str, parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameter']] = None): """ - :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param Sequence['FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -3306,7 +3314,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -3344,7 +3352,7 @@ def __init__(__self__, *, parameter_name: str, parameter_value: str): """ - :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param str parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -3356,7 +3364,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> str: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -3860,7 +3868,7 @@ def __init__(__self__, *, type: str, parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameter']] = None): """ - :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param Sequence['FirehoseDeliveryStreamHttpEndpointConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -3871,7 +3879,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -3909,7 +3917,7 @@ def __init__(__self__, *, parameter_name: str, parameter_value: str): """ - :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param str parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -3921,7 +3929,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> str: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -4287,6 +4295,622 @@ def secret_arn(self) -> Optional[str]: return pulumi.get(self, "secret_arn") +@pulumi.output_type +class FirehoseDeliveryStreamIcebergConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "catalogArn": + suggest = "catalog_arn" + elif key == "roleArn": + suggest = "role_arn" + elif key == "s3Configuration": + suggest = "s3_configuration" + elif key == "bufferingInterval": + suggest = "buffering_interval" + elif key == "bufferingSize": + suggest = "buffering_size" + elif key == "cloudwatchLoggingOptions": + suggest = "cloudwatch_logging_options" + elif key == "destinationTableConfigurations": + suggest = "destination_table_configurations" + elif key == "processingConfiguration": + suggest = "processing_configuration" + elif key == "retryDuration": + suggest = "retry_duration" + elif key == "s3BackupMode": + suggest = "s3_backup_mode" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamIcebergConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamIcebergConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamIcebergConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + catalog_arn: str, + role_arn: str, + s3_configuration: 'outputs.FirehoseDeliveryStreamIcebergConfigurationS3Configuration', + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions'] = None, + destination_table_configurations: Optional[Sequence['outputs.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration']] = None, + processing_configuration: Optional['outputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration'] = None, + retry_duration: Optional[int] = None, + s3_backup_mode: Optional[str] = None): + """ + :param str catalog_arn: Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + :param str role_arn: The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + :param 'FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs' s3_configuration: The S3 Configuration. See `s3_configuration` block below for details. + :param int buffering_interval: Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + :param int buffering_size: Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + :param 'FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptionsArgs' cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + :param Sequence['FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs'] destination_table_configurations: Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + :param 'FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs' processing_configuration: The data processing configuration. See `processing_configuration` block below for details. + :param int retry_duration: The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + """ + pulumi.set(__self__, "catalog_arn", catalog_arn) + pulumi.set(__self__, "role_arn", role_arn) + pulumi.set(__self__, "s3_configuration", s3_configuration) + if buffering_interval is not None: + pulumi.set(__self__, "buffering_interval", buffering_interval) + if buffering_size is not None: + pulumi.set(__self__, "buffering_size", buffering_size) + if cloudwatch_logging_options is not None: + pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + if destination_table_configurations is not None: + pulumi.set(__self__, "destination_table_configurations", destination_table_configurations) + if processing_configuration is not None: + pulumi.set(__self__, "processing_configuration", processing_configuration) + if retry_duration is not None: + pulumi.set(__self__, "retry_duration", retry_duration) + if s3_backup_mode is not None: + pulumi.set(__self__, "s3_backup_mode", s3_backup_mode) + + @property + @pulumi.getter(name="catalogArn") + def catalog_arn(self) -> str: + """ + Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog` + """ + return pulumi.get(self, "catalog_arn") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> str: + """ + The ARN of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="s3Configuration") + def s3_configuration(self) -> 'outputs.FirehoseDeliveryStreamIcebergConfigurationS3Configuration': + """ + The S3 Configuration. See `s3_configuration` block below for details. + """ + return pulumi.get(self, "s3_configuration") + + @property + @pulumi.getter(name="bufferingInterval") + def buffering_interval(self) -> Optional[int]: + """ + Buffer incoming data for the specified period of time, in seconds between 0 and 900, before delivering it to the destination. The default value is 300. + """ + return pulumi.get(self, "buffering_interval") + + @property + @pulumi.getter(name="bufferingSize") + def buffering_size(self) -> Optional[int]: + """ + Buffer incoming data to the specified size, in MBs between 1 and 128, before delivering it to the destination. The default value is 5. + """ + return pulumi.get(self, "buffering_size") + + @property + @pulumi.getter(name="cloudwatchLoggingOptions") + def cloudwatch_logging_options(self) -> Optional['outputs.FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions']: + """ + The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + """ + return pulumi.get(self, "cloudwatch_logging_options") + + @property + @pulumi.getter(name="destinationTableConfigurations") + def destination_table_configurations(self) -> Optional[Sequence['outputs.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration']]: + """ + Destination table configurations which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided. See `destination_table_configuration` block below for details. + """ + return pulumi.get(self, "destination_table_configurations") + + @property + @pulumi.getter(name="processingConfiguration") + def processing_configuration(self) -> Optional['outputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration']: + """ + The data processing configuration. See `processing_configuration` block below for details. + """ + return pulumi.get(self, "processing_configuration") + + @property + @pulumi.getter(name="retryDuration") + def retry_duration(self) -> Optional[int]: + """ + The period of time, in seconds between 0 to 7200, during which Firehose retries to deliver data to the specified destination. + """ + return pulumi.get(self, "retry_duration") + + @property + @pulumi.getter(name="s3BackupMode") + def s3_backup_mode(self) -> Optional[str]: + return pulumi.get(self, "s3_backup_mode") + + +@pulumi.output_type +class FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "logGroupName": + suggest = "log_group_name" + elif key == "logStreamName": + suggest = "log_stream_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamIcebergConfigurationCloudwatchLoggingOptions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None): + """ + :param bool enabled: Enables or disables the logging. Defaults to `false`. + :param str log_group_name: The CloudWatch group name for logging. This value is required if `enabled` is true. + :param str log_stream_name: The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if log_group_name is not None: + pulumi.set(__self__, "log_group_name", log_group_name) + if log_stream_name is not None: + pulumi.set(__self__, "log_stream_name", log_stream_name) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Enables or disables the logging. Defaults to `false`. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="logGroupName") + def log_group_name(self) -> Optional[str]: + """ + The CloudWatch group name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_group_name") + + @property + @pulumi.getter(name="logStreamName") + def log_stream_name(self) -> Optional[str]: + """ + The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_stream_name") + + +@pulumi.output_type +class FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "databaseName": + suggest = "database_name" + elif key == "tableName": + suggest = "table_name" + elif key == "s3ErrorOutputPrefix": + suggest = "s3_error_output_prefix" + elif key == "uniqueKeys": + suggest = "unique_keys" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + database_name: str, + table_name: str, + s3_error_output_prefix: Optional[str] = None, + unique_keys: Optional[Sequence[str]] = None): + """ + :param str database_name: The name of the Apache Iceberg database. + :param str table_name: The name of the Apache Iceberg Table. + :param str s3_error_output_prefix: The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + :param Sequence[str] unique_keys: A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + """ + pulumi.set(__self__, "database_name", database_name) + pulumi.set(__self__, "table_name", table_name) + if s3_error_output_prefix is not None: + pulumi.set(__self__, "s3_error_output_prefix", s3_error_output_prefix) + if unique_keys is not None: + pulumi.set(__self__, "unique_keys", unique_keys) + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> str: + """ + The name of the Apache Iceberg database. + """ + return pulumi.get(self, "database_name") + + @property + @pulumi.getter(name="tableName") + def table_name(self) -> str: + """ + The name of the Apache Iceberg Table. + """ + return pulumi.get(self, "table_name") + + @property + @pulumi.getter(name="s3ErrorOutputPrefix") + def s3_error_output_prefix(self) -> Optional[str]: + """ + The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. + """ + return pulumi.get(self, "s3_error_output_prefix") + + @property + @pulumi.getter(name="uniqueKeys") + def unique_keys(self) -> Optional[Sequence[str]]: + """ + A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table. + """ + return pulumi.get(self, "unique_keys") + + +@pulumi.output_type +class FirehoseDeliveryStreamIcebergConfigurationProcessingConfiguration(dict): + def __init__(__self__, *, + enabled: Optional[bool] = None, + processors: Optional[Sequence['outputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor']] = None): + """ + :param bool enabled: Enables or disables data processing. + :param Sequence['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs'] processors: Specifies the data processors as multiple blocks. See `processors` block below for details. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if processors is not None: + pulumi.set(__self__, "processors", processors) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Enables or disables data processing. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter + def processors(self) -> Optional[Sequence['outputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor']]: + """ + Specifies the data processors as multiple blocks. See `processors` block below for details. + """ + return pulumi.get(self, "processors") + + +@pulumi.output_type +class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessor(dict): + def __init__(__self__, *, + type: str, + parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter']] = None): + """ + :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + :param Sequence['FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + """ + pulumi.set(__self__, "type", type) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter + def type(self) -> str: + """ + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter + def parameters(self) -> Optional[Sequence['outputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter']]: + """ + Specifies the processor parameters as multiple blocks. See `parameters` block below for details. + """ + return pulumi.get(self, "parameters") + + +@pulumi.output_type +class FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "parameterName": + suggest = "parameter_name" + elif key == "parameterValue": + suggest = "parameter_value" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameter.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + parameter_name: str, + parameter_value: str): + """ + :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + :param str parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + + > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + """ + pulumi.set(__self__, "parameter_name", parameter_name) + pulumi.set(__self__, "parameter_value", parameter_value) + + @property + @pulumi.getter(name="parameterName") + def parameter_name(self) -> str: + """ + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. + """ + return pulumi.get(self, "parameter_name") + + @property + @pulumi.getter(name="parameterValue") + def parameter_value(self) -> str: + """ + Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. + + > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. + """ + return pulumi.get(self, "parameter_value") + + +@pulumi.output_type +class FirehoseDeliveryStreamIcebergConfigurationS3Configuration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bucketArn": + suggest = "bucket_arn" + elif key == "roleArn": + suggest = "role_arn" + elif key == "bufferingInterval": + suggest = "buffering_interval" + elif key == "bufferingSize": + suggest = "buffering_size" + elif key == "cloudwatchLoggingOptions": + suggest = "cloudwatch_logging_options" + elif key == "compressionFormat": + suggest = "compression_format" + elif key == "errorOutputPrefix": + suggest = "error_output_prefix" + elif key == "kmsKeyArn": + suggest = "kms_key_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamIcebergConfigurationS3Configuration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamIcebergConfigurationS3Configuration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamIcebergConfigurationS3Configuration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bucket_arn: str, + role_arn: str, + buffering_interval: Optional[int] = None, + buffering_size: Optional[int] = None, + cloudwatch_logging_options: Optional['outputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions'] = None, + compression_format: Optional[str] = None, + error_output_prefix: Optional[str] = None, + kms_key_arn: Optional[str] = None, + prefix: Optional[str] = None): + """ + :param str bucket_arn: The ARN of the S3 bucket + :param str role_arn: The ARN of the AWS credentials. + :param int buffering_interval: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + :param int buffering_size: Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + :param 'FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptionsArgs' cloudwatch_logging_options: The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + :param str compression_format: The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + :param str error_output_prefix: Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + :param str kms_key_arn: Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + be used. + :param str prefix: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + """ + pulumi.set(__self__, "bucket_arn", bucket_arn) + pulumi.set(__self__, "role_arn", role_arn) + if buffering_interval is not None: + pulumi.set(__self__, "buffering_interval", buffering_interval) + if buffering_size is not None: + pulumi.set(__self__, "buffering_size", buffering_size) + if cloudwatch_logging_options is not None: + pulumi.set(__self__, "cloudwatch_logging_options", cloudwatch_logging_options) + if compression_format is not None: + pulumi.set(__self__, "compression_format", compression_format) + if error_output_prefix is not None: + pulumi.set(__self__, "error_output_prefix", error_output_prefix) + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + if prefix is not None: + pulumi.set(__self__, "prefix", prefix) + + @property + @pulumi.getter(name="bucketArn") + def bucket_arn(self) -> str: + """ + The ARN of the S3 bucket + """ + return pulumi.get(self, "bucket_arn") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> str: + """ + The ARN of the AWS credentials. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="bufferingInterval") + def buffering_interval(self) -> Optional[int]: + """ + Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. + """ + return pulumi.get(self, "buffering_interval") + + @property + @pulumi.getter(name="bufferingSize") + def buffering_size(self) -> Optional[int]: + """ + Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. + We recommend setting SizeInMBs to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher. + """ + return pulumi.get(self, "buffering_size") + + @property + @pulumi.getter(name="cloudwatchLoggingOptions") + def cloudwatch_logging_options(self) -> Optional['outputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions']: + """ + The CloudWatch Logging Options for the delivery stream. See `cloudwatch_logging_options` block below for details. + """ + return pulumi.get(self, "cloudwatch_logging_options") + + @property + @pulumi.getter(name="compressionFormat") + def compression_format(self) -> Optional[str]: + """ + The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`. + """ + return pulumi.get(self, "compression_format") + + @property + @pulumi.getter(name="errorOutputPrefix") + def error_output_prefix(self) -> Optional[str]: + """ + Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html). + """ + return pulumi.get(self, "error_output_prefix") + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[str]: + """ + Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will + be used. + """ + return pulumi.get(self, "kms_key_arn") + + @property + @pulumi.getter + def prefix(self) -> Optional[str]: + """ + The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket + """ + return pulumi.get(self, "prefix") + + +@pulumi.output_type +class FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "logGroupName": + suggest = "log_group_name" + elif key == "logStreamName": + suggest = "log_stream_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationCloudwatchLoggingOptions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + log_group_name: Optional[str] = None, + log_stream_name: Optional[str] = None): + """ + :param bool enabled: Enables or disables the logging. Defaults to `false`. + :param str log_group_name: The CloudWatch group name for logging. This value is required if `enabled` is true. + :param str log_stream_name: The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if log_group_name is not None: + pulumi.set(__self__, "log_group_name", log_group_name) + if log_stream_name is not None: + pulumi.set(__self__, "log_stream_name", log_stream_name) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Enables or disables the logging. Defaults to `false`. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="logGroupName") + def log_group_name(self) -> Optional[str]: + """ + The CloudWatch group name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_group_name") + + @property + @pulumi.getter(name="logStreamName") + def log_stream_name(self) -> Optional[str]: + """ + The CloudWatch log stream name for logging. This value is required if `enabled` is true. + """ + return pulumi.get(self, "log_stream_name") + + @pulumi.output_type class FirehoseDeliveryStreamKinesisSourceConfiguration(dict): @staticmethod @@ -4805,7 +5429,7 @@ def __init__(__self__, *, type: str, parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameter']] = None): """ - :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param Sequence['FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -4816,7 +5440,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -4854,7 +5478,7 @@ def __init__(__self__, *, parameter_name: str, parameter_value: str): """ - :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param str parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -4866,7 +5490,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> str: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -5433,7 +6057,7 @@ def __init__(__self__, *, type: str, parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameter']] = None): """ - :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param Sequence['FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -5444,7 +6068,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -5482,7 +6106,7 @@ def __init__(__self__, *, parameter_name: str, parameter_value: str): """ - :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param str parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -5494,7 +6118,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> str: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -6097,7 +6721,7 @@ def __init__(__self__, *, type: str, parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameter']] = None): """ - :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param Sequence['FirehoseDeliveryStreamRedshiftConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -6108,7 +6732,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -6146,7 +6770,7 @@ def __init__(__self__, *, parameter_name: str, parameter_value: str): """ - :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param str parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -6158,7 +6782,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> str: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -7100,7 +7724,7 @@ def __init__(__self__, *, type: str, parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameter']] = None): """ - :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param Sequence['FirehoseDeliveryStreamSnowflakeConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -7111,7 +7735,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -7149,7 +7773,7 @@ def __init__(__self__, *, parameter_name: str, parameter_value: str): """ - :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param str parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -7161,7 +7785,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> str: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") @@ -7816,7 +8440,7 @@ def __init__(__self__, *, type: str, parameters: Optional[Sequence['outputs.FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameter']] = None): """ - :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str type: The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. :param Sequence['FirehoseDeliveryStreamSplunkConfigurationProcessingConfigurationProcessorParameterArgs'] parameters: Specifies the processor parameters as multiple blocks. See `parameters` block below for details. """ pulumi.set(__self__, "type", type) @@ -7827,7 +8451,7 @@ def __init__(__self__, *, @pulumi.getter def type(self) -> str: """ - The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + The type of processor. Valid Values: `RecordDeAggregation`, `Lambda`, `MetadataExtraction`, `AppendDelimiterToRecord`, `Decompression`, `CloudWatchLogProcessing`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorType); so values not explicitly listed may also work. """ return pulumi.get(self, "type") @@ -7865,7 +8489,7 @@ def __init__(__self__, *, parameter_name: str, parameter_value: str): """ - :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + :param str parameter_name: Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. :param str parameter_value: Parameter value. Must be between 1 and 512 length (inclusive). When providing a Lambda ARN, you should specify the resource version as well. > **NOTE:** Parameters with default values, including `NumberOfRetries`(default: 3), `RoleArn`(default: firehose role ARN), `BufferSizeInMBs`(default: 1), and `BufferIntervalInSeconds`(default: 60), are not stored in Pulumi state. To prevent perpetual differences, it is therefore recommended to only include parameters with non-default values. @@ -7877,7 +8501,7 @@ def __init__(__self__, *, @pulumi.getter(name="parameterName") def parameter_name(self) -> str: """ - Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`. Validation is done against [AWS SDK constants](https://docs.aws.amazon.com/sdk-for-go/api/service/firehose/#pkg-constants); so that values not explicitly listed may also work. + Parameter name. Valid Values: `LambdaArn`, `NumberOfRetries`, `MetadataExtractionQuery`, `JsonParsingEngine`, `RoleArn`, `BufferSizeInMBs`, `BufferIntervalInSeconds`, `SubRecordType`, `Delimiter`, `CompressionFormat`, `DataMessageExtraction`. Validation is done against [AWS SDK constants](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/firehose/types#ProcessorParameterName); so values not explicitly listed may also work. """ return pulumi.get(self, "parameter_name") diff --git a/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py b/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py index 4a9aa59651c..fdd12819119 100644 --- a/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py +++ b/sdk/python/pulumi_aws/lakeformation/data_lake_settings.py @@ -29,6 +29,7 @@ def __init__(__self__, *, create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateDatabaseDefaultPermissionArgs']]]] = None, create_table_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateTableDefaultPermissionArgs']]]] = None, external_data_filtering_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, read_only_admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, trusted_resource_owners: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ @@ -36,15 +37,16 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles). :param pulumi.Input[bool] allow_external_data_filtering: Whether to allow Amazon EMR clusters to access data managed by Lake Formation. :param pulumi.Input[bool] allow_full_table_external_data_access: Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - - > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. :param pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateDatabaseDefaultPermissionArgs']]] create_database_default_permissions: Up to three configuration blocks of principal permissions for default create database permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateTableDefaultPermissionArgs']]] create_table_default_permissions: Up to three configuration blocks of principal permissions for default create table permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[str]]] external_data_filtering_allow_lists: A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. :param pulumi.Input[Sequence[pulumi.Input[str]]] read_only_admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_resource_owners: List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + + > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. """ if admins is not None: pulumi.set(__self__, "admins", admins) @@ -62,6 +64,8 @@ def __init__(__self__, *, pulumi.set(__self__, "create_table_default_permissions", create_table_default_permissions) if external_data_filtering_allow_lists is not None: pulumi.set(__self__, "external_data_filtering_allow_lists", external_data_filtering_allow_lists) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) if read_only_admins is not None: pulumi.set(__self__, "read_only_admins", read_only_admins) if trusted_resource_owners is not None: @@ -96,8 +100,6 @@ def allow_external_data_filtering(self, value: Optional[pulumi.Input[bool]]): def allow_full_table_external_data_access(self) -> Optional[pulumi.Input[bool]]: """ Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - - > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. """ return pulumi.get(self, "allow_full_table_external_data_access") @@ -165,6 +167,18 @@ def external_data_filtering_allow_lists(self) -> Optional[pulumi.Input[Sequence[ def external_data_filtering_allow_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "external_data_filtering_allow_lists", value) + @property + @pulumi.getter + def parameters(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + """ + return pulumi.get(self, "parameters") + + @parameters.setter + def parameters(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "parameters", value) + @property @pulumi.getter(name="readOnlyAdmins") def read_only_admins(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -182,6 +196,8 @@ def read_only_admins(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st def trusted_resource_owners(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + + > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. """ return pulumi.get(self, "trusted_resource_owners") @@ -201,6 +217,7 @@ def __init__(__self__, *, create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateDatabaseDefaultPermissionArgs']]]] = None, create_table_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateTableDefaultPermissionArgs']]]] = None, external_data_filtering_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, read_only_admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, trusted_resource_owners: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ @@ -208,15 +225,16 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles). :param pulumi.Input[bool] allow_external_data_filtering: Whether to allow Amazon EMR clusters to access data managed by Lake Formation. :param pulumi.Input[bool] allow_full_table_external_data_access: Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - - > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. :param pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateDatabaseDefaultPermissionArgs']]] create_database_default_permissions: Up to three configuration blocks of principal permissions for default create database permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input['DataLakeSettingsCreateTableDefaultPermissionArgs']]] create_table_default_permissions: Up to three configuration blocks of principal permissions for default create table permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[str]]] external_data_filtering_allow_lists: A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. :param pulumi.Input[Sequence[pulumi.Input[str]]] read_only_admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_resource_owners: List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + + > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. """ if admins is not None: pulumi.set(__self__, "admins", admins) @@ -234,6 +252,8 @@ def __init__(__self__, *, pulumi.set(__self__, "create_table_default_permissions", create_table_default_permissions) if external_data_filtering_allow_lists is not None: pulumi.set(__self__, "external_data_filtering_allow_lists", external_data_filtering_allow_lists) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) if read_only_admins is not None: pulumi.set(__self__, "read_only_admins", read_only_admins) if trusted_resource_owners is not None: @@ -268,8 +288,6 @@ def allow_external_data_filtering(self, value: Optional[pulumi.Input[bool]]): def allow_full_table_external_data_access(self) -> Optional[pulumi.Input[bool]]: """ Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - - > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. """ return pulumi.get(self, "allow_full_table_external_data_access") @@ -337,6 +355,18 @@ def external_data_filtering_allow_lists(self) -> Optional[pulumi.Input[Sequence[ def external_data_filtering_allow_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "external_data_filtering_allow_lists", value) + @property + @pulumi.getter + def parameters(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + """ + return pulumi.get(self, "parameters") + + @parameters.setter + def parameters(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "parameters", value) + @property @pulumi.getter(name="readOnlyAdmins") def read_only_admins(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -354,6 +384,8 @@ def read_only_admins(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st def trusted_resource_owners(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + + > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. """ return pulumi.get(self, "trusted_resource_owners") @@ -375,6 +407,7 @@ def __init__(__self__, create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateDatabaseDefaultPermissionArgs', 'DataLakeSettingsCreateDatabaseDefaultPermissionArgsDict']]]]] = None, create_table_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateTableDefaultPermissionArgs', 'DataLakeSettingsCreateTableDefaultPermissionArgsDict']]]]] = None, external_data_filtering_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, read_only_admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, trusted_resource_owners: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): @@ -454,20 +487,32 @@ def __init__(__self__, allow_full_table_external_data_access=True) ``` + ### Change Cross Account Version + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.lakeformation.DataLakeSettings("example", parameters={ + "CROSS_ACCOUNT_VERSION": "3", + }) + ``` + :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles). :param pulumi.Input[bool] allow_external_data_filtering: Whether to allow Amazon EMR clusters to access data managed by Lake Formation. :param pulumi.Input[bool] allow_full_table_external_data_access: Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - - > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. :param pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateDatabaseDefaultPermissionArgs', 'DataLakeSettingsCreateDatabaseDefaultPermissionArgsDict']]]] create_database_default_permissions: Up to three configuration blocks of principal permissions for default create database permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateTableDefaultPermissionArgs', 'DataLakeSettingsCreateTableDefaultPermissionArgsDict']]]] create_table_default_permissions: Up to three configuration blocks of principal permissions for default create table permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[str]]] external_data_filtering_allow_lists: A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. :param pulumi.Input[Sequence[pulumi.Input[str]]] read_only_admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_resource_owners: List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + + > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. """ ... @overload @@ -551,6 +596,17 @@ def __init__(__self__, allow_full_table_external_data_access=True) ``` + ### Change Cross Account Version + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.lakeformation.DataLakeSettings("example", parameters={ + "CROSS_ACCOUNT_VERSION": "3", + }) + ``` + :param str resource_name: The name of the resource. :param DataLakeSettingsArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. @@ -574,6 +630,7 @@ def _internal_init(__self__, create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateDatabaseDefaultPermissionArgs', 'DataLakeSettingsCreateDatabaseDefaultPermissionArgsDict']]]]] = None, create_table_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateTableDefaultPermissionArgs', 'DataLakeSettingsCreateTableDefaultPermissionArgsDict']]]]] = None, external_data_filtering_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, read_only_admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, trusted_resource_owners: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): @@ -593,6 +650,7 @@ def _internal_init(__self__, __props__.__dict__["create_database_default_permissions"] = create_database_default_permissions __props__.__dict__["create_table_default_permissions"] = create_table_default_permissions __props__.__dict__["external_data_filtering_allow_lists"] = external_data_filtering_allow_lists + __props__.__dict__["parameters"] = parameters __props__.__dict__["read_only_admins"] = read_only_admins __props__.__dict__["trusted_resource_owners"] = trusted_resource_owners super(DataLakeSettings, __self__).__init__( @@ -613,6 +671,7 @@ def get(resource_name: str, create_database_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateDatabaseDefaultPermissionArgs', 'DataLakeSettingsCreateDatabaseDefaultPermissionArgsDict']]]]] = None, create_table_default_permissions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateTableDefaultPermissionArgs', 'DataLakeSettingsCreateTableDefaultPermissionArgsDict']]]]] = None, external_data_filtering_allow_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, read_only_admins: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, trusted_resource_owners: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'DataLakeSettings': """ @@ -625,15 +684,16 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[str]]] admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles). :param pulumi.Input[bool] allow_external_data_filtering: Whether to allow Amazon EMR clusters to access data managed by Lake Formation. :param pulumi.Input[bool] allow_full_table_external_data_access: Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - - > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. :param pulumi.Input[Sequence[pulumi.Input[str]]] authorized_session_tag_value_lists: Lake Formation relies on a privileged process secured by Amazon EMR or the third party integrator to tag the user's role while assuming it. :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. :param pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateDatabaseDefaultPermissionArgs', 'DataLakeSettingsCreateDatabaseDefaultPermissionArgsDict']]]] create_database_default_permissions: Up to three configuration blocks of principal permissions for default create database permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[Union['DataLakeSettingsCreateTableDefaultPermissionArgs', 'DataLakeSettingsCreateTableDefaultPermissionArgsDict']]]] create_table_default_permissions: Up to three configuration blocks of principal permissions for default create table permissions. Detailed below. :param pulumi.Input[Sequence[pulumi.Input[str]]] external_data_filtering_allow_lists: A list of the account IDs of Amazon Web Services accounts with Amazon EMR clusters that are to perform data filtering. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. :param pulumi.Input[Sequence[pulumi.Input[str]]] read_only_admins: Set of ARNs of AWS Lake Formation principals (IAM users or roles) with only view access to the resources. :param pulumi.Input[Sequence[pulumi.Input[str]]] trusted_resource_owners: List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + + > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -647,6 +707,7 @@ def get(resource_name: str, __props__.__dict__["create_database_default_permissions"] = create_database_default_permissions __props__.__dict__["create_table_default_permissions"] = create_table_default_permissions __props__.__dict__["external_data_filtering_allow_lists"] = external_data_filtering_allow_lists + __props__.__dict__["parameters"] = parameters __props__.__dict__["read_only_admins"] = read_only_admins __props__.__dict__["trusted_resource_owners"] = trusted_resource_owners return DataLakeSettings(resource_name, opts=opts, __props__=__props__) @@ -672,8 +733,6 @@ def allow_external_data_filtering(self) -> pulumi.Output[Optional[bool]]: def allow_full_table_external_data_access(self) -> pulumi.Output[Optional[bool]]: """ Whether to allow a third-party query engine to get data access credentials without session tags when a caller has full data access permissions. - - > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, and/or `trusted_resource_owners` results in the setting being cleared. """ return pulumi.get(self, "allow_full_table_external_data_access") @@ -717,6 +776,14 @@ def external_data_filtering_allow_lists(self) -> pulumi.Output[Sequence[str]]: """ return pulumi.get(self, "external_data_filtering_allow_lists") + @property + @pulumi.getter + def parameters(self) -> pulumi.Output[Mapping[str, str]]: + """ + Key-value map of additional configuration. Valid values for the `CROSS_ACCOUNT_VERSION` key are `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` is also returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. Destroying this resource sets the `CROSS_ACCOUNT_VERSION` to `"1"`. + """ + return pulumi.get(self, "parameters") + @property @pulumi.getter(name="readOnlyAdmins") def read_only_admins(self) -> pulumi.Output[Sequence[str]]: @@ -730,6 +797,8 @@ def read_only_admins(self) -> pulumi.Output[Sequence[str]]: def trusted_resource_owners(self) -> pulumi.Output[Sequence[str]]: """ List of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). + + > **NOTE:** Although optional, not including `admins`, `create_database_default_permissions`, `create_table_default_permissions`, `parameters`, and/or `trusted_resource_owners` results in the setting being cleared. """ return pulumi.get(self, "trusted_resource_owners") diff --git a/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py b/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py index 93141edd665..d1d83cb1aed 100644 --- a/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py +++ b/sdk/python/pulumi_aws/lakeformation/get_data_lake_settings.py @@ -27,7 +27,7 @@ class GetDataLakeSettingsResult: """ A collection of values returned by getDataLakeSettings. """ - def __init__(__self__, admins=None, allow_external_data_filtering=None, allow_full_table_external_data_access=None, authorized_session_tag_value_lists=None, catalog_id=None, create_database_default_permissions=None, create_table_default_permissions=None, external_data_filtering_allow_lists=None, id=None, read_only_admins=None, trusted_resource_owners=None): + def __init__(__self__, admins=None, allow_external_data_filtering=None, allow_full_table_external_data_access=None, authorized_session_tag_value_lists=None, catalog_id=None, create_database_default_permissions=None, create_table_default_permissions=None, external_data_filtering_allow_lists=None, id=None, parameters=None, read_only_admins=None, trusted_resource_owners=None): if admins and not isinstance(admins, list): raise TypeError("Expected argument 'admins' to be a list") pulumi.set(__self__, "admins", admins) @@ -55,6 +55,9 @@ def __init__(__self__, admins=None, allow_external_data_filtering=None, allow_fu if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) + if parameters and not isinstance(parameters, dict): + raise TypeError("Expected argument 'parameters' to be a dict") + pulumi.set(__self__, "parameters", parameters) if read_only_admins and not isinstance(read_only_admins, list): raise TypeError("Expected argument 'read_only_admins' to be a list") pulumi.set(__self__, "read_only_admins", read_only_admins) @@ -131,6 +134,14 @@ def id(self) -> str: """ return pulumi.get(self, "id") + @property + @pulumi.getter + def parameters(self) -> Mapping[str, str]: + """ + Key-value map of additional configuration. `CROSS_ACCOUNT_VERSION` will be set to values `"1"`, `"2"`, `"3"`, or `"4"`. `SET_CONTEXT` will also be returned with a value of `TRUE`. In a fresh account, prior to configuring, `CROSS_ACCOUNT_VERSION` is `"1"`. + """ + return pulumi.get(self, "parameters") + @property @pulumi.getter(name="readOnlyAdmins") def read_only_admins(self) -> Sequence[str]: @@ -163,6 +174,7 @@ def __await__(self): create_table_default_permissions=self.create_table_default_permissions, external_data_filtering_allow_lists=self.external_data_filtering_allow_lists, id=self.id, + parameters=self.parameters, read_only_admins=self.read_only_admins, trusted_resource_owners=self.trusted_resource_owners) @@ -199,6 +211,7 @@ def get_data_lake_settings(catalog_id: Optional[str] = None, create_table_default_permissions=pulumi.get(__ret__, 'create_table_default_permissions'), external_data_filtering_allow_lists=pulumi.get(__ret__, 'external_data_filtering_allow_lists'), id=pulumi.get(__ret__, 'id'), + parameters=pulumi.get(__ret__, 'parameters'), read_only_admins=pulumi.get(__ret__, 'read_only_admins'), trusted_resource_owners=pulumi.get(__ret__, 'trusted_resource_owners')) def get_data_lake_settings_output(catalog_id: Optional[pulumi.Input[Optional[str]]] = None, @@ -232,5 +245,6 @@ def get_data_lake_settings_output(catalog_id: Optional[pulumi.Input[Optional[str create_table_default_permissions=pulumi.get(__response__, 'create_table_default_permissions'), external_data_filtering_allow_lists=pulumi.get(__response__, 'external_data_filtering_allow_lists'), id=pulumi.get(__response__, 'id'), + parameters=pulumi.get(__response__, 'parameters'), read_only_admins=pulumi.get(__response__, 'read_only_admins'), trusted_resource_owners=pulumi.get(__response__, 'trusted_resource_owners'))) diff --git a/sdk/python/pulumi_aws/lb/get_load_balancer.py b/sdk/python/pulumi_aws/lb/get_load_balancer.py index 8a6ce09dc10..55d284e4ee5 100644 --- a/sdk/python/pulumi_aws/lb/get_load_balancer.py +++ b/sdk/python/pulumi_aws/lb/get_load_balancer.py @@ -27,7 +27,7 @@ class GetLoadBalancerResult: """ A collection of values returned by getLoadBalancer. """ - def __init__(__self__, access_logs=None, arn=None, arn_suffix=None, client_keep_alive=None, connection_logs=None, customer_owned_ipv4_pool=None, desync_mitigation_mode=None, dns_name=None, dns_record_client_routing_policy=None, drop_invalid_header_fields=None, enable_cross_zone_load_balancing=None, enable_deletion_protection=None, enable_http2=None, enable_tls_version_and_cipher_suite_headers=None, enable_waf_fail_open=None, enable_xff_client_port=None, enforce_security_group_inbound_rules_on_private_link_traffic=None, id=None, idle_timeout=None, internal=None, ip_address_type=None, load_balancer_type=None, name=None, preserve_host_header=None, security_groups=None, subnet_mappings=None, subnets=None, tags=None, vpc_id=None, xff_header_processing_mode=None, zone_id=None): + def __init__(__self__, access_logs=None, arn=None, arn_suffix=None, client_keep_alive=None, connection_logs=None, customer_owned_ipv4_pool=None, desync_mitigation_mode=None, dns_name=None, dns_record_client_routing_policy=None, drop_invalid_header_fields=None, enable_cross_zone_load_balancing=None, enable_deletion_protection=None, enable_http2=None, enable_tls_version_and_cipher_suite_headers=None, enable_waf_fail_open=None, enable_xff_client_port=None, enable_zonal_shift=None, enforce_security_group_inbound_rules_on_private_link_traffic=None, id=None, idle_timeout=None, internal=None, ip_address_type=None, load_balancer_type=None, name=None, preserve_host_header=None, security_groups=None, subnet_mappings=None, subnets=None, tags=None, vpc_id=None, xff_header_processing_mode=None, zone_id=None): if access_logs and not isinstance(access_logs, dict): raise TypeError("Expected argument 'access_logs' to be a dict") pulumi.set(__self__, "access_logs", access_logs) @@ -76,6 +76,9 @@ def __init__(__self__, access_logs=None, arn=None, arn_suffix=None, client_keep_ if enable_xff_client_port and not isinstance(enable_xff_client_port, bool): raise TypeError("Expected argument 'enable_xff_client_port' to be a bool") pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) + if enable_zonal_shift and not isinstance(enable_zonal_shift, bool): + raise TypeError("Expected argument 'enable_zonal_shift' to be a bool") + pulumi.set(__self__, "enable_zonal_shift", enable_zonal_shift) if enforce_security_group_inbound_rules_on_private_link_traffic and not isinstance(enforce_security_group_inbound_rules_on_private_link_traffic, str): raise TypeError("Expected argument 'enforce_security_group_inbound_rules_on_private_link_traffic' to be a str") pulumi.set(__self__, "enforce_security_group_inbound_rules_on_private_link_traffic", enforce_security_group_inbound_rules_on_private_link_traffic) @@ -202,6 +205,11 @@ def enable_waf_fail_open(self) -> bool: def enable_xff_client_port(self) -> bool: return pulumi.get(self, "enable_xff_client_port") + @property + @pulumi.getter(name="enableZonalShift") + def enable_zonal_shift(self) -> bool: + return pulumi.get(self, "enable_zonal_shift") + @property @pulumi.getter(name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic") def enforce_security_group_inbound_rules_on_private_link_traffic(self) -> str: @@ -303,6 +311,7 @@ def __await__(self): enable_tls_version_and_cipher_suite_headers=self.enable_tls_version_and_cipher_suite_headers, enable_waf_fail_open=self.enable_waf_fail_open, enable_xff_client_port=self.enable_xff_client_port, + enable_zonal_shift=self.enable_zonal_shift, enforce_security_group_inbound_rules_on_private_link_traffic=self.enforce_security_group_inbound_rules_on_private_link_traffic, id=self.id, idle_timeout=self.idle_timeout, @@ -381,6 +390,7 @@ def get_load_balancer(arn: Optional[str] = None, enable_tls_version_and_cipher_suite_headers=pulumi.get(__ret__, 'enable_tls_version_and_cipher_suite_headers'), enable_waf_fail_open=pulumi.get(__ret__, 'enable_waf_fail_open'), enable_xff_client_port=pulumi.get(__ret__, 'enable_xff_client_port'), + enable_zonal_shift=pulumi.get(__ret__, 'enable_zonal_shift'), enforce_security_group_inbound_rules_on_private_link_traffic=pulumi.get(__ret__, 'enforce_security_group_inbound_rules_on_private_link_traffic'), id=pulumi.get(__ret__, 'id'), idle_timeout=pulumi.get(__ret__, 'idle_timeout'), @@ -456,6 +466,7 @@ def get_load_balancer_output(arn: Optional[pulumi.Input[Optional[str]]] = None, enable_tls_version_and_cipher_suite_headers=pulumi.get(__response__, 'enable_tls_version_and_cipher_suite_headers'), enable_waf_fail_open=pulumi.get(__response__, 'enable_waf_fail_open'), enable_xff_client_port=pulumi.get(__response__, 'enable_xff_client_port'), + enable_zonal_shift=pulumi.get(__response__, 'enable_zonal_shift'), enforce_security_group_inbound_rules_on_private_link_traffic=pulumi.get(__response__, 'enforce_security_group_inbound_rules_on_private_link_traffic'), id=pulumi.get(__response__, 'id'), idle_timeout=pulumi.get(__response__, 'idle_timeout'), diff --git a/sdk/python/pulumi_aws/lb/listener.py b/sdk/python/pulumi_aws/lb/listener.py index bb2729dc390..82e689f72e2 100644 --- a/sdk/python/pulumi_aws/lb/listener.py +++ b/sdk/python/pulumi_aws/lb/listener.py @@ -29,7 +29,8 @@ def __init__(__self__, *, port: Optional[pulumi.Input[int]] = None, protocol: Optional[pulumi.Input[str]] = None, ssl_policy: Optional[pulumi.Input[str]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tcp_idle_timeout_seconds: Optional[pulumi.Input[int]] = None): """ The set of arguments for constructing a Listener resource. :param pulumi.Input[Sequence[pulumi.Input['ListenerDefaultActionArgs']]] default_actions: Configuration block for default actions. See below. @@ -43,6 +44,7 @@ def __init__(__self__, *, :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[int] tcp_idle_timeout_seconds: TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. """ pulumi.set(__self__, "default_actions", default_actions) pulumi.set(__self__, "load_balancer_arn", load_balancer_arn) @@ -60,6 +62,8 @@ def __init__(__self__, *, pulumi.set(__self__, "ssl_policy", ssl_policy) if tags is not None: pulumi.set(__self__, "tags", tags) + if tcp_idle_timeout_seconds is not None: + pulumi.set(__self__, "tcp_idle_timeout_seconds", tcp_idle_timeout_seconds) @property @pulumi.getter(name="defaultActions") @@ -171,6 +175,18 @@ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags", value) + @property + @pulumi.getter(name="tcpIdleTimeoutSeconds") + def tcp_idle_timeout_seconds(self) -> Optional[pulumi.Input[int]]: + """ + TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + """ + return pulumi.get(self, "tcp_idle_timeout_seconds") + + @tcp_idle_timeout_seconds.setter + def tcp_idle_timeout_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "tcp_idle_timeout_seconds", value) + @pulumi.input_type class _ListenerState: @@ -185,7 +201,8 @@ def __init__(__self__, *, protocol: Optional[pulumi.Input[str]] = None, ssl_policy: 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): + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tcp_idle_timeout_seconds: Optional[pulumi.Input[int]] = None): """ Input properties used for looking up and filtering Listener resources. :param pulumi.Input[str] alpn_policy: Name of the Application-Layer Protocol Negotiation (ALPN) policy. Can be set if `protocol` is `TLS`. Valid values are `HTTP1Only`, `HTTP2Only`, `HTTP2Optional`, `HTTP2Preferred`, and `None`. @@ -201,6 +218,7 @@ def __init__(__self__, *, :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[int] tcp_idle_timeout_seconds: TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. """ if alpn_policy is not None: pulumi.set(__self__, "alpn_policy", alpn_policy) @@ -227,6 +245,8 @@ def __init__(__self__, *, 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 tcp_idle_timeout_seconds is not None: + pulumi.set(__self__, "tcp_idle_timeout_seconds", tcp_idle_timeout_seconds) @property @pulumi.getter(name="alpnPolicy") @@ -363,6 +383,18 @@ def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags_all", value) + @property + @pulumi.getter(name="tcpIdleTimeoutSeconds") + def tcp_idle_timeout_seconds(self) -> Optional[pulumi.Input[int]]: + """ + TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + """ + return pulumi.get(self, "tcp_idle_timeout_seconds") + + @tcp_idle_timeout_seconds.setter + def tcp_idle_timeout_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "tcp_idle_timeout_seconds", value) + class Listener(pulumi.CustomResource): @overload @@ -378,6 +410,7 @@ def __init__(__self__, protocol: Optional[pulumi.Input[str]] = None, ssl_policy: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tcp_idle_timeout_seconds: Optional[pulumi.Input[int]] = None, __props__=None): """ Provides a Load Balancer Listener resource. @@ -599,6 +632,7 @@ def __init__(__self__, :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[int] tcp_idle_timeout_seconds: TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. """ ... @overload @@ -837,6 +871,7 @@ def _internal_init(__self__, protocol: Optional[pulumi.Input[str]] = None, ssl_policy: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tcp_idle_timeout_seconds: Optional[pulumi.Input[int]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -859,6 +894,7 @@ def _internal_init(__self__, __props__.__dict__["protocol"] = protocol __props__.__dict__["ssl_policy"] = ssl_policy __props__.__dict__["tags"] = tags + __props__.__dict__["tcp_idle_timeout_seconds"] = tcp_idle_timeout_seconds __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="aws:elasticloadbalancingv2/listener:Listener")]) @@ -883,7 +919,8 @@ def get(resource_name: str, protocol: Optional[pulumi.Input[str]] = None, ssl_policy: 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) -> 'Listener': + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tcp_idle_timeout_seconds: Optional[pulumi.Input[int]] = None) -> 'Listener': """ Get an existing Listener resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -904,6 +941,7 @@ def get(resource_name: str, :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[int] tcp_idle_timeout_seconds: TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -920,6 +958,7 @@ def get(resource_name: str, __props__.__dict__["ssl_policy"] = ssl_policy __props__.__dict__["tags"] = tags __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["tcp_idle_timeout_seconds"] = tcp_idle_timeout_seconds return Listener(resource_name, opts=opts, __props__=__props__) @property @@ -1013,3 +1052,11 @@ def tags_all(self) -> pulumi.Output[Mapping[str, str]]: """ return pulumi.get(self, "tags_all") + @property + @pulumi.getter(name="tcpIdleTimeoutSeconds") + def tcp_idle_timeout_seconds(self) -> pulumi.Output[Optional[int]]: + """ + TCP idle timeout value in seconds. Can only be set if protocol is `TCP` on Network Load Balancer, or with a Gateway Load Balancer. Not supported for Application Load Balancers. Valid values are between `60` and `6000` inclusive. Default: `350`. + """ + return pulumi.get(self, "tcp_idle_timeout_seconds") + diff --git a/sdk/python/pulumi_aws/lb/load_balancer.py b/sdk/python/pulumi_aws/lb/load_balancer.py index 80a7214bedc..4c475e73648 100644 --- a/sdk/python/pulumi_aws/lb/load_balancer.py +++ b/sdk/python/pulumi_aws/lb/load_balancer.py @@ -34,6 +34,7 @@ def __init__(__self__, *, enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + enable_zonal_shift: Optional[pulumi.Input[bool]] = None, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, idle_timeout: Optional[pulumi.Input[int]] = None, internal: Optional[pulumi.Input[bool]] = None, @@ -62,6 +63,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_tls_version_and_cipher_suite_headers: Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false` :param pulumi.Input[bool] enable_waf_fail_open: Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`. :param pulumi.Input[bool] enable_xff_client_port: Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. + :param pulumi.Input[bool] enable_zonal_shift: Whether zonal shift is enabled. Defaults to `false`. :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. :param pulumi.Input[int] idle_timeout: Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. :param pulumi.Input[bool] internal: If true, the LB will be internal. Defaults to `false`. @@ -102,6 +104,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enable_waf_fail_open", enable_waf_fail_open) if enable_xff_client_port is not None: pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) + if enable_zonal_shift is not None: + pulumi.set(__self__, "enable_zonal_shift", enable_zonal_shift) if enforce_security_group_inbound_rules_on_private_link_traffic is not None: pulumi.set(__self__, "enforce_security_group_inbound_rules_on_private_link_traffic", enforce_security_group_inbound_rules_on_private_link_traffic) if idle_timeout is not None: @@ -285,6 +289,18 @@ def enable_xff_client_port(self) -> Optional[pulumi.Input[bool]]: def enable_xff_client_port(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enable_xff_client_port", value) + @property + @pulumi.getter(name="enableZonalShift") + def enable_zonal_shift(self) -> Optional[pulumi.Input[bool]]: + """ + Whether zonal shift is enabled. Defaults to `false`. + """ + return pulumi.get(self, "enable_zonal_shift") + + @enable_zonal_shift.setter + def enable_zonal_shift(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_zonal_shift", value) + @property @pulumi.getter(name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic") def enforce_security_group_inbound_rules_on_private_link_traffic(self) -> Optional[pulumi.Input[str]]: @@ -461,6 +477,7 @@ def __init__(__self__, *, enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + enable_zonal_shift: Optional[pulumi.Input[bool]] = None, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, idle_timeout: Optional[pulumi.Input[int]] = None, internal: Optional[pulumi.Input[bool]] = None, @@ -495,6 +512,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] enable_tls_version_and_cipher_suite_headers: Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false` :param pulumi.Input[bool] enable_waf_fail_open: Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`. :param pulumi.Input[bool] enable_xff_client_port: Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. + :param pulumi.Input[bool] enable_zonal_shift: Whether zonal shift is enabled. Defaults to `false`. :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. :param pulumi.Input[int] idle_timeout: Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. :param pulumi.Input[bool] internal: If true, the LB will be internal. Defaults to `false`. @@ -543,6 +561,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enable_waf_fail_open", enable_waf_fail_open) if enable_xff_client_port is not None: pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) + if enable_zonal_shift is not None: + pulumi.set(__self__, "enable_zonal_shift", enable_zonal_shift) if enforce_security_group_inbound_rules_on_private_link_traffic is not None: pulumi.set(__self__, "enforce_security_group_inbound_rules_on_private_link_traffic", enforce_security_group_inbound_rules_on_private_link_traffic) if idle_timeout is not None: @@ -771,6 +791,18 @@ def enable_xff_client_port(self) -> Optional[pulumi.Input[bool]]: def enable_xff_client_port(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enable_xff_client_port", value) + @property + @pulumi.getter(name="enableZonalShift") + def enable_zonal_shift(self) -> Optional[pulumi.Input[bool]]: + """ + Whether zonal shift is enabled. Defaults to `false`. + """ + return pulumi.get(self, "enable_zonal_shift") + + @enable_zonal_shift.setter + def enable_zonal_shift(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_zonal_shift", value) + @property @pulumi.getter(name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic") def enforce_security_group_inbound_rules_on_private_link_traffic(self) -> Optional[pulumi.Input[str]]: @@ -980,6 +1012,7 @@ def __init__(__self__, enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + enable_zonal_shift: Optional[pulumi.Input[bool]] = None, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, idle_timeout: Optional[pulumi.Input[int]] = None, internal: Optional[pulumi.Input[bool]] = None, @@ -1106,6 +1139,7 @@ def __init__(__self__, :param pulumi.Input[bool] enable_tls_version_and_cipher_suite_headers: Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false` :param pulumi.Input[bool] enable_waf_fail_open: Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`. :param pulumi.Input[bool] enable_xff_client_port: Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. + :param pulumi.Input[bool] enable_zonal_shift: Whether zonal shift is enabled. Defaults to `false`. :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. :param pulumi.Input[int] idle_timeout: Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. :param pulumi.Input[bool] internal: If true, the LB will be internal. Defaults to `false`. @@ -1251,6 +1285,7 @@ def _internal_init(__self__, enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + enable_zonal_shift: Optional[pulumi.Input[bool]] = None, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, idle_timeout: Optional[pulumi.Input[int]] = None, internal: Optional[pulumi.Input[bool]] = None, @@ -1286,6 +1321,7 @@ def _internal_init(__self__, __props__.__dict__["enable_tls_version_and_cipher_suite_headers"] = enable_tls_version_and_cipher_suite_headers __props__.__dict__["enable_waf_fail_open"] = enable_waf_fail_open __props__.__dict__["enable_xff_client_port"] = enable_xff_client_port + __props__.__dict__["enable_zonal_shift"] = enable_zonal_shift __props__.__dict__["enforce_security_group_inbound_rules_on_private_link_traffic"] = enforce_security_group_inbound_rules_on_private_link_traffic __props__.__dict__["idle_timeout"] = idle_timeout __props__.__dict__["internal"] = internal @@ -1333,6 +1369,7 @@ def get(resource_name: str, enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, enable_xff_client_port: Optional[pulumi.Input[bool]] = None, + enable_zonal_shift: Optional[pulumi.Input[bool]] = None, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, idle_timeout: Optional[pulumi.Input[int]] = None, internal: Optional[pulumi.Input[bool]] = None, @@ -1372,6 +1409,7 @@ def get(resource_name: str, :param pulumi.Input[bool] enable_tls_version_and_cipher_suite_headers: Whether the two headers (`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. Only valid for Load Balancers of type `application`. Defaults to `false` :param pulumi.Input[bool] enable_waf_fail_open: Whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. Defaults to `false`. :param pulumi.Input[bool] enable_xff_client_port: Whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer in `application` load balancers. Defaults to `false`. + :param pulumi.Input[bool] enable_zonal_shift: Whether zonal shift is enabled. Defaults to `false`. :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Whether inbound security group rules are enforced for traffic originating from a PrivateLink. Only valid for Load Balancers of type `network`. The possible values are `on` and `off`. :param pulumi.Input[int] idle_timeout: Time in seconds that the connection is allowed to be idle. Only valid for Load Balancers of type `application`. Default: 60. :param pulumi.Input[bool] internal: If true, the LB will be internal. Defaults to `false`. @@ -1408,6 +1446,7 @@ def get(resource_name: str, __props__.__dict__["enable_tls_version_and_cipher_suite_headers"] = enable_tls_version_and_cipher_suite_headers __props__.__dict__["enable_waf_fail_open"] = enable_waf_fail_open __props__.__dict__["enable_xff_client_port"] = enable_xff_client_port + __props__.__dict__["enable_zonal_shift"] = enable_zonal_shift __props__.__dict__["enforce_security_group_inbound_rules_on_private_link_traffic"] = enforce_security_group_inbound_rules_on_private_link_traffic __props__.__dict__["idle_timeout"] = idle_timeout __props__.__dict__["internal"] = internal @@ -1554,6 +1593,14 @@ def enable_xff_client_port(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "enable_xff_client_port") + @property + @pulumi.getter(name="enableZonalShift") + def enable_zonal_shift(self) -> pulumi.Output[Optional[bool]]: + """ + Whether zonal shift is enabled. Defaults to `false`. + """ + return pulumi.get(self, "enable_zonal_shift") + @property @pulumi.getter(name="enforceSecurityGroupInboundRulesOnPrivateLinkTraffic") def enforce_security_group_inbound_rules_on_private_link_traffic(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/resiliencehub/__init__.py b/sdk/python/pulumi_aws/resiliencehub/__init__.py new file mode 100644 index 00000000000..7b6191243e6 --- /dev/null +++ b/sdk/python/pulumi_aws/resiliencehub/__init__.py @@ -0,0 +1,10 @@ +# 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! *** + +from .. import _utilities +import typing +# Export this package's modules as members: +from .resiliency_policy import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_aws/resiliencehub/_inputs.py b/sdk/python/pulumi_aws/resiliencehub/_inputs.py new file mode 100644 index 00000000000..b34af65ec24 --- /dev/null +++ b/sdk/python/pulumi_aws/resiliencehub/_inputs.py @@ -0,0 +1,405 @@ +# 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__ = [ + 'ResiliencyPolicyPolicyArgs', + 'ResiliencyPolicyPolicyArgsDict', + 'ResiliencyPolicyPolicyAzArgs', + 'ResiliencyPolicyPolicyAzArgsDict', + 'ResiliencyPolicyPolicyHardwareArgs', + 'ResiliencyPolicyPolicyHardwareArgsDict', + 'ResiliencyPolicyPolicyRegionArgs', + 'ResiliencyPolicyPolicyRegionArgsDict', + 'ResiliencyPolicyPolicySoftwareArgs', + 'ResiliencyPolicyPolicySoftwareArgsDict', + 'ResiliencyPolicyTimeoutsArgs', + 'ResiliencyPolicyTimeoutsArgsDict', +] + +MYPY = False + +if not MYPY: + class ResiliencyPolicyPolicyArgsDict(TypedDict): + az: NotRequired[pulumi.Input['ResiliencyPolicyPolicyAzArgsDict']] + """ + Specifies Availability Zone failure policy. See `policy.az` + """ + hardware: NotRequired[pulumi.Input['ResiliencyPolicyPolicyHardwareArgsDict']] + """ + Specifies Infrastructure failure policy. See `policy.hardware` + """ + region: NotRequired[pulumi.Input['ResiliencyPolicyPolicyRegionArgsDict']] + """ + Specifies Region failure policy. `policy.region` + """ + software: NotRequired[pulumi.Input['ResiliencyPolicyPolicySoftwareArgsDict']] + """ + Specifies Application failure policy. See `policy.software` + + The following arguments are optional: + """ +elif False: + ResiliencyPolicyPolicyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResiliencyPolicyPolicyArgs: + def __init__(__self__, *, + az: Optional[pulumi.Input['ResiliencyPolicyPolicyAzArgs']] = None, + hardware: Optional[pulumi.Input['ResiliencyPolicyPolicyHardwareArgs']] = None, + region: Optional[pulumi.Input['ResiliencyPolicyPolicyRegionArgs']] = None, + software: Optional[pulumi.Input['ResiliencyPolicyPolicySoftwareArgs']] = None): + """ + :param pulumi.Input['ResiliencyPolicyPolicyAzArgs'] az: Specifies Availability Zone failure policy. See `policy.az` + :param pulumi.Input['ResiliencyPolicyPolicyHardwareArgs'] hardware: Specifies Infrastructure failure policy. See `policy.hardware` + :param pulumi.Input['ResiliencyPolicyPolicyRegionArgs'] region: Specifies Region failure policy. `policy.region` + :param pulumi.Input['ResiliencyPolicyPolicySoftwareArgs'] software: Specifies Application failure policy. See `policy.software` + + The following arguments are optional: + """ + if az is not None: + pulumi.set(__self__, "az", az) + if hardware is not None: + pulumi.set(__self__, "hardware", hardware) + if region is not None: + pulumi.set(__self__, "region", region) + if software is not None: + pulumi.set(__self__, "software", software) + + @property + @pulumi.getter + def az(self) -> Optional[pulumi.Input['ResiliencyPolicyPolicyAzArgs']]: + """ + Specifies Availability Zone failure policy. See `policy.az` + """ + return pulumi.get(self, "az") + + @az.setter + def az(self, value: Optional[pulumi.Input['ResiliencyPolicyPolicyAzArgs']]): + pulumi.set(self, "az", value) + + @property + @pulumi.getter + def hardware(self) -> Optional[pulumi.Input['ResiliencyPolicyPolicyHardwareArgs']]: + """ + Specifies Infrastructure failure policy. See `policy.hardware` + """ + return pulumi.get(self, "hardware") + + @hardware.setter + def hardware(self, value: Optional[pulumi.Input['ResiliencyPolicyPolicyHardwareArgs']]): + pulumi.set(self, "hardware", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input['ResiliencyPolicyPolicyRegionArgs']]: + """ + Specifies Region failure policy. `policy.region` + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input['ResiliencyPolicyPolicyRegionArgs']]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def software(self) -> Optional[pulumi.Input['ResiliencyPolicyPolicySoftwareArgs']]: + """ + Specifies Application failure policy. See `policy.software` + + The following arguments are optional: + """ + return pulumi.get(self, "software") + + @software.setter + def software(self, value: Optional[pulumi.Input['ResiliencyPolicyPolicySoftwareArgs']]): + pulumi.set(self, "software", value) + + +if not MYPY: + class ResiliencyPolicyPolicyAzArgsDict(TypedDict): + rpo: pulumi.Input[str] + """ + Recovery Point Objective (RPO) as a Go duration. + """ + rto: pulumi.Input[str] + """ + Recovery Time Objective (RTO) as a Go duration. + """ +elif False: + ResiliencyPolicyPolicyAzArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResiliencyPolicyPolicyAzArgs: + def __init__(__self__, *, + rpo: pulumi.Input[str], + rto: pulumi.Input[str]): + """ + :param pulumi.Input[str] rpo: Recovery Point Objective (RPO) as a Go duration. + :param pulumi.Input[str] rto: Recovery Time Objective (RTO) as a Go duration. + """ + pulumi.set(__self__, "rpo", rpo) + pulumi.set(__self__, "rto", rto) + + @property + @pulumi.getter + def rpo(self) -> pulumi.Input[str]: + """ + Recovery Point Objective (RPO) as a Go duration. + """ + return pulumi.get(self, "rpo") + + @rpo.setter + def rpo(self, value: pulumi.Input[str]): + pulumi.set(self, "rpo", value) + + @property + @pulumi.getter + def rto(self) -> pulumi.Input[str]: + """ + Recovery Time Objective (RTO) as a Go duration. + """ + return pulumi.get(self, "rto") + + @rto.setter + def rto(self, value: pulumi.Input[str]): + pulumi.set(self, "rto", value) + + +if not MYPY: + class ResiliencyPolicyPolicyHardwareArgsDict(TypedDict): + rpo: pulumi.Input[str] + """ + Recovery Point Objective (RPO) as a Go duration. + """ + rto: pulumi.Input[str] + """ + Recovery Time Objective (RTO) as a Go duration. + """ +elif False: + ResiliencyPolicyPolicyHardwareArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResiliencyPolicyPolicyHardwareArgs: + def __init__(__self__, *, + rpo: pulumi.Input[str], + rto: pulumi.Input[str]): + """ + :param pulumi.Input[str] rpo: Recovery Point Objective (RPO) as a Go duration. + :param pulumi.Input[str] rto: Recovery Time Objective (RTO) as a Go duration. + """ + pulumi.set(__self__, "rpo", rpo) + pulumi.set(__self__, "rto", rto) + + @property + @pulumi.getter + def rpo(self) -> pulumi.Input[str]: + """ + Recovery Point Objective (RPO) as a Go duration. + """ + return pulumi.get(self, "rpo") + + @rpo.setter + def rpo(self, value: pulumi.Input[str]): + pulumi.set(self, "rpo", value) + + @property + @pulumi.getter + def rto(self) -> pulumi.Input[str]: + """ + Recovery Time Objective (RTO) as a Go duration. + """ + return pulumi.get(self, "rto") + + @rto.setter + def rto(self, value: pulumi.Input[str]): + pulumi.set(self, "rto", value) + + +if not MYPY: + class ResiliencyPolicyPolicyRegionArgsDict(TypedDict): + rpo: NotRequired[pulumi.Input[str]] + """ + Recovery Point Objective (RPO) as a Go duration. + """ + rto: NotRequired[pulumi.Input[str]] + """ + Recovery Time Objective (RTO) as a Go duration. + """ +elif False: + ResiliencyPolicyPolicyRegionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResiliencyPolicyPolicyRegionArgs: + def __init__(__self__, *, + rpo: Optional[pulumi.Input[str]] = None, + rto: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] rpo: Recovery Point Objective (RPO) as a Go duration. + :param pulumi.Input[str] rto: Recovery Time Objective (RTO) as a Go duration. + """ + if rpo is not None: + pulumi.set(__self__, "rpo", rpo) + if rto is not None: + pulumi.set(__self__, "rto", rto) + + @property + @pulumi.getter + def rpo(self) -> Optional[pulumi.Input[str]]: + """ + Recovery Point Objective (RPO) as a Go duration. + """ + return pulumi.get(self, "rpo") + + @rpo.setter + def rpo(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rpo", value) + + @property + @pulumi.getter + def rto(self) -> Optional[pulumi.Input[str]]: + """ + Recovery Time Objective (RTO) as a Go duration. + """ + return pulumi.get(self, "rto") + + @rto.setter + def rto(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rto", value) + + +if not MYPY: + class ResiliencyPolicyPolicySoftwareArgsDict(TypedDict): + rpo: pulumi.Input[str] + """ + Recovery Point Objective (RPO) as a Go duration. + """ + rto: pulumi.Input[str] + """ + Recovery Time Objective (RTO) as a Go duration. + """ +elif False: + ResiliencyPolicyPolicySoftwareArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResiliencyPolicyPolicySoftwareArgs: + def __init__(__self__, *, + rpo: pulumi.Input[str], + rto: pulumi.Input[str]): + """ + :param pulumi.Input[str] rpo: Recovery Point Objective (RPO) as a Go duration. + :param pulumi.Input[str] rto: Recovery Time Objective (RTO) as a Go duration. + """ + pulumi.set(__self__, "rpo", rpo) + pulumi.set(__self__, "rto", rto) + + @property + @pulumi.getter + def rpo(self) -> pulumi.Input[str]: + """ + Recovery Point Objective (RPO) as a Go duration. + """ + return pulumi.get(self, "rpo") + + @rpo.setter + def rpo(self, value: pulumi.Input[str]): + pulumi.set(self, "rpo", value) + + @property + @pulumi.getter + def rto(self) -> pulumi.Input[str]: + """ + Recovery Time Objective (RTO) as a Go duration. + """ + return pulumi.get(self, "rto") + + @rto.setter + def rto(self, value: pulumi.Input[str]): + pulumi.set(self, "rto", value) + + +if not MYPY: + class ResiliencyPolicyTimeoutsArgsDict(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: + ResiliencyPolicyTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResiliencyPolicyTimeoutsArgs: + 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) + + diff --git a/sdk/python/pulumi_aws/resiliencehub/outputs.py b/sdk/python/pulumi_aws/resiliencehub/outputs.py new file mode 100644 index 00000000000..00c82714fc2 --- /dev/null +++ b/sdk/python/pulumi_aws/resiliencehub/outputs.py @@ -0,0 +1,246 @@ +# 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 + +__all__ = [ + 'ResiliencyPolicyPolicy', + 'ResiliencyPolicyPolicyAz', + 'ResiliencyPolicyPolicyHardware', + 'ResiliencyPolicyPolicyRegion', + 'ResiliencyPolicyPolicySoftware', + 'ResiliencyPolicyTimeouts', +] + +@pulumi.output_type +class ResiliencyPolicyPolicy(dict): + def __init__(__self__, *, + az: Optional['outputs.ResiliencyPolicyPolicyAz'] = None, + hardware: Optional['outputs.ResiliencyPolicyPolicyHardware'] = None, + region: Optional['outputs.ResiliencyPolicyPolicyRegion'] = None, + software: Optional['outputs.ResiliencyPolicyPolicySoftware'] = None): + """ + :param 'ResiliencyPolicyPolicyAzArgs' az: Specifies Availability Zone failure policy. See `policy.az` + :param 'ResiliencyPolicyPolicyHardwareArgs' hardware: Specifies Infrastructure failure policy. See `policy.hardware` + :param 'ResiliencyPolicyPolicyRegionArgs' region: Specifies Region failure policy. `policy.region` + :param 'ResiliencyPolicyPolicySoftwareArgs' software: Specifies Application failure policy. See `policy.software` + + The following arguments are optional: + """ + if az is not None: + pulumi.set(__self__, "az", az) + if hardware is not None: + pulumi.set(__self__, "hardware", hardware) + if region is not None: + pulumi.set(__self__, "region", region) + if software is not None: + pulumi.set(__self__, "software", software) + + @property + @pulumi.getter + def az(self) -> Optional['outputs.ResiliencyPolicyPolicyAz']: + """ + Specifies Availability Zone failure policy. See `policy.az` + """ + return pulumi.get(self, "az") + + @property + @pulumi.getter + def hardware(self) -> Optional['outputs.ResiliencyPolicyPolicyHardware']: + """ + Specifies Infrastructure failure policy. See `policy.hardware` + """ + return pulumi.get(self, "hardware") + + @property + @pulumi.getter + def region(self) -> Optional['outputs.ResiliencyPolicyPolicyRegion']: + """ + Specifies Region failure policy. `policy.region` + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter + def software(self) -> Optional['outputs.ResiliencyPolicyPolicySoftware']: + """ + Specifies Application failure policy. See `policy.software` + + The following arguments are optional: + """ + return pulumi.get(self, "software") + + +@pulumi.output_type +class ResiliencyPolicyPolicyAz(dict): + def __init__(__self__, *, + rpo: str, + rto: str): + """ + :param str rpo: Recovery Point Objective (RPO) as a Go duration. + :param str rto: Recovery Time Objective (RTO) as a Go duration. + """ + pulumi.set(__self__, "rpo", rpo) + pulumi.set(__self__, "rto", rto) + + @property + @pulumi.getter + def rpo(self) -> str: + """ + Recovery Point Objective (RPO) as a Go duration. + """ + return pulumi.get(self, "rpo") + + @property + @pulumi.getter + def rto(self) -> str: + """ + Recovery Time Objective (RTO) as a Go duration. + """ + return pulumi.get(self, "rto") + + +@pulumi.output_type +class ResiliencyPolicyPolicyHardware(dict): + def __init__(__self__, *, + rpo: str, + rto: str): + """ + :param str rpo: Recovery Point Objective (RPO) as a Go duration. + :param str rto: Recovery Time Objective (RTO) as a Go duration. + """ + pulumi.set(__self__, "rpo", rpo) + pulumi.set(__self__, "rto", rto) + + @property + @pulumi.getter + def rpo(self) -> str: + """ + Recovery Point Objective (RPO) as a Go duration. + """ + return pulumi.get(self, "rpo") + + @property + @pulumi.getter + def rto(self) -> str: + """ + Recovery Time Objective (RTO) as a Go duration. + """ + return pulumi.get(self, "rto") + + +@pulumi.output_type +class ResiliencyPolicyPolicyRegion(dict): + def __init__(__self__, *, + rpo: Optional[str] = None, + rto: Optional[str] = None): + """ + :param str rpo: Recovery Point Objective (RPO) as a Go duration. + :param str rto: Recovery Time Objective (RTO) as a Go duration. + """ + if rpo is not None: + pulumi.set(__self__, "rpo", rpo) + if rto is not None: + pulumi.set(__self__, "rto", rto) + + @property + @pulumi.getter + def rpo(self) -> Optional[str]: + """ + Recovery Point Objective (RPO) as a Go duration. + """ + return pulumi.get(self, "rpo") + + @property + @pulumi.getter + def rto(self) -> Optional[str]: + """ + Recovery Time Objective (RTO) as a Go duration. + """ + return pulumi.get(self, "rto") + + +@pulumi.output_type +class ResiliencyPolicyPolicySoftware(dict): + def __init__(__self__, *, + rpo: str, + rto: str): + """ + :param str rpo: Recovery Point Objective (RPO) as a Go duration. + :param str rto: Recovery Time Objective (RTO) as a Go duration. + """ + pulumi.set(__self__, "rpo", rpo) + pulumi.set(__self__, "rto", rto) + + @property + @pulumi.getter + def rpo(self) -> str: + """ + Recovery Point Objective (RPO) as a Go duration. + """ + return pulumi.get(self, "rpo") + + @property + @pulumi.getter + def rto(self) -> str: + """ + Recovery Time Objective (RTO) as a Go duration. + """ + return pulumi.get(self, "rto") + + +@pulumi.output_type +class ResiliencyPolicyTimeouts(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") + + diff --git a/sdk/python/pulumi_aws/resiliencehub/resiliency_policy.py b/sdk/python/pulumi_aws/resiliencehub/resiliency_policy.py new file mode 100644 index 00000000000..7a6d7e5157d --- /dev/null +++ b/sdk/python/pulumi_aws/resiliencehub/resiliency_policy.py @@ -0,0 +1,569 @@ +# 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__ = ['ResiliencyPolicyArgs', 'ResiliencyPolicy'] + +@pulumi.input_type +class ResiliencyPolicyArgs: + def __init__(__self__, *, + tier: pulumi.Input[str], + data_location_constraint: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input['ResiliencyPolicyPolicyArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['ResiliencyPolicyTimeoutsArgs']] = None): + """ + The set of arguments for constructing a ResiliencyPolicy resource. + :param pulumi.Input[str] tier: Resiliency Policy Tier. + Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + :param pulumi.Input[str] data_location_constraint: Data Location Constraint of the Policy. + Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + :param pulumi.Input[str] description: Description of Resiliency Policy. + :param pulumi.Input[str] name: Name of Resiliency Policy. + Must be between 2 and 60 characters long. + Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + :param pulumi.Input['ResiliencyPolicyPolicyArgs'] policy: The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + + The following arguments are optional: + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + pulumi.set(__self__, "tier", tier) + if data_location_constraint is not None: + pulumi.set(__self__, "data_location_constraint", data_location_constraint) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if policy is not None: + pulumi.set(__self__, "policy", policy) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter + def tier(self) -> pulumi.Input[str]: + """ + Resiliency Policy Tier. + Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + """ + return pulumi.get(self, "tier") + + @tier.setter + def tier(self, value: pulumi.Input[str]): + pulumi.set(self, "tier", value) + + @property + @pulumi.getter(name="dataLocationConstraint") + def data_location_constraint(self) -> Optional[pulumi.Input[str]]: + """ + Data Location Constraint of the Policy. + Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + """ + return pulumi.get(self, "data_location_constraint") + + @data_location_constraint.setter + def data_location_constraint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_location_constraint", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of Resiliency Policy. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of Resiliency Policy. + Must be between 2 and 60 characters long. + Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def policy(self) -> Optional[pulumi.Input['ResiliencyPolicyPolicyArgs']]: + """ + The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + + The following arguments are optional: + """ + return pulumi.get(self, "policy") + + @policy.setter + def policy(self, value: Optional[pulumi.Input['ResiliencyPolicyPolicyArgs']]): + pulumi.set(self, "policy", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['ResiliencyPolicyTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['ResiliencyPolicyTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _ResiliencyPolicyState: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None, + data_location_constraint: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + estimated_cost_tier: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input['ResiliencyPolicyPolicyArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['ResiliencyPolicyTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering ResiliencyPolicy resources. + :param pulumi.Input[str] arn: ARN of the Resiliency Policy. + :param pulumi.Input[str] data_location_constraint: Data Location Constraint of the Policy. + Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + :param pulumi.Input[str] description: Description of Resiliency Policy. + :param pulumi.Input[str] estimated_cost_tier: Estimated Cost Tier of the Resiliency Policy. + :param pulumi.Input[str] name: Name of Resiliency Policy. + Must be between 2 and 60 characters long. + Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + :param pulumi.Input['ResiliencyPolicyPolicyArgs'] policy: The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + + The following arguments are optional: + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[str] tier: Resiliency Policy Tier. + Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + """ + if arn is not None: + pulumi.set(__self__, "arn", arn) + if data_location_constraint is not None: + pulumi.set(__self__, "data_location_constraint", data_location_constraint) + if description is not None: + pulumi.set(__self__, "description", description) + if estimated_cost_tier is not None: + pulumi.set(__self__, "estimated_cost_tier", estimated_cost_tier) + if name is not None: + pulumi.set(__self__, "name", name) + if policy is not None: + pulumi.set(__self__, "policy", policy) + 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 tier is not None: + pulumi.set(__self__, "tier", tier) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the Resiliency Policy. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="dataLocationConstraint") + def data_location_constraint(self) -> Optional[pulumi.Input[str]]: + """ + Data Location Constraint of the Policy. + Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + """ + return pulumi.get(self, "data_location_constraint") + + @data_location_constraint.setter + def data_location_constraint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_location_constraint", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of Resiliency Policy. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="estimatedCostTier") + def estimated_cost_tier(self) -> Optional[pulumi.Input[str]]: + """ + Estimated Cost Tier of the Resiliency Policy. + """ + return pulumi.get(self, "estimated_cost_tier") + + @estimated_cost_tier.setter + def estimated_cost_tier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "estimated_cost_tier", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of Resiliency Policy. + Must be between 2 and 60 characters long. + Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def policy(self) -> Optional[pulumi.Input['ResiliencyPolicyPolicyArgs']]: + """ + The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + + The following arguments are optional: + """ + return pulumi.get(self, "policy") + + @policy.setter + def policy(self, value: Optional[pulumi.Input['ResiliencyPolicyPolicyArgs']]): + pulumi.set(self, "policy", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + @property + @pulumi.getter + def tier(self) -> Optional[pulumi.Input[str]]: + """ + Resiliency Policy Tier. + Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + """ + return pulumi.get(self, "tier") + + @tier.setter + def tier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tier", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['ResiliencyPolicyTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['ResiliencyPolicyTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class ResiliencyPolicy(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + data_location_constraint: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[Union['ResiliencyPolicyPolicyArgs', 'ResiliencyPolicyPolicyArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['ResiliencyPolicyTimeoutsArgs', 'ResiliencyPolicyTimeoutsArgsDict']]] = None, + __props__=None): + """ + Resource for managing an AWS Resilience Hub Resiliency Policy. + + ## Import + + Using `pulumi import`, import Resilience Hub Resiliency Policy using the `arn`. For example: + + ```sh + $ pulumi import aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy example arn:aws:resiliencehub:us-east-1:123456789012:resiliency-policy/8c1cfa29-d1dd-4421-aa68-c9f64cced4c2 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] data_location_constraint: Data Location Constraint of the Policy. + Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + :param pulumi.Input[str] description: Description of Resiliency Policy. + :param pulumi.Input[str] name: Name of Resiliency Policy. + Must be between 2 and 60 characters long. + Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + :param pulumi.Input[Union['ResiliencyPolicyPolicyArgs', 'ResiliencyPolicyPolicyArgsDict']] policy: The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + + The following arguments are optional: + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[str] tier: Resiliency Policy Tier. + Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ResiliencyPolicyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS Resilience Hub Resiliency Policy. + + ## Import + + Using `pulumi import`, import Resilience Hub Resiliency Policy using the `arn`. For example: + + ```sh + $ pulumi import aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy example arn:aws:resiliencehub:us-east-1:123456789012:resiliency-policy/8c1cfa29-d1dd-4421-aa68-c9f64cced4c2 + ``` + + :param str resource_name: The name of the resource. + :param ResiliencyPolicyArgs 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(ResiliencyPolicyArgs, 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, + data_location_constraint: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[Union['ResiliencyPolicyPolicyArgs', 'ResiliencyPolicyPolicyArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['ResiliencyPolicyTimeoutsArgs', 'ResiliencyPolicyTimeoutsArgsDict']]] = 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__ = ResiliencyPolicyArgs.__new__(ResiliencyPolicyArgs) + + __props__.__dict__["data_location_constraint"] = data_location_constraint + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + __props__.__dict__["policy"] = policy + __props__.__dict__["tags"] = tags + if tier is None and not opts.urn: + raise TypeError("Missing required property 'tier'") + __props__.__dict__["tier"] = tier + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["arn"] = None + __props__.__dict__["estimated_cost_tier"] = None + __props__.__dict__["tags_all"] = None + super(ResiliencyPolicy, __self__).__init__( + 'aws:resiliencehub/resiliencyPolicy:ResiliencyPolicy', + 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, + data_location_constraint: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + estimated_cost_tier: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy: Optional[pulumi.Input[Union['ResiliencyPolicyPolicyArgs', 'ResiliencyPolicyPolicyArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['ResiliencyPolicyTimeoutsArgs', 'ResiliencyPolicyTimeoutsArgsDict']]] = None) -> 'ResiliencyPolicy': + """ + Get an existing ResiliencyPolicy 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: ARN of the Resiliency Policy. + :param pulumi.Input[str] data_location_constraint: Data Location Constraint of the Policy. + Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + :param pulumi.Input[str] description: Description of Resiliency Policy. + :param pulumi.Input[str] estimated_cost_tier: Estimated Cost Tier of the Resiliency Policy. + :param pulumi.Input[str] name: Name of Resiliency Policy. + Must be between 2 and 60 characters long. + Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + :param pulumi.Input[Union['ResiliencyPolicyPolicyArgs', 'ResiliencyPolicyPolicyArgsDict']] policy: The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + + The following arguments are optional: + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[str] tier: Resiliency Policy Tier. + Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ResiliencyPolicyState.__new__(_ResiliencyPolicyState) + + __props__.__dict__["arn"] = arn + __props__.__dict__["data_location_constraint"] = data_location_constraint + __props__.__dict__["description"] = description + __props__.__dict__["estimated_cost_tier"] = estimated_cost_tier + __props__.__dict__["name"] = name + __props__.__dict__["policy"] = policy + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["tier"] = tier + __props__.__dict__["timeouts"] = timeouts + return ResiliencyPolicy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + ARN of the Resiliency Policy. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="dataLocationConstraint") + def data_location_constraint(self) -> pulumi.Output[str]: + """ + Data Location Constraint of the Policy. + Valid values are `AnyLocation`, `SameContinent`, and `SameCountry`. + """ + return pulumi.get(self, "data_location_constraint") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Description of Resiliency Policy. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="estimatedCostTier") + def estimated_cost_tier(self) -> pulumi.Output[str]: + """ + Estimated Cost Tier of the Resiliency Policy. + """ + return pulumi.get(self, "estimated_cost_tier") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of Resiliency Policy. + Must be between 2 and 60 characters long. + Must start with an alphanumeric character and contain alphanumeric characters, underscores, or hyphens. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def policy(self) -> pulumi.Output[Optional['outputs.ResiliencyPolicyPolicy']]: + """ + The type of resiliency policy to be created, including the recovery time objective (RTO) and recovery point objective (RPO) in seconds. See `policy`. + + The following arguments are optional: + """ + return pulumi.get(self, "policy") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter + def tier(self) -> pulumi.Output[str]: + """ + Resiliency Policy Tier. + Valid values are `MissionCritical`, `Critical`, `Important`, `CoreServices`, `NonCritical`, and `NotApplicable`. + """ + return pulumi.get(self, "tier") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.ResiliencyPolicyTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/route53/_inputs.py b/sdk/python/pulumi_aws/route53/_inputs.py index 439b9af727a..1fcf0934dd5 100644 --- a/sdk/python/pulumi_aws/route53/_inputs.py +++ b/sdk/python/pulumi_aws/route53/_inputs.py @@ -78,9 +78,9 @@ class ProfilesAssociationTimeoutsArgsDict(TypedDict): """ A string that can be [parsed as a duration](https://pkg.go.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. """ - read: NotRequired[pulumi.Input[str]] + 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). Read operations occur during any refresh or planning operation when refresh is enabled. + A string that can be [parsed as a duration](https://pkg.go.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: ProfilesAssociationTimeoutsArgsDict: TypeAlias = Mapping[str, Any] @@ -90,18 +90,18 @@ class ProfilesAssociationTimeoutsArgs: def __init__(__self__, *, create: Optional[pulumi.Input[str]] = None, delete: Optional[pulumi.Input[str]] = None, - read: 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] read: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. + :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 read is not None: - pulumi.set(__self__, "read", read) + if update is not None: + pulumi.set(__self__, "update", update) @property @pulumi.getter @@ -129,15 +129,15 @@ def delete(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter - def read(self) -> Optional[pulumi.Input[str]]: + 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). Read operations occur during any refresh or planning operation when refresh is enabled. + A string that can be [parsed as a duration](https://pkg.go.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, "read") + return pulumi.get(self, "update") - @read.setter - def read(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "read", value) + @update.setter + def update(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update", value) if not MYPY: diff --git a/sdk/python/pulumi_aws/route53/outputs.py b/sdk/python/pulumi_aws/route53/outputs.py index 86a7b537912..89790e446eb 100644 --- a/sdk/python/pulumi_aws/route53/outputs.py +++ b/sdk/python/pulumi_aws/route53/outputs.py @@ -50,18 +50,18 @@ class ProfilesAssociationTimeouts(dict): def __init__(__self__, *, create: Optional[str] = None, delete: Optional[str] = None, - read: 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 read: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled. + :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 read is not None: - pulumi.set(__self__, "read", read) + if update is not None: + pulumi.set(__self__, "update", update) @property @pulumi.getter @@ -81,11 +81,11 @@ def delete(self) -> Optional[str]: @property @pulumi.getter - def read(self) -> Optional[str]: + 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). Read operations occur during any refresh or planning operation when refresh is enabled. + A string that can be [parsed as a duration](https://pkg.go.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, "read") + return pulumi.get(self, "update") @pulumi.output_type diff --git a/sdk/python/pulumi_aws/route53/profiles_association.py b/sdk/python/pulumi_aws/route53/profiles_association.py index c15a96541b0..e717fea5e85 100644 --- a/sdk/python/pulumi_aws/route53/profiles_association.py +++ b/sdk/python/pulumi_aws/route53/profiles_association.py @@ -30,7 +30,7 @@ def __init__(__self__, *, The set of arguments for constructing a ProfilesAssociation resource. :param pulumi.Input[str] profile_id: ID of the profile associated with the VPC. :param pulumi.Input[str] resource_id: Resource ID of the VPC the profile to be associated with. - :param pulumi.Input[str] name: Name of the Profile Association. + :param pulumi.Input[str] name: Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`. """ pulumi.set(__self__, "profile_id", profile_id) pulumi.set(__self__, "resource_id", resource_id) @@ -69,7 +69,7 @@ def resource_id(self, value: pulumi.Input[str]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the Profile Association. + Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`. """ return pulumi.get(self, "name") @@ -111,10 +111,10 @@ def __init__(__self__, *, timeouts: Optional[pulumi.Input['ProfilesAssociationTimeoutsArgs']] = None): """ Input properties used for looking up and filtering ProfilesAssociation resources. - :param pulumi.Input[str] name: Name of the Profile Association. + :param pulumi.Input[str] name: Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`. :param pulumi.Input[str] profile_id: ID of the profile associated with the VPC. :param pulumi.Input[str] resource_id: Resource ID of the VPC the profile to be associated with. - :param pulumi.Input[str] status: Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + :param pulumi.Input[str] status: Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. :param pulumi.Input[str] status_message: Status message of the Profile Association. """ if arn is not None: @@ -154,7 +154,7 @@ def arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the Profile Association. + Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`. """ return pulumi.get(self, "name") @@ -199,7 +199,7 @@ def resource_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def status(self) -> Optional[pulumi.Input[str]]: """ - Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. """ return pulumi.get(self, "status") @@ -274,7 +274,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] name: Name of the Profile Association. + :param pulumi.Input[str] name: Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`. :param pulumi.Input[str] profile_id: ID of the profile associated with the VPC. :param pulumi.Input[str] resource_id: Resource ID of the VPC the profile to be associated with. """ @@ -367,10 +367,10 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] name: Name of the Profile Association. + :param pulumi.Input[str] name: Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`. :param pulumi.Input[str] profile_id: ID of the profile associated with the VPC. :param pulumi.Input[str] resource_id: Resource ID of the VPC the profile to be associated with. - :param pulumi.Input[str] status: Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + :param pulumi.Input[str] status: Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. :param pulumi.Input[str] status_message: Status message of the Profile Association. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -398,7 +398,7 @@ def arn(self) -> pulumi.Output[str]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - Name of the Profile Association. + Name of the Profile Association. Must match a regex of `(?!^[0-9]+$)([a-zA-Z0-9\\\\-_' ']+)`. """ return pulumi.get(self, "name") @@ -427,7 +427,7 @@ def resource_id(self) -> pulumi.Output[str]: @pulumi.getter def status(self) -> pulumi.Output[str]: """ - Status of the Profile Association. Valid values [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) + Status of the Profile Association. See the [AWS docs](https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53profiles_Profile.html) for valid values. """ return pulumi.get(self, "status") diff --git a/sdk/python/pulumi_aws/sagemaker/__init__.py b/sdk/python/pulumi_aws/sagemaker/__init__.py index 31ac68af123..ac6b1577365 100644 --- a/sdk/python/pulumi_aws/sagemaker/__init__.py +++ b/sdk/python/pulumi_aws/sagemaker/__init__.py @@ -17,9 +17,11 @@ from .feature_group import * from .flow_definition import * from .get_prebuilt_ecr_image import * +from .hub import * from .human_task_ui import * from .image import * from .image_version import * +from .mlflow_tracking_server import * from .model import * from .model_package_group import * from .model_package_group_policy import * diff --git a/sdk/python/pulumi_aws/sagemaker/_inputs.py b/sdk/python/pulumi_aws/sagemaker/_inputs.py index 0be1934ff68..167f658b675 100644 --- a/sdk/python/pulumi_aws/sagemaker/_inputs.py +++ b/sdk/python/pulumi_aws/sagemaker/_inputs.py @@ -87,12 +87,18 @@ 'DomainDefaultSpaceSettingsCustomPosixUserConfigArgsDict', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsArgsDict', + 'DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs', + 'DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict', + 'DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs', + 'DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgsDict', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArgs', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArgsDict', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgsDict', + 'DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs', + 'DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgsDict', 'DomainDefaultSpaceSettingsJupyterServerAppSettingsArgs', 'DomainDefaultSpaceSettingsJupyterServerAppSettingsArgsDict', 'DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgs', @@ -115,6 +121,8 @@ 'DomainDefaultUserSettingsCanvasAppSettingsArgsDict', 'DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsArgs', 'DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsArgsDict', + 'DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs', + 'DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgsDict', 'DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs', 'DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsArgsDict', 'DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs', @@ -129,6 +137,10 @@ 'DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettingsArgsDict', 'DomainDefaultUserSettingsCodeEditorAppSettingsArgs', 'DomainDefaultUserSettingsCodeEditorAppSettingsArgsDict', + 'DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs', + 'DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict', + 'DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs', + 'DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict', 'DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArgs', 'DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArgsDict', 'DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs', @@ -141,12 +153,18 @@ 'DomainDefaultUserSettingsCustomPosixUserConfigArgsDict', 'DomainDefaultUserSettingsJupyterLabAppSettingsArgs', 'DomainDefaultUserSettingsJupyterLabAppSettingsArgsDict', + 'DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs', + 'DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict', + 'DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs', + 'DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict', 'DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs', 'DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgsDict', 'DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArgs', 'DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArgsDict', 'DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs', 'DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgsDict', + 'DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs', + 'DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgsDict', 'DomainDefaultUserSettingsJupyterServerAppSettingsArgs', 'DomainDefaultUserSettingsJupyterServerAppSettingsArgsDict', 'DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryArgs', @@ -245,6 +263,10 @@ 'EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSizeArgsDict', 'FeatureGroupFeatureDefinitionArgs', 'FeatureGroupFeatureDefinitionArgsDict', + 'FeatureGroupFeatureDefinitionCollectionConfigArgs', + 'FeatureGroupFeatureDefinitionCollectionConfigArgsDict', + 'FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs', + 'FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgsDict', 'FeatureGroupOfflineStoreConfigArgs', 'FeatureGroupOfflineStoreConfigArgsDict', 'FeatureGroupOfflineStoreConfigDataCatalogConfigArgs', @@ -257,6 +279,8 @@ 'FeatureGroupOnlineStoreConfigSecurityConfigArgsDict', 'FeatureGroupOnlineStoreConfigTtlDurationArgs', 'FeatureGroupOnlineStoreConfigTtlDurationArgsDict', + 'FeatureGroupThroughputConfigArgs', + 'FeatureGroupThroughputConfigArgsDict', 'FlowDefinitionHumanLoopActivationConfigArgs', 'FlowDefinitionHumanLoopActivationConfigArgsDict', 'FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfigArgs', @@ -271,6 +295,8 @@ 'FlowDefinitionHumanLoopRequestSourceArgsDict', 'FlowDefinitionOutputConfigArgs', 'FlowDefinitionOutputConfigArgsDict', + 'HubS3StorageConfigArgs', + 'HubS3StorageConfigArgsDict', 'HumanTaskUIUiTemplateArgs', 'HumanTaskUIUiTemplateArgsDict', 'ModelContainerArgs', @@ -325,6 +351,10 @@ 'SpaceSpaceSettingsArgsDict', 'SpaceSpaceSettingsCodeEditorAppSettingsArgs', 'SpaceSpaceSettingsCodeEditorAppSettingsArgsDict', + 'SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs', + 'SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict', + 'SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs', + 'SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict', 'SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs', 'SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgsDict', 'SpaceSpaceSettingsCustomFileSystemArgs', @@ -333,6 +363,10 @@ 'SpaceSpaceSettingsCustomFileSystemEfsFileSystemArgsDict', 'SpaceSpaceSettingsJupyterLabAppSettingsArgs', 'SpaceSpaceSettingsJupyterLabAppSettingsArgsDict', + 'SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs', + 'SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict', + 'SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs', + 'SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict', 'SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs', 'SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgsDict', 'SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs', @@ -361,6 +395,8 @@ 'UserProfileUserSettingsCanvasAppSettingsArgsDict', 'UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsArgs', 'UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsArgsDict', + 'UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs', + 'UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgsDict', 'UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs', 'UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgsDict', 'UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs', @@ -375,6 +411,10 @@ 'UserProfileUserSettingsCanvasAppSettingsWorkspaceSettingsArgsDict', 'UserProfileUserSettingsCodeEditorAppSettingsArgs', 'UserProfileUserSettingsCodeEditorAppSettingsArgsDict', + 'UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs', + 'UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict', + 'UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs', + 'UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict', 'UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs', 'UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgsDict', 'UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs', @@ -387,12 +427,18 @@ 'UserProfileUserSettingsCustomPosixUserConfigArgsDict', 'UserProfileUserSettingsJupyterLabAppSettingsArgs', 'UserProfileUserSettingsJupyterLabAppSettingsArgsDict', + 'UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs', + 'UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict', + 'UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs', + 'UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict', 'UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArgs', 'UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArgsDict', 'UserProfileUserSettingsJupyterLabAppSettingsCustomImageArgs', 'UserProfileUserSettingsJupyterLabAppSettingsCustomImageArgsDict', 'UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs', 'UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgsDict', + 'UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs', + 'UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgsDict', 'UserProfileUserSettingsJupyterServerAppSettingsArgs', 'UserProfileUserSettingsJupyterServerAppSettingsArgsDict', 'UserProfileUserSettingsJupyterServerAppSettingsCodeRepositoryArgs', @@ -2648,6 +2694,14 @@ def uid(self, value: pulumi.Input[int]): if not MYPY: class DomainDefaultSpaceSettingsJupyterLabAppSettingsArgsDict(TypedDict): + app_lifecycle_management: NotRequired[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict']] + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + built_in_lifecycle_config_arn: NotRequired[pulumi.Input[str]] + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ code_repositories: NotRequired[pulumi.Input[Sequence[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgsDict']]]] """ A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. @@ -2660,6 +2714,10 @@ class DomainDefaultSpaceSettingsJupyterLabAppSettingsArgsDict(TypedDict): """ The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below. """ + emr_settings: NotRequired[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgsDict']] + """ + The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + """ lifecycle_config_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ The Amazon Resource Name (ARN) of the Lifecycle Configurations. @@ -2670,25 +2728,61 @@ class DomainDefaultSpaceSettingsJupyterLabAppSettingsArgsDict(TypedDict): @pulumi.input_type class DomainDefaultSpaceSettingsJupyterLabAppSettingsArgs: def __init__(__self__, *, + app_lifecycle_management: Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']] = None, + built_in_lifecycle_config_arn: Optional[pulumi.Input[str]] = None, code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs']]]] = None, custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArgs']]]] = None, default_resource_spec: Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs']] = None, + emr_settings: Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs']] = None, lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ + :param pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs'] app_lifecycle_management: Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + :param pulumi.Input[str] built_in_lifecycle_config_arn: The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. :param pulumi.Input[Sequence[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs']]] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. :param pulumi.Input[Sequence[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArgs']]] custom_images: A list of custom SageMaker images that are configured to run as a JupyterLab app. see `custom_image` Block below. :param pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below. + :param pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs'] emr_settings: The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) + if built_in_lifecycle_config_arn is not None: + pulumi.set(__self__, "built_in_lifecycle_config_arn", built_in_lifecycle_config_arn) if code_repositories is not None: pulumi.set(__self__, "code_repositories", code_repositories) if custom_images is not None: pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if emr_settings is not None: + pulumi.set(__self__, "emr_settings", emr_settings) if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']]: + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @app_lifecycle_management.setter + def app_lifecycle_management(self, value: Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']]): + pulumi.set(self, "app_lifecycle_management", value) + + @property + @pulumi.getter(name="builtInLifecycleConfigArn") + def built_in_lifecycle_config_arn(self) -> Optional[pulumi.Input[str]]: + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ + return pulumi.get(self, "built_in_lifecycle_config_arn") + + @built_in_lifecycle_config_arn.setter + def built_in_lifecycle_config_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "built_in_lifecycle_config_arn", value) + @property @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs']]]]: @@ -2725,6 +2819,18 @@ def default_resource_spec(self) -> Optional[pulumi.Input['DomainDefaultSpaceSett def default_resource_spec(self, value: Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs']]): pulumi.set(self, "default_resource_spec", value) + @property + @pulumi.getter(name="emrSettings") + def emr_settings(self) -> Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs']]: + """ + The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + """ + return pulumi.get(self, "emr_settings") + + @emr_settings.setter + def emr_settings(self, value: Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs']]): + pulumi.set(self, "emr_settings", value) + @property @pulumi.getter(name="lifecycleConfigArns") def lifecycle_config_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -2738,6 +2844,130 @@ def lifecycle_config_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Inp pulumi.set(self, "lifecycle_config_arns", value) +if not MYPY: + class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict(TypedDict): + idle_settings: NotRequired[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict']] + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ +elif False: + DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs: + def __init__(__self__, *, + idle_settings: Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']] = None): + """ + :param pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs'] idle_settings: Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']]: + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + @idle_settings.setter + def idle_settings(self, value: Optional[pulumi.Input['DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']]): + pulumi.set(self, "idle_settings", value) + + +if not MYPY: + class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict(TypedDict): + idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + lifecycle_management: NotRequired[pulumi.Input[str]] + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + max_idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + min_idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ +elif False: + DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs: + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + lifecycle_management: Optional[pulumi.Input[str]] = None, + max_idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + min_idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + :param pulumi.Input[str] lifecycle_management: Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + :param pulumi.Input[int] max_idle_timeout_in_minutes: The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + :param pulumi.Input[int] min_idle_timeout_in_minutes: The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + if lifecycle_management is not None: + pulumi.set(__self__, "lifecycle_management", lifecycle_management) + if max_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "max_idle_timeout_in_minutes", max_idle_timeout_in_minutes) + if min_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "min_idle_timeout_in_minutes", min_idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @idle_timeout_in_minutes.setter + def idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "idle_timeout_in_minutes", value) + + @property + @pulumi.getter(name="lifecycleManagement") + def lifecycle_management(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "lifecycle_management") + + @lifecycle_management.setter + def lifecycle_management(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "lifecycle_management", value) + + @property + @pulumi.getter(name="maxIdleTimeoutInMinutes") + def max_idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "max_idle_timeout_in_minutes") + + @max_idle_timeout_in_minutes.setter + def max_idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_idle_timeout_in_minutes", value) + + @property + @pulumi.getter(name="minIdleTimeoutInMinutes") + def min_idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "min_idle_timeout_in_minutes") + + @min_idle_timeout_in_minutes.setter + def min_idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_idle_timeout_in_minutes", value) + + if not MYPY: class DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgsDict(TypedDict): repository_url: pulumi.Input[str] @@ -2951,6 +3181,58 @@ def sagemaker_image_version_arn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "sagemaker_image_version_arn", value) +if not MYPY: + class DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgsDict(TypedDict): + assumable_role_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + """ + execution_role_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ +elif False: + DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs: + def __init__(__self__, *, + assumable_role_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + execution_role_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] assumable_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + :param pulumi.Input[Sequence[pulumi.Input[str]]] execution_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + if assumable_role_arns is not None: + pulumi.set(__self__, "assumable_role_arns", assumable_role_arns) + if execution_role_arns is not None: + pulumi.set(__self__, "execution_role_arns", execution_role_arns) + + @property + @pulumi.getter(name="assumableRoleArns") + def assumable_role_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + """ + return pulumi.get(self, "assumable_role_arns") + + @assumable_role_arns.setter + def assumable_role_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "assumable_role_arns", value) + + @property + @pulumi.getter(name="executionRoleArns") + def execution_role_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + return pulumi.get(self, "execution_role_arns") + + @execution_role_arns.setter + def execution_role_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "execution_role_arns", value) + + if not MYPY: class DomainDefaultSpaceSettingsJupyterServerAppSettingsArgsDict(TypedDict): code_repositories: NotRequired[pulumi.Input[Sequence[pulumi.Input['DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepositoryArgsDict']]]] @@ -3508,6 +3790,10 @@ class DomainDefaultUserSettingsArgsDict(TypedDict): """ The execution role ARN for the user. """ + auto_mount_home_efs: NotRequired[pulumi.Input[str]] + """ + Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + """ canvas_app_settings: NotRequired[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsArgsDict']] """ The Canvas app settings. See `canvas_app_settings` Block below. @@ -3579,6 +3865,7 @@ class DomainDefaultUserSettingsArgsDict(TypedDict): class DomainDefaultUserSettingsArgs: def __init__(__self__, *, execution_role: pulumi.Input[str], + auto_mount_home_efs: Optional[pulumi.Input[str]] = None, canvas_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsArgs']] = None, code_editor_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsArgs']] = None, custom_file_system_configs: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsCustomFileSystemConfigArgs']]]] = None, @@ -3597,6 +3884,7 @@ def __init__(__self__, *, tensor_board_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsArgs']] = None): """ :param pulumi.Input[str] execution_role: The execution role ARN for the user. + :param pulumi.Input[str] auto_mount_home_efs: Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. :param pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsArgs'] canvas_app_settings: The Canvas app settings. See `canvas_app_settings` Block below. :param pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsArgs'] code_editor_app_settings: The Code Editor application settings. See `code_editor_app_settings` Block below. :param pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsCustomFileSystemConfigArgs']]] custom_file_system_configs: The settings for assigning a custom file system to a user profile. Permitted users can access this file system in Amazon SageMaker Studio. See `custom_file_system_config` Block below. @@ -3615,6 +3903,8 @@ def __init__(__self__, *, :param pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsArgs'] tensor_board_app_settings: The TensorBoard app settings. See `tensor_board_app_settings` Block below. """ pulumi.set(__self__, "execution_role", execution_role) + if auto_mount_home_efs is not None: + pulumi.set(__self__, "auto_mount_home_efs", auto_mount_home_efs) if canvas_app_settings is not None: pulumi.set(__self__, "canvas_app_settings", canvas_app_settings) if code_editor_app_settings is not None: @@ -3660,6 +3950,18 @@ def execution_role(self) -> pulumi.Input[str]: def execution_role(self, value: pulumi.Input[str]): pulumi.set(self, "execution_role", value) + @property + @pulumi.getter(name="autoMountHomeEfs") + def auto_mount_home_efs(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + """ + return pulumi.get(self, "auto_mount_home_efs") + + @auto_mount_home_efs.setter + def auto_mount_home_efs(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "auto_mount_home_efs", value) + @property @pulumi.getter(name="canvasAppSettings") def canvas_app_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsArgs']]: @@ -3859,6 +4161,10 @@ class DomainDefaultUserSettingsCanvasAppSettingsArgsDict(TypedDict): """ The model deployment settings for the SageMaker Canvas application. See `direct_deploy_settings` Block below. """ + emr_serverless_settings: NotRequired[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgsDict']] + """ + The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + """ generative_ai_settings: NotRequired[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsArgsDict']] identity_provider_oauth_settings: NotRequired[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgsDict']]]] """ @@ -3887,6 +4193,7 @@ class DomainDefaultUserSettingsCanvasAppSettingsArgsDict(TypedDict): class DomainDefaultUserSettingsCanvasAppSettingsArgs: def __init__(__self__, *, direct_deploy_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsArgs']] = None, + emr_serverless_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs']] = None, generative_ai_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs']] = None, identity_provider_oauth_settings: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs']]]] = None, kendra_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsKendraSettingsArgs']] = None, @@ -3895,6 +4202,7 @@ def __init__(__self__, *, workspace_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettingsArgs']] = None): """ :param pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsArgs'] direct_deploy_settings: The model deployment settings for the SageMaker Canvas application. See `direct_deploy_settings` Block below. + :param pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs'] emr_serverless_settings: The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. :param pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs']]] identity_provider_oauth_settings: The settings for connecting to an external data source with OAuth. See `identity_provider_oauth_settings` Block below. :param pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsKendraSettingsArgs'] kendra_settings: The settings for document querying. See `kendra_settings` Block below. :param pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsModelRegisterSettingsArgs'] model_register_settings: The model registry settings for the SageMaker Canvas application. See `model_register_settings` Block below. @@ -3903,6 +4211,8 @@ def __init__(__self__, *, """ if direct_deploy_settings is not None: pulumi.set(__self__, "direct_deploy_settings", direct_deploy_settings) + if emr_serverless_settings is not None: + pulumi.set(__self__, "emr_serverless_settings", emr_serverless_settings) if generative_ai_settings is not None: pulumi.set(__self__, "generative_ai_settings", generative_ai_settings) if identity_provider_oauth_settings is not None: @@ -3928,6 +4238,18 @@ def direct_deploy_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSett def direct_deploy_settings(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsArgs']]): pulumi.set(self, "direct_deploy_settings", value) + @property + @pulumi.getter(name="emrServerlessSettings") + def emr_serverless_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs']]: + """ + The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + """ + return pulumi.get(self, "emr_serverless_settings") + + @emr_serverless_settings.setter + def emr_serverless_settings(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs']]): + pulumi.set(self, "emr_serverless_settings", value) + @property @pulumi.getter(name="generativeAiSettings") def generative_ai_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs']]: @@ -4030,6 +4352,58 @@ def status(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "status", value) +if not MYPY: + class DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgsDict(TypedDict): + execution_role_arn: NotRequired[pulumi.Input[str]] + """ + The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + """ + status: NotRequired[pulumi.Input[str]] + """ + Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + """ +elif False: + DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs: + def __init__(__self__, *, + execution_role_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] execution_role_arn: The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + :param pulumi.Input[str] status: Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + """ + if execution_role_arn is not None: + pulumi.set(__self__, "execution_role_arn", execution_role_arn) + if status is not None: + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="executionRoleArn") + def execution_role_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + """ + return pulumi.get(self, "execution_role_arn") + + @execution_role_arn.setter + def execution_role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "execution_role_arn", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + if not MYPY: class DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettingsArgsDict(TypedDict): amazon_bedrock_role_arn: NotRequired[pulumi.Input[str]] @@ -4314,6 +4688,14 @@ def s3_kms_key_id(self, value: Optional[pulumi.Input[str]]): if not MYPY: class DomainDefaultUserSettingsCodeEditorAppSettingsArgsDict(TypedDict): + app_lifecycle_management: NotRequired[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict']] + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + built_in_lifecycle_config_arn: NotRequired[pulumi.Input[str]] + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ custom_images: NotRequired[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArgsDict']]]] """ A list of custom SageMaker images that are configured to run as a CodeEditor app. see `custom_image` Block below. @@ -4332,14 +4714,22 @@ class DomainDefaultUserSettingsCodeEditorAppSettingsArgsDict(TypedDict): @pulumi.input_type class DomainDefaultUserSettingsCodeEditorAppSettingsArgs: def __init__(__self__, *, + app_lifecycle_management: Optional[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs']] = None, + built_in_lifecycle_config_arn: Optional[pulumi.Input[str]] = None, custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArgs']]]] = None, default_resource_spec: Optional[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs']] = None, lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ + :param pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs'] app_lifecycle_management: Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + :param pulumi.Input[str] built_in_lifecycle_config_arn: The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. :param pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArgs']]] custom_images: A list of custom SageMaker images that are configured to run as a CodeEditor app. see `custom_image` Block below. :param pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) + if built_in_lifecycle_config_arn is not None: + pulumi.set(__self__, "built_in_lifecycle_config_arn", built_in_lifecycle_config_arn) if custom_images is not None: pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: @@ -4347,6 +4737,30 @@ def __init__(__self__, *, if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs']]: + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @app_lifecycle_management.setter + def app_lifecycle_management(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs']]): + pulumi.set(self, "app_lifecycle_management", value) + + @property + @pulumi.getter(name="builtInLifecycleConfigArn") + def built_in_lifecycle_config_arn(self) -> Optional[pulumi.Input[str]]: + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ + return pulumi.get(self, "built_in_lifecycle_config_arn") + + @built_in_lifecycle_config_arn.setter + def built_in_lifecycle_config_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "built_in_lifecycle_config_arn", value) + @property @pulumi.getter(name="customImages") def custom_images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArgs']]]]: @@ -4384,6 +4798,130 @@ def lifecycle_config_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Inp pulumi.set(self, "lifecycle_config_arns", value) +if not MYPY: + class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict(TypedDict): + idle_settings: NotRequired[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict']] + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ +elif False: + DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs: + def __init__(__self__, *, + idle_settings: Optional[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs']] = None): + """ + :param pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs'] idle_settings: Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs']]: + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + @idle_settings.setter + def idle_settings(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs']]): + pulumi.set(self, "idle_settings", value) + + +if not MYPY: + class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict(TypedDict): + idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + lifecycle_management: NotRequired[pulumi.Input[str]] + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + max_idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + min_idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ +elif False: + DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs: + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + lifecycle_management: Optional[pulumi.Input[str]] = None, + max_idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + min_idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + :param pulumi.Input[str] lifecycle_management: Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + :param pulumi.Input[int] max_idle_timeout_in_minutes: The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + :param pulumi.Input[int] min_idle_timeout_in_minutes: The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + if lifecycle_management is not None: + pulumi.set(__self__, "lifecycle_management", lifecycle_management) + if max_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "max_idle_timeout_in_minutes", max_idle_timeout_in_minutes) + if min_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "min_idle_timeout_in_minutes", min_idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @idle_timeout_in_minutes.setter + def idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "idle_timeout_in_minutes", value) + + @property + @pulumi.getter(name="lifecycleManagement") + def lifecycle_management(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "lifecycle_management") + + @lifecycle_management.setter + def lifecycle_management(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "lifecycle_management", value) + + @property + @pulumi.getter(name="maxIdleTimeoutInMinutes") + def max_idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "max_idle_timeout_in_minutes") + + @max_idle_timeout_in_minutes.setter + def max_idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_idle_timeout_in_minutes", value) + + @property + @pulumi.getter(name="minIdleTimeoutInMinutes") + def min_idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "min_idle_timeout_in_minutes") + + @min_idle_timeout_in_minutes.setter + def min_idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_idle_timeout_in_minutes", value) + + if not MYPY: class DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArgsDict(TypedDict): app_image_config_name: pulumi.Input[str] @@ -4700,6 +5238,14 @@ def uid(self, value: pulumi.Input[int]): if not MYPY: class DomainDefaultUserSettingsJupyterLabAppSettingsArgsDict(TypedDict): + app_lifecycle_management: NotRequired[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict']] + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + built_in_lifecycle_config_arn: NotRequired[pulumi.Input[str]] + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ code_repositories: NotRequired[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgsDict']]]] """ A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. @@ -4712,6 +5258,10 @@ class DomainDefaultUserSettingsJupyterLabAppSettingsArgsDict(TypedDict): """ The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below. """ + emr_settings: NotRequired[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgsDict']] + """ + The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + """ lifecycle_config_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ The Amazon Resource Name (ARN) of the Lifecycle Configurations. @@ -4722,25 +5272,61 @@ class DomainDefaultUserSettingsJupyterLabAppSettingsArgsDict(TypedDict): @pulumi.input_type class DomainDefaultUserSettingsJupyterLabAppSettingsArgs: def __init__(__self__, *, + app_lifecycle_management: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']] = None, + built_in_lifecycle_config_arn: Optional[pulumi.Input[str]] = None, code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs']]]] = None, custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArgs']]]] = None, default_resource_spec: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs']] = None, + emr_settings: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs']] = None, lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ + :param pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs'] app_lifecycle_management: Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + :param pulumi.Input[str] built_in_lifecycle_config_arn: The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. :param pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs']]] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. :param pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArgs']]] custom_images: A list of custom SageMaker images that are configured to run as a JupyterLab app. see `custom_image` Block below. :param pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below. + :param pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs'] emr_settings: The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) + if built_in_lifecycle_config_arn is not None: + pulumi.set(__self__, "built_in_lifecycle_config_arn", built_in_lifecycle_config_arn) if code_repositories is not None: pulumi.set(__self__, "code_repositories", code_repositories) if custom_images is not None: pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if emr_settings is not None: + pulumi.set(__self__, "emr_settings", emr_settings) if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']]: + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @app_lifecycle_management.setter + def app_lifecycle_management(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']]): + pulumi.set(self, "app_lifecycle_management", value) + + @property + @pulumi.getter(name="builtInLifecycleConfigArn") + def built_in_lifecycle_config_arn(self) -> Optional[pulumi.Input[str]]: + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ + return pulumi.get(self, "built_in_lifecycle_config_arn") + + @built_in_lifecycle_config_arn.setter + def built_in_lifecycle_config_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "built_in_lifecycle_config_arn", value) + @property @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs']]]]: @@ -4777,6 +5363,18 @@ def default_resource_spec(self) -> Optional[pulumi.Input['DomainDefaultUserSetti def default_resource_spec(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs']]): pulumi.set(self, "default_resource_spec", value) + @property + @pulumi.getter(name="emrSettings") + def emr_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs']]: + """ + The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + """ + return pulumi.get(self, "emr_settings") + + @emr_settings.setter + def emr_settings(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs']]): + pulumi.set(self, "emr_settings", value) + @property @pulumi.getter(name="lifecycleConfigArns") def lifecycle_config_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -4790,6 +5388,130 @@ def lifecycle_config_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Inp pulumi.set(self, "lifecycle_config_arns", value) +if not MYPY: + class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict(TypedDict): + idle_settings: NotRequired[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict']] + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ +elif False: + DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs: + def __init__(__self__, *, + idle_settings: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']] = None): + """ + :param pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs'] idle_settings: Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']]: + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + @idle_settings.setter + def idle_settings(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']]): + pulumi.set(self, "idle_settings", value) + + +if not MYPY: + class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict(TypedDict): + idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + lifecycle_management: NotRequired[pulumi.Input[str]] + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + max_idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + min_idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ +elif False: + DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs: + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + lifecycle_management: Optional[pulumi.Input[str]] = None, + max_idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + min_idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + :param pulumi.Input[str] lifecycle_management: Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + :param pulumi.Input[int] max_idle_timeout_in_minutes: The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + :param pulumi.Input[int] min_idle_timeout_in_minutes: The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + if lifecycle_management is not None: + pulumi.set(__self__, "lifecycle_management", lifecycle_management) + if max_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "max_idle_timeout_in_minutes", max_idle_timeout_in_minutes) + if min_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "min_idle_timeout_in_minutes", min_idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @idle_timeout_in_minutes.setter + def idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "idle_timeout_in_minutes", value) + + @property + @pulumi.getter(name="lifecycleManagement") + def lifecycle_management(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "lifecycle_management") + + @lifecycle_management.setter + def lifecycle_management(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "lifecycle_management", value) + + @property + @pulumi.getter(name="maxIdleTimeoutInMinutes") + def max_idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "max_idle_timeout_in_minutes") + + @max_idle_timeout_in_minutes.setter + def max_idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_idle_timeout_in_minutes", value) + + @property + @pulumi.getter(name="minIdleTimeoutInMinutes") + def min_idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "min_idle_timeout_in_minutes") + + @min_idle_timeout_in_minutes.setter + def min_idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_idle_timeout_in_minutes", value) + + if not MYPY: class DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgsDict(TypedDict): repository_url: pulumi.Input[str] @@ -5003,6 +5725,58 @@ def sagemaker_image_version_arn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "sagemaker_image_version_arn", value) +if not MYPY: + class DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgsDict(TypedDict): + assumable_role_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + """ + execution_role_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ +elif False: + DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs: + def __init__(__self__, *, + assumable_role_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + execution_role_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] assumable_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + :param pulumi.Input[Sequence[pulumi.Input[str]]] execution_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + if assumable_role_arns is not None: + pulumi.set(__self__, "assumable_role_arns", assumable_role_arns) + if execution_role_arns is not None: + pulumi.set(__self__, "execution_role_arns", execution_role_arns) + + @property + @pulumi.getter(name="assumableRoleArns") + def assumable_role_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + """ + return pulumi.get(self, "assumable_role_arns") + + @assumable_role_arns.setter + def assumable_role_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "assumable_role_arns", value) + + @property + @pulumi.getter(name="executionRoleArns") + def execution_role_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + return pulumi.get(self, "execution_role_arns") + + @execution_role_arns.setter + def execution_role_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "execution_role_arns", value) + + if not MYPY: class DomainDefaultUserSettingsJupyterServerAppSettingsArgsDict(TypedDict): code_repositories: NotRequired[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepositoryArgsDict']]]] @@ -5918,6 +6692,10 @@ class DomainDefaultUserSettingsStudioWebPortalSettingsArgsDict(TypedDict): """ The Applications supported in Studio that are hidden from the Studio left navigation pane. """ + hidden_instance_types: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + The instance types you are hiding from the Studio user interface. + """ hidden_ml_tools: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ The machine learning tools that are hidden from the Studio left navigation pane. @@ -5929,13 +6707,17 @@ class DomainDefaultUserSettingsStudioWebPortalSettingsArgsDict(TypedDict): class DomainDefaultUserSettingsStudioWebPortalSettingsArgs: def __init__(__self__, *, hidden_app_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + hidden_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, hidden_ml_tools: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] hidden_app_types: The Applications supported in Studio that are hidden from the Studio left navigation pane. + :param pulumi.Input[Sequence[pulumi.Input[str]]] hidden_instance_types: The instance types you are hiding from the Studio user interface. :param pulumi.Input[Sequence[pulumi.Input[str]]] hidden_ml_tools: The machine learning tools that are hidden from the Studio left navigation pane. """ if hidden_app_types is not None: pulumi.set(__self__, "hidden_app_types", hidden_app_types) + if hidden_instance_types is not None: + pulumi.set(__self__, "hidden_instance_types", hidden_instance_types) if hidden_ml_tools is not None: pulumi.set(__self__, "hidden_ml_tools", hidden_ml_tools) @@ -5951,6 +6733,18 @@ def hidden_app_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]] def hidden_app_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "hidden_app_types", value) + @property + @pulumi.getter(name="hiddenInstanceTypes") + def hidden_instance_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The instance types you are hiding from the Studio user interface. + """ + return pulumi.get(self, "hidden_instance_types") + + @hidden_instance_types.setter + def hidden_instance_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "hidden_instance_types", value) + @property @pulumi.getter(name="hiddenMlTools") def hidden_ml_tools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -8595,6 +9389,8 @@ def value(self, value: pulumi.Input[int]): if not MYPY: class FeatureGroupFeatureDefinitionArgsDict(TypedDict): + collection_config: NotRequired[pulumi.Input['FeatureGroupFeatureDefinitionCollectionConfigArgsDict']] + collection_type: NotRequired[pulumi.Input[str]] feature_name: NotRequired[pulumi.Input[str]] """ The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. @@ -8609,17 +9405,41 @@ class FeatureGroupFeatureDefinitionArgsDict(TypedDict): @pulumi.input_type class FeatureGroupFeatureDefinitionArgs: def __init__(__self__, *, + collection_config: Optional[pulumi.Input['FeatureGroupFeatureDefinitionCollectionConfigArgs']] = None, + collection_type: Optional[pulumi.Input[str]] = None, feature_name: Optional[pulumi.Input[str]] = None, feature_type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] feature_name: The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. :param pulumi.Input[str] feature_type: The value type of a feature. Valid values are `Integral`, `Fractional`, or `String`. """ + if collection_config is not None: + pulumi.set(__self__, "collection_config", collection_config) + if collection_type is not None: + pulumi.set(__self__, "collection_type", collection_type) if feature_name is not None: pulumi.set(__self__, "feature_name", feature_name) if feature_type is not None: pulumi.set(__self__, "feature_type", feature_type) + @property + @pulumi.getter(name="collectionConfig") + def collection_config(self) -> Optional[pulumi.Input['FeatureGroupFeatureDefinitionCollectionConfigArgs']]: + return pulumi.get(self, "collection_config") + + @collection_config.setter + def collection_config(self, value: Optional[pulumi.Input['FeatureGroupFeatureDefinitionCollectionConfigArgs']]): + pulumi.set(self, "collection_config", value) + + @property + @pulumi.getter(name="collectionType") + def collection_type(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "collection_type") + + @collection_type.setter + def collection_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "collection_type", value) + @property @pulumi.getter(name="featureName") def feature_name(self) -> Optional[pulumi.Input[str]]: @@ -8645,6 +9465,52 @@ def feature_type(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "feature_type", value) +if not MYPY: + class FeatureGroupFeatureDefinitionCollectionConfigArgsDict(TypedDict): + vector_config: NotRequired[pulumi.Input['FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgsDict']] +elif False: + FeatureGroupFeatureDefinitionCollectionConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FeatureGroupFeatureDefinitionCollectionConfigArgs: + def __init__(__self__, *, + vector_config: Optional[pulumi.Input['FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs']] = None): + if vector_config is not None: + pulumi.set(__self__, "vector_config", vector_config) + + @property + @pulumi.getter(name="vectorConfig") + def vector_config(self) -> Optional[pulumi.Input['FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs']]: + return pulumi.get(self, "vector_config") + + @vector_config.setter + def vector_config(self, value: Optional[pulumi.Input['FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs']]): + pulumi.set(self, "vector_config", value) + + +if not MYPY: + class FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgsDict(TypedDict): + dimension: NotRequired[pulumi.Input[int]] +elif False: + FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FeatureGroupFeatureDefinitionCollectionConfigVectorConfigArgs: + def __init__(__self__, *, + dimension: Optional[pulumi.Input[int]] = None): + if dimension is not None: + pulumi.set(__self__, "dimension", dimension) + + @property + @pulumi.getter + def dimension(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "dimension") + + @dimension.setter + def dimension(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "dimension", value) + + if not MYPY: class FeatureGroupOfflineStoreConfigArgsDict(TypedDict): s3_storage_config: pulumi.Input['FeatureGroupOfflineStoreConfigS3StorageConfigArgsDict'] @@ -9055,6 +9921,55 @@ def value(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "value", value) +if not MYPY: + class FeatureGroupThroughputConfigArgsDict(TypedDict): + provisioned_read_capacity_units: NotRequired[pulumi.Input[int]] + provisioned_write_capacity_units: NotRequired[pulumi.Input[int]] + throughput_mode: NotRequired[pulumi.Input[str]] +elif False: + FeatureGroupThroughputConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FeatureGroupThroughputConfigArgs: + def __init__(__self__, *, + provisioned_read_capacity_units: Optional[pulumi.Input[int]] = None, + provisioned_write_capacity_units: Optional[pulumi.Input[int]] = None, + throughput_mode: Optional[pulumi.Input[str]] = None): + if provisioned_read_capacity_units is not None: + pulumi.set(__self__, "provisioned_read_capacity_units", provisioned_read_capacity_units) + if provisioned_write_capacity_units is not None: + pulumi.set(__self__, "provisioned_write_capacity_units", provisioned_write_capacity_units) + if throughput_mode is not None: + pulumi.set(__self__, "throughput_mode", throughput_mode) + + @property + @pulumi.getter(name="provisionedReadCapacityUnits") + def provisioned_read_capacity_units(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "provisioned_read_capacity_units") + + @provisioned_read_capacity_units.setter + def provisioned_read_capacity_units(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "provisioned_read_capacity_units", value) + + @property + @pulumi.getter(name="provisionedWriteCapacityUnits") + def provisioned_write_capacity_units(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "provisioned_write_capacity_units") + + @provisioned_write_capacity_units.setter + def provisioned_write_capacity_units(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "provisioned_write_capacity_units", value) + + @property + @pulumi.getter(name="throughputMode") + def throughput_mode(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "throughput_mode") + + @throughput_mode.setter + def throughput_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "throughput_mode", value) + + if not MYPY: class FlowDefinitionHumanLoopActivationConfigArgsDict(TypedDict): human_loop_activation_conditions_config: NotRequired[pulumi.Input['FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfigArgsDict']] @@ -9491,6 +10406,38 @@ def kms_key_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "kms_key_id", value) +if not MYPY: + class HubS3StorageConfigArgsDict(TypedDict): + s3_output_path: NotRequired[pulumi.Input[str]] + """ + The Amazon S3 bucket prefix for hosting hub content.interface. + """ +elif False: + HubS3StorageConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class HubS3StorageConfigArgs: + def __init__(__self__, *, + s3_output_path: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] s3_output_path: The Amazon S3 bucket prefix for hosting hub content.interface. + """ + if s3_output_path is not None: + pulumi.set(__self__, "s3_output_path", s3_output_path) + + @property + @pulumi.getter(name="s3OutputPath") + def s3_output_path(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon S3 bucket prefix for hosting hub content.interface. + """ + return pulumi.get(self, "s3_output_path") + + @s3_output_path.setter + def s3_output_path(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_output_path", value) + + if not MYPY: class HumanTaskUIUiTemplateArgsDict(TypedDict): content: NotRequired[pulumi.Input[str]] @@ -11153,17 +12100,25 @@ class SpaceSpaceSettingsCodeEditorAppSettingsArgsDict(TypedDict): """ The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. """ + app_lifecycle_management: NotRequired[pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict']] + """ + Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + """ elif False: SpaceSpaceSettingsCodeEditorAppSettingsArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type class SpaceSpaceSettingsCodeEditorAppSettingsArgs: def __init__(__self__, *, - default_resource_spec: pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs']): + default_resource_spec: pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs'], + app_lifecycle_management: Optional[pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs']] = None): """ :param pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + :param pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs'] app_lifecycle_management: Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) @property @pulumi.getter(name="defaultResourceSpec") @@ -11177,6 +12132,82 @@ def default_resource_spec(self) -> pulumi.Input['SpaceSpaceSettingsCodeEditorApp def default_resource_spec(self, value: pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs']): pulumi.set(self, "default_resource_spec", value) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional[pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs']]: + """ + Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @app_lifecycle_management.setter + def app_lifecycle_management(self, value: Optional[pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs']]): + pulumi.set(self, "app_lifecycle_management", value) + + +if not MYPY: + class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict(TypedDict): + idle_settings: NotRequired[pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict']] + """ + Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + """ +elif False: + SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs: + def __init__(__self__, *, + idle_settings: Optional[pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs']] = None): + """ + :param pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs'] idle_settings: Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional[pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs']]: + """ + Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + @idle_settings.setter + def idle_settings(self, value: Optional[pulumi.Input['SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs']]): + pulumi.set(self, "idle_settings", value) + + +if not MYPY: + class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict(TypedDict): + idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ +elif False: + SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs: + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @idle_timeout_in_minutes.setter + def idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "idle_timeout_in_minutes", value) + if not MYPY: class SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgsDict(TypedDict): @@ -11356,7 +12387,11 @@ def file_system_id(self, value: pulumi.Input[str]): class SpaceSpaceSettingsJupyterLabAppSettingsArgsDict(TypedDict): default_resource_spec: pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgsDict'] """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + """ + app_lifecycle_management: NotRequired[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict']] + """ + Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. """ code_repositories: NotRequired[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgsDict']]]] """ @@ -11369,12 +12404,16 @@ class SpaceSpaceSettingsJupyterLabAppSettingsArgsDict(TypedDict): class SpaceSpaceSettingsJupyterLabAppSettingsArgs: def __init__(__self__, *, default_resource_spec: pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs'], + app_lifecycle_management: Optional[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']] = None, code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs']]]] = None): """ :param pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + :param pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs'] app_lifecycle_management: Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. :param pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs']]] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) if code_repositories is not None: pulumi.set(__self__, "code_repositories", code_repositories) @@ -11390,6 +12429,18 @@ def default_resource_spec(self) -> pulumi.Input['SpaceSpaceSettingsJupyterLabApp def default_resource_spec(self, value: pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs']): pulumi.set(self, "default_resource_spec", value) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']]: + """ + Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @app_lifecycle_management.setter + def app_lifecycle_management(self, value: Optional[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']]): + pulumi.set(self, "app_lifecycle_management", value) + @property @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs']]]]: @@ -11403,6 +12454,70 @@ def code_repositories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[' pulumi.set(self, "code_repositories", value) +if not MYPY: + class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict(TypedDict): + idle_settings: NotRequired[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict']] + """ + Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + """ +elif False: + SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs: + def __init__(__self__, *, + idle_settings: Optional[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']] = None): + """ + :param pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs'] idle_settings: Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']]: + """ + Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + @idle_settings.setter + def idle_settings(self, value: Optional[pulumi.Input['SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']]): + pulumi.set(self, "idle_settings", value) + + +if not MYPY: + class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict(TypedDict): + idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ +elif False: + SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs: + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @idle_timeout_in_minutes.setter + def idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "idle_timeout_in_minutes", value) + + if not MYPY: class SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgsDict(TypedDict): repository_url: pulumi.Input[str] @@ -12112,6 +13227,10 @@ class UserProfileUserSettingsArgsDict(TypedDict): """ The execution role ARN for the user. """ + auto_mount_home_efs: NotRequired[pulumi.Input[str]] + """ + Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + """ canvas_app_settings: NotRequired[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsArgsDict']] """ The Canvas app settings. See Canvas App Settings below. @@ -12183,6 +13302,7 @@ class UserProfileUserSettingsArgsDict(TypedDict): class UserProfileUserSettingsArgs: def __init__(__self__, *, execution_role: pulumi.Input[str], + auto_mount_home_efs: Optional[pulumi.Input[str]] = None, canvas_app_settings: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsArgs']] = None, code_editor_app_settings: Optional[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsArgs']] = None, custom_file_system_configs: Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsCustomFileSystemConfigArgs']]]] = None, @@ -12201,6 +13321,7 @@ def __init__(__self__, *, tensor_board_app_settings: Optional[pulumi.Input['UserProfileUserSettingsTensorBoardAppSettingsArgs']] = None): """ :param pulumi.Input[str] execution_role: The execution role ARN for the user. + :param pulumi.Input[str] auto_mount_home_efs: Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. :param pulumi.Input['UserProfileUserSettingsCanvasAppSettingsArgs'] canvas_app_settings: The Canvas app settings. See Canvas App Settings below. :param pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsArgs'] code_editor_app_settings: The Code Editor application settings. See Code Editor App Settings below. :param pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsCustomFileSystemConfigArgs']]] custom_file_system_configs: The settings for assigning a custom file system to a user profile. Permitted users can access this file system in Amazon SageMaker Studio. See Custom File System Config below. @@ -12219,6 +13340,8 @@ def __init__(__self__, *, :param pulumi.Input['UserProfileUserSettingsTensorBoardAppSettingsArgs'] tensor_board_app_settings: The TensorBoard app settings. See TensorBoard App Settings below. """ pulumi.set(__self__, "execution_role", execution_role) + if auto_mount_home_efs is not None: + pulumi.set(__self__, "auto_mount_home_efs", auto_mount_home_efs) if canvas_app_settings is not None: pulumi.set(__self__, "canvas_app_settings", canvas_app_settings) if code_editor_app_settings is not None: @@ -12264,6 +13387,18 @@ def execution_role(self) -> pulumi.Input[str]: def execution_role(self, value: pulumi.Input[str]): pulumi.set(self, "execution_role", value) + @property + @pulumi.getter(name="autoMountHomeEfs") + def auto_mount_home_efs(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + """ + return pulumi.get(self, "auto_mount_home_efs") + + @auto_mount_home_efs.setter + def auto_mount_home_efs(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "auto_mount_home_efs", value) + @property @pulumi.getter(name="canvasAppSettings") def canvas_app_settings(self) -> Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsArgs']]: @@ -12463,6 +13598,10 @@ class UserProfileUserSettingsCanvasAppSettingsArgsDict(TypedDict): """ The model deployment settings for the SageMaker Canvas application. See Direct Deploy Settings below. """ + emr_serverless_settings: NotRequired[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgsDict']] + """ + The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + """ generative_ai_settings: NotRequired[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgsDict']] identity_provider_oauth_settings: NotRequired[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgsDict']]]] """ @@ -12491,6 +13630,7 @@ class UserProfileUserSettingsCanvasAppSettingsArgsDict(TypedDict): class UserProfileUserSettingsCanvasAppSettingsArgs: def __init__(__self__, *, direct_deploy_settings: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsArgs']] = None, + emr_serverless_settings: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs']] = None, generative_ai_settings: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs']] = None, identity_provider_oauth_settings: Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs']]]] = None, kendra_settings: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsKendraSettingsArgs']] = None, @@ -12499,6 +13639,7 @@ def __init__(__self__, *, workspace_settings: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsWorkspaceSettingsArgs']] = None): """ :param pulumi.Input['UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsArgs'] direct_deploy_settings: The model deployment settings for the SageMaker Canvas application. See Direct Deploy Settings below. + :param pulumi.Input['UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs'] emr_serverless_settings: The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. :param pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs']]] identity_provider_oauth_settings: The settings for connecting to an external data source with OAuth. See Identity Provider OAuth Settings below. :param pulumi.Input['UserProfileUserSettingsCanvasAppSettingsKendraSettingsArgs'] kendra_settings: The settings for document querying. See Kendra Settings below. :param pulumi.Input['UserProfileUserSettingsCanvasAppSettingsModelRegisterSettingsArgs'] model_register_settings: The model registry settings for the SageMaker Canvas application. See Model Register Settings below. @@ -12507,6 +13648,8 @@ def __init__(__self__, *, """ if direct_deploy_settings is not None: pulumi.set(__self__, "direct_deploy_settings", direct_deploy_settings) + if emr_serverless_settings is not None: + pulumi.set(__self__, "emr_serverless_settings", emr_serverless_settings) if generative_ai_settings is not None: pulumi.set(__self__, "generative_ai_settings", generative_ai_settings) if identity_provider_oauth_settings is not None: @@ -12532,6 +13675,18 @@ def direct_deploy_settings(self) -> Optional[pulumi.Input['UserProfileUserSettin def direct_deploy_settings(self, value: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsArgs']]): pulumi.set(self, "direct_deploy_settings", value) + @property + @pulumi.getter(name="emrServerlessSettings") + def emr_serverless_settings(self) -> Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs']]: + """ + The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + """ + return pulumi.get(self, "emr_serverless_settings") + + @emr_serverless_settings.setter + def emr_serverless_settings(self, value: Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs']]): + pulumi.set(self, "emr_serverless_settings", value) + @property @pulumi.getter(name="generativeAiSettings") def generative_ai_settings(self) -> Optional[pulumi.Input['UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgs']]: @@ -12634,6 +13789,58 @@ def status(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "status", value) +if not MYPY: + class UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgsDict(TypedDict): + execution_role_arn: NotRequired[pulumi.Input[str]] + """ + The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + """ + status: NotRequired[pulumi.Input[str]] + """ + Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + """ +elif False: + UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs: + def __init__(__self__, *, + execution_role_arn: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] execution_role_arn: The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + :param pulumi.Input[str] status: Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + """ + if execution_role_arn is not None: + pulumi.set(__self__, "execution_role_arn", execution_role_arn) + if status is not None: + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="executionRoleArn") + def execution_role_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + """ + return pulumi.get(self, "execution_role_arn") + + @execution_role_arn.setter + def execution_role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "execution_role_arn", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + if not MYPY: class UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettingsArgsDict(TypedDict): amazon_bedrock_role_arn: NotRequired[pulumi.Input[str]] @@ -12918,6 +14125,14 @@ def s3_kms_key_id(self, value: Optional[pulumi.Input[str]]): if not MYPY: class UserProfileUserSettingsCodeEditorAppSettingsArgsDict(TypedDict): + app_lifecycle_management: NotRequired[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict']] + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + built_in_lifecycle_config_arn: NotRequired[pulumi.Input[str]] + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ custom_images: NotRequired[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgsDict']]]] """ A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. @@ -12936,14 +14151,22 @@ class UserProfileUserSettingsCodeEditorAppSettingsArgsDict(TypedDict): @pulumi.input_type class UserProfileUserSettingsCodeEditorAppSettingsArgs: def __init__(__self__, *, + app_lifecycle_management: Optional[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs']] = None, + built_in_lifecycle_config_arn: Optional[pulumi.Input[str]] = None, custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs']]]] = None, default_resource_spec: Optional[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs']] = None, lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ + :param pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs'] app_lifecycle_management: Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + :param pulumi.Input[str] built_in_lifecycle_config_arn: The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. :param pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs']]] custom_images: A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. :param pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) + if built_in_lifecycle_config_arn is not None: + pulumi.set(__self__, "built_in_lifecycle_config_arn", built_in_lifecycle_config_arn) if custom_images is not None: pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: @@ -12951,6 +14174,30 @@ def __init__(__self__, *, if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs']]: + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @app_lifecycle_management.setter + def app_lifecycle_management(self, value: Optional[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs']]): + pulumi.set(self, "app_lifecycle_management", value) + + @property + @pulumi.getter(name="builtInLifecycleConfigArn") + def built_in_lifecycle_config_arn(self) -> Optional[pulumi.Input[str]]: + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ + return pulumi.get(self, "built_in_lifecycle_config_arn") + + @built_in_lifecycle_config_arn.setter + def built_in_lifecycle_config_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "built_in_lifecycle_config_arn", value) + @property @pulumi.getter(name="customImages") def custom_images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs']]]]: @@ -12988,6 +14235,130 @@ def lifecycle_config_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Inp pulumi.set(self, "lifecycle_config_arns", value) +if not MYPY: + class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict(TypedDict): + idle_settings: NotRequired[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict']] + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ +elif False: + UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs: + def __init__(__self__, *, + idle_settings: Optional[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs']] = None): + """ + :param pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs'] idle_settings: Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs']]: + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + @idle_settings.setter + def idle_settings(self, value: Optional[pulumi.Input['UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs']]): + pulumi.set(self, "idle_settings", value) + + +if not MYPY: + class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict(TypedDict): + idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + lifecycle_management: NotRequired[pulumi.Input[str]] + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + max_idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + min_idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ +elif False: + UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs: + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + lifecycle_management: Optional[pulumi.Input[str]] = None, + max_idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + min_idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + :param pulumi.Input[str] lifecycle_management: Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + :param pulumi.Input[int] max_idle_timeout_in_minutes: The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + :param pulumi.Input[int] min_idle_timeout_in_minutes: The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + if lifecycle_management is not None: + pulumi.set(__self__, "lifecycle_management", lifecycle_management) + if max_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "max_idle_timeout_in_minutes", max_idle_timeout_in_minutes) + if min_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "min_idle_timeout_in_minutes", min_idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @idle_timeout_in_minutes.setter + def idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "idle_timeout_in_minutes", value) + + @property + @pulumi.getter(name="lifecycleManagement") + def lifecycle_management(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "lifecycle_management") + + @lifecycle_management.setter + def lifecycle_management(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "lifecycle_management", value) + + @property + @pulumi.getter(name="maxIdleTimeoutInMinutes") + def max_idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "max_idle_timeout_in_minutes") + + @max_idle_timeout_in_minutes.setter + def max_idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_idle_timeout_in_minutes", value) + + @property + @pulumi.getter(name="minIdleTimeoutInMinutes") + def min_idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "min_idle_timeout_in_minutes") + + @min_idle_timeout_in_minutes.setter + def min_idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_idle_timeout_in_minutes", value) + + if not MYPY: class UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgsDict(TypedDict): app_image_config_name: pulumi.Input[str] @@ -13305,6 +14676,14 @@ def uid(self, value: pulumi.Input[int]): if not MYPY: class UserProfileUserSettingsJupyterLabAppSettingsArgsDict(TypedDict): + app_lifecycle_management: NotRequired[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict']] + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + built_in_lifecycle_config_arn: NotRequired[pulumi.Input[str]] + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ code_repositories: NotRequired[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArgsDict']]]] """ A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. @@ -13314,6 +14693,10 @@ class UserProfileUserSettingsJupyterLabAppSettingsArgsDict(TypedDict): """ The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. """ + emr_settings: NotRequired[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgsDict']] + """ + The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + """ lifecycle_config_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ The Amazon Resource Name (ARN) of the Lifecycle Configurations. @@ -13324,24 +14707,60 @@ class UserProfileUserSettingsJupyterLabAppSettingsArgsDict(TypedDict): @pulumi.input_type class UserProfileUserSettingsJupyterLabAppSettingsArgs: def __init__(__self__, *, + app_lifecycle_management: Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']] = None, + built_in_lifecycle_config_arn: Optional[pulumi.Input[str]] = None, code_repositories: Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArgs']]]] = None, custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsCustomImageArgs']]]] = None, default_resource_spec: Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs']] = None, + emr_settings: Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs']] = None, lifecycle_config_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ + :param pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs'] app_lifecycle_management: Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + :param pulumi.Input[str] built_in_lifecycle_config_arn: The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. :param pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArgs']]] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. :param pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + :param pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs'] emr_settings: The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. :param pulumi.Input[Sequence[pulumi.Input[str]]] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) + if built_in_lifecycle_config_arn is not None: + pulumi.set(__self__, "built_in_lifecycle_config_arn", built_in_lifecycle_config_arn) if code_repositories is not None: pulumi.set(__self__, "code_repositories", code_repositories) if custom_images is not None: pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if emr_settings is not None: + pulumi.set(__self__, "emr_settings", emr_settings) if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']]: + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @app_lifecycle_management.setter + def app_lifecycle_management(self, value: Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs']]): + pulumi.set(self, "app_lifecycle_management", value) + + @property + @pulumi.getter(name="builtInLifecycleConfigArn") + def built_in_lifecycle_config_arn(self) -> Optional[pulumi.Input[str]]: + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ + return pulumi.get(self, "built_in_lifecycle_config_arn") + + @built_in_lifecycle_config_arn.setter + def built_in_lifecycle_config_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "built_in_lifecycle_config_arn", value) + @property @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArgs']]]]: @@ -13375,6 +14794,18 @@ def default_resource_spec(self) -> Optional[pulumi.Input['UserProfileUserSetting def default_resource_spec(self, value: Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs']]): pulumi.set(self, "default_resource_spec", value) + @property + @pulumi.getter(name="emrSettings") + def emr_settings(self) -> Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs']]: + """ + The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + """ + return pulumi.get(self, "emr_settings") + + @emr_settings.setter + def emr_settings(self, value: Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs']]): + pulumi.set(self, "emr_settings", value) + @property @pulumi.getter(name="lifecycleConfigArns") def lifecycle_config_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -13388,6 +14819,130 @@ def lifecycle_config_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Inp pulumi.set(self, "lifecycle_config_arns", value) +if not MYPY: + class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict(TypedDict): + idle_settings: NotRequired[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict']] + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ +elif False: + UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs: + def __init__(__self__, *, + idle_settings: Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']] = None): + """ + :param pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs'] idle_settings: Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']]: + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + @idle_settings.setter + def idle_settings(self, value: Optional[pulumi.Input['UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs']]): + pulumi.set(self, "idle_settings", value) + + +if not MYPY: + class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict(TypedDict): + idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + lifecycle_management: NotRequired[pulumi.Input[str]] + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + max_idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + min_idle_timeout_in_minutes: NotRequired[pulumi.Input[int]] + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ +elif False: + UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs: + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + lifecycle_management: Optional[pulumi.Input[str]] = None, + max_idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, + min_idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + :param pulumi.Input[str] lifecycle_management: Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + :param pulumi.Input[int] max_idle_timeout_in_minutes: The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + :param pulumi.Input[int] min_idle_timeout_in_minutes: The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + if lifecycle_management is not None: + pulumi.set(__self__, "lifecycle_management", lifecycle_management) + if max_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "max_idle_timeout_in_minutes", max_idle_timeout_in_minutes) + if min_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "min_idle_timeout_in_minutes", min_idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @idle_timeout_in_minutes.setter + def idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "idle_timeout_in_minutes", value) + + @property + @pulumi.getter(name="lifecycleManagement") + def lifecycle_management(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "lifecycle_management") + + @lifecycle_management.setter + def lifecycle_management(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "lifecycle_management", value) + + @property + @pulumi.getter(name="maxIdleTimeoutInMinutes") + def max_idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "max_idle_timeout_in_minutes") + + @max_idle_timeout_in_minutes.setter + def max_idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_idle_timeout_in_minutes", value) + + @property + @pulumi.getter(name="minIdleTimeoutInMinutes") + def min_idle_timeout_in_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "min_idle_timeout_in_minutes") + + @min_idle_timeout_in_minutes.setter + def min_idle_timeout_in_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_idle_timeout_in_minutes", value) + + if not MYPY: class UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArgsDict(TypedDict): repository_url: pulumi.Input[str] @@ -13601,6 +15156,58 @@ def sagemaker_image_version_arn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "sagemaker_image_version_arn", value) +if not MYPY: + class UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgsDict(TypedDict): + assumable_role_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + """ + execution_role_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ +elif False: + UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs: + def __init__(__self__, *, + assumable_role_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + execution_role_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] assumable_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + :param pulumi.Input[Sequence[pulumi.Input[str]]] execution_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + if assumable_role_arns is not None: + pulumi.set(__self__, "assumable_role_arns", assumable_role_arns) + if execution_role_arns is not None: + pulumi.set(__self__, "execution_role_arns", execution_role_arns) + + @property + @pulumi.getter(name="assumableRoleArns") + def assumable_role_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + """ + return pulumi.get(self, "assumable_role_arns") + + @assumable_role_arns.setter + def assumable_role_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "assumable_role_arns", value) + + @property + @pulumi.getter(name="executionRoleArns") + def execution_role_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + return pulumi.get(self, "execution_role_arns") + + @execution_role_arns.setter + def execution_role_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "execution_role_arns", value) + + if not MYPY: class UserProfileUserSettingsJupyterServerAppSettingsArgsDict(TypedDict): code_repositories: NotRequired[pulumi.Input[Sequence[pulumi.Input['UserProfileUserSettingsJupyterServerAppSettingsCodeRepositoryArgsDict']]]] @@ -14516,6 +16123,10 @@ class UserProfileUserSettingsStudioWebPortalSettingsArgsDict(TypedDict): """ The Applications supported in Studio that are hidden from the Studio left navigation pane. """ + hidden_instance_types: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + The instance types you are hiding from the Studio user interface. + """ hidden_ml_tools: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ The machine learning tools that are hidden from the Studio left navigation pane. @@ -14527,13 +16138,17 @@ class UserProfileUserSettingsStudioWebPortalSettingsArgsDict(TypedDict): class UserProfileUserSettingsStudioWebPortalSettingsArgs: def __init__(__self__, *, hidden_app_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + hidden_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, hidden_ml_tools: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] hidden_app_types: The Applications supported in Studio that are hidden from the Studio left navigation pane. + :param pulumi.Input[Sequence[pulumi.Input[str]]] hidden_instance_types: The instance types you are hiding from the Studio user interface. :param pulumi.Input[Sequence[pulumi.Input[str]]] hidden_ml_tools: The machine learning tools that are hidden from the Studio left navigation pane. """ if hidden_app_types is not None: pulumi.set(__self__, "hidden_app_types", hidden_app_types) + if hidden_instance_types is not None: + pulumi.set(__self__, "hidden_instance_types", hidden_instance_types) if hidden_ml_tools is not None: pulumi.set(__self__, "hidden_ml_tools", hidden_ml_tools) @@ -14549,6 +16164,18 @@ def hidden_app_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]] def hidden_app_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "hidden_app_types", value) + @property + @pulumi.getter(name="hiddenInstanceTypes") + def hidden_instance_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The instance types you are hiding from the Studio user interface. + """ + return pulumi.get(self, "hidden_instance_types") + + @hidden_instance_types.setter + def hidden_instance_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "hidden_instance_types", value) + @property @pulumi.getter(name="hiddenMlTools") def hidden_ml_tools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: diff --git a/sdk/python/pulumi_aws/sagemaker/domain.py b/sdk/python/pulumi_aws/sagemaker/domain.py index e74c3e00554..2ad819140ea 100644 --- a/sdk/python/pulumi_aws/sagemaker/domain.py +++ b/sdk/python/pulumi_aws/sagemaker/domain.py @@ -32,6 +32,7 @@ def __init__(__self__, *, domain_settings: Optional[pulumi.Input['DomainDomainSettingsArgs']] = None, kms_key_id: Optional[pulumi.Input[str]] = None, retention_policy: Optional[pulumi.Input['DomainRetentionPolicyArgs']] = None, + tag_propagation: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ The set of arguments for constructing a Domain resource. @@ -48,6 +49,7 @@ def __init__(__self__, *, :param pulumi.Input['DomainDomainSettingsArgs'] domain_settings: The domain settings. See `domain_settings` Block below. :param pulumi.Input[str] kms_key_id: The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. :param pulumi.Input['DomainRetentionPolicyArgs'] retention_policy: The retention policy for this domain, which specifies whether resources will be retained after the Domain is deleted. By default, all resources are retained. See `retention_policy` Block below. + :param pulumi.Input[str] tag_propagation: Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ pulumi.set(__self__, "auth_mode", auth_mode) @@ -67,6 +69,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kms_key_id", kms_key_id) if retention_policy is not None: pulumi.set(__self__, "retention_policy", retention_policy) + if tag_propagation is not None: + pulumi.set(__self__, "tag_propagation", tag_propagation) if tags is not None: pulumi.set(__self__, "tags", tags) @@ -204,6 +208,18 @@ def retention_policy(self) -> Optional[pulumi.Input['DomainRetentionPolicyArgs'] def retention_policy(self, value: Optional[pulumi.Input['DomainRetentionPolicyArgs']]): pulumi.set(self, "retention_policy", value) + @property + @pulumi.getter(name="tagPropagation") + def tag_propagation(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "tag_propagation") + + @tag_propagation.setter + def tag_propagation(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tag_propagation", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -235,6 +251,7 @@ def __init__(__self__, *, single_sign_on_application_arn: Optional[pulumi.Input[str]] = None, single_sign_on_managed_application_instance_id: Optional[pulumi.Input[str]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_propagation: 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, url: Optional[pulumi.Input[str]] = None, @@ -256,6 +273,7 @@ def __init__(__self__, *, :param pulumi.Input[str] single_sign_on_application_arn: The ARN of the application managed by SageMaker in IAM Identity Center. This value is only returned for domains created after September 19, 2023. :param pulumi.Input[str] single_sign_on_managed_application_instance_id: The SSO managed application instance ID. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The VPC subnets that Studio uses for communication. + :param pulumi.Input[str] tag_propagation: Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] url: The domain's URL. @@ -293,6 +311,8 @@ def __init__(__self__, *, pulumi.set(__self__, "single_sign_on_managed_application_instance_id", single_sign_on_managed_application_instance_id) if subnet_ids is not None: pulumi.set(__self__, "subnet_ids", subnet_ids) + if tag_propagation is not None: + pulumi.set(__self__, "tag_propagation", tag_propagation) if tags is not None: pulumi.set(__self__, "tags", tags) if tags_all is not None: @@ -485,6 +505,18 @@ def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: def subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "subnet_ids", value) + @property + @pulumi.getter(name="tagPropagation") + def tag_propagation(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "tag_propagation") + + @tag_propagation.setter + def tag_propagation(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tag_propagation", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -552,6 +584,7 @@ def __init__(__self__, kms_key_id: Optional[pulumi.Input[str]] = None, retention_policy: Optional[pulumi.Input[Union['DomainRetentionPolicyArgs', 'DomainRetentionPolicyArgsDict']]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_propagation: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, vpc_id: Optional[pulumi.Input[str]] = None, __props__=None): @@ -607,6 +640,7 @@ def __init__(__self__, :param pulumi.Input[str] kms_key_id: The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. :param pulumi.Input[Union['DomainRetentionPolicyArgs', 'DomainRetentionPolicyArgsDict']] retention_policy: The retention policy for this domain, which specifies whether resources will be retained after the Domain is deleted. By default, all resources are retained. See `retention_policy` Block below. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The VPC subnets that Studio uses for communication. + :param pulumi.Input[str] tag_propagation: Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] vpc_id: The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. @@ -683,6 +717,7 @@ def _internal_init(__self__, kms_key_id: Optional[pulumi.Input[str]] = None, retention_policy: Optional[pulumi.Input[Union['DomainRetentionPolicyArgs', 'DomainRetentionPolicyArgsDict']]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_propagation: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, vpc_id: Optional[pulumi.Input[str]] = None, __props__=None): @@ -712,6 +747,7 @@ def _internal_init(__self__, if subnet_ids is None and not opts.urn: raise TypeError("Missing required property 'subnet_ids'") __props__.__dict__["subnet_ids"] = subnet_ids + __props__.__dict__["tag_propagation"] = tag_propagation __props__.__dict__["tags"] = tags if vpc_id is None and not opts.urn: raise TypeError("Missing required property 'vpc_id'") @@ -748,6 +784,7 @@ def get(resource_name: str, single_sign_on_application_arn: Optional[pulumi.Input[str]] = None, single_sign_on_managed_application_instance_id: Optional[pulumi.Input[str]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tag_propagation: 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, url: Optional[pulumi.Input[str]] = None, @@ -774,6 +811,7 @@ def get(resource_name: str, :param pulumi.Input[str] single_sign_on_application_arn: The ARN of the application managed by SageMaker in IAM Identity Center. This value is only returned for domains created after September 19, 2023. :param pulumi.Input[str] single_sign_on_managed_application_instance_id: The SSO managed application instance ID. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The VPC subnets that Studio uses for communication. + :param pulumi.Input[str] tag_propagation: Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. :param pulumi.Input[str] url: The domain's URL. @@ -800,6 +838,7 @@ def get(resource_name: str, __props__.__dict__["single_sign_on_application_arn"] = single_sign_on_application_arn __props__.__dict__["single_sign_on_managed_application_instance_id"] = single_sign_on_managed_application_instance_id __props__.__dict__["subnet_ids"] = subnet_ids + __props__.__dict__["tag_propagation"] = tag_propagation __props__.__dict__["tags"] = tags __props__.__dict__["tags_all"] = tags_all __props__.__dict__["url"] = url @@ -926,6 +965,14 @@ def subnet_ids(self) -> pulumi.Output[Sequence[str]]: """ return pulumi.get(self, "subnet_ids") + @property + @pulumi.getter(name="tagPropagation") + def tag_propagation(self) -> pulumi.Output[Optional[str]]: + """ + Indicates whether custom tag propagation is supported for the domain. Defaults to `DISABLED`. Valid values are: `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "tag_propagation") + @property @pulumi.getter def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: diff --git a/sdk/python/pulumi_aws/sagemaker/feature_group.py b/sdk/python/pulumi_aws/sagemaker/feature_group.py index 0e57f31a5e4..8c38900b50f 100644 --- a/sdk/python/pulumi_aws/sagemaker/feature_group.py +++ b/sdk/python/pulumi_aws/sagemaker/feature_group.py @@ -29,7 +29,8 @@ def __init__(__self__, *, description: Optional[pulumi.Input[str]] = None, offline_store_config: Optional[pulumi.Input['FeatureGroupOfflineStoreConfigArgs']] = None, online_store_config: Optional[pulumi.Input['FeatureGroupOnlineStoreConfigArgs']] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput_config: Optional[pulumi.Input['FeatureGroupThroughputConfigArgs']] = None): """ The set of arguments for constructing a FeatureGroup resource. :param pulumi.Input[str] event_time_feature_name: The name of the feature that stores the EventTime of a Record in a Feature Group. @@ -55,6 +56,8 @@ def __init__(__self__, *, pulumi.set(__self__, "online_store_config", online_store_config) if tags is not None: pulumi.set(__self__, "tags", tags) + if throughput_config is not None: + pulumi.set(__self__, "throughput_config", throughput_config) @property @pulumi.getter(name="eventTimeFeatureName") @@ -164,6 +167,15 @@ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags", value) + @property + @pulumi.getter(name="throughputConfig") + def throughput_config(self) -> Optional[pulumi.Input['FeatureGroupThroughputConfigArgs']]: + return pulumi.get(self, "throughput_config") + + @throughput_config.setter + def throughput_config(self, value: Optional[pulumi.Input['FeatureGroupThroughputConfigArgs']]): + pulumi.set(self, "throughput_config", value) + @pulumi.input_type class _FeatureGroupState: @@ -178,7 +190,8 @@ def __init__(__self__, *, record_identifier_feature_name: Optional[pulumi.Input[str]] = None, role_arn: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput_config: Optional[pulumi.Input['FeatureGroupThroughputConfigArgs']] = None): """ Input properties used for looking up and filtering FeatureGroup resources. :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) assigned by AWS to this feature_group. @@ -218,6 +231,8 @@ def __init__(__self__, *, 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 throughput_config is not None: + pulumi.set(__self__, "throughput_config", throughput_config) @property @pulumi.getter @@ -352,6 +367,15 @@ def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags_all", value) + @property + @pulumi.getter(name="throughputConfig") + def throughput_config(self) -> Optional[pulumi.Input['FeatureGroupThroughputConfigArgs']]: + return pulumi.get(self, "throughput_config") + + @throughput_config.setter + def throughput_config(self, value: Optional[pulumi.Input['FeatureGroupThroughputConfigArgs']]): + pulumi.set(self, "throughput_config", value) + class FeatureGroup(pulumi.CustomResource): @overload @@ -367,6 +391,7 @@ def __init__(__self__, record_identifier_feature_name: Optional[pulumi.Input[str]] = None, role_arn: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput_config: Optional[pulumi.Input[Union['FeatureGroupThroughputConfigArgs', 'FeatureGroupThroughputConfigArgsDict']]] = None, __props__=None): """ Provides a SageMaker Feature Group resource. @@ -476,6 +501,7 @@ def _internal_init(__self__, record_identifier_feature_name: Optional[pulumi.Input[str]] = None, role_arn: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput_config: Optional[pulumi.Input[Union['FeatureGroupThroughputConfigArgs', 'FeatureGroupThroughputConfigArgsDict']]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -504,6 +530,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'role_arn'") __props__.__dict__["role_arn"] = role_arn __props__.__dict__["tags"] = tags + __props__.__dict__["throughput_config"] = throughput_config __props__.__dict__["arn"] = None __props__.__dict__["tags_all"] = None super(FeatureGroup, __self__).__init__( @@ -526,7 +553,8 @@ def get(resource_name: str, record_identifier_feature_name: Optional[pulumi.Input[str]] = None, role_arn: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'FeatureGroup': + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + throughput_config: Optional[pulumi.Input[Union['FeatureGroupThroughputConfigArgs', 'FeatureGroupThroughputConfigArgsDict']]] = None) -> 'FeatureGroup': """ Get an existing FeatureGroup resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -561,6 +589,7 @@ def get(resource_name: str, __props__.__dict__["role_arn"] = role_arn __props__.__dict__["tags"] = tags __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["throughput_config"] = throughput_config return FeatureGroup(resource_name, opts=opts, __props__=__props__) @property @@ -652,3 +681,8 @@ def tags_all(self) -> pulumi.Output[Mapping[str, str]]: """ return pulumi.get(self, "tags_all") + @property + @pulumi.getter(name="throughputConfig") + def throughput_config(self) -> pulumi.Output['outputs.FeatureGroupThroughputConfig']: + return pulumi.get(self, "throughput_config") + diff --git a/sdk/python/pulumi_aws/sagemaker/hub.py b/sdk/python/pulumi_aws/sagemaker/hub.py new file mode 100644 index 00000000000..0103cae3cae --- /dev/null +++ b/sdk/python/pulumi_aws/sagemaker/hub.py @@ -0,0 +1,492 @@ +# 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__ = ['HubArgs', 'Hub'] + +@pulumi.input_type +class HubArgs: + def __init__(__self__, *, + hub_description: pulumi.Input[str], + hub_name: pulumi.Input[str], + hub_display_name: Optional[pulumi.Input[str]] = None, + hub_search_keywords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_storage_config: Optional[pulumi.Input['HubS3StorageConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a Hub resource. + :param pulumi.Input[str] hub_description: A description of the hub. + :param pulumi.Input[str] hub_name: The name of the hub. + :param pulumi.Input[str] hub_display_name: The display name of the hub. + :param pulumi.Input[Sequence[pulumi.Input[str]]] hub_search_keywords: The searchable keywords for the hub. + :param pulumi.Input['HubS3StorageConfigArgs'] s3_storage_config: The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + pulumi.set(__self__, "hub_description", hub_description) + pulumi.set(__self__, "hub_name", hub_name) + if hub_display_name is not None: + pulumi.set(__self__, "hub_display_name", hub_display_name) + if hub_search_keywords is not None: + pulumi.set(__self__, "hub_search_keywords", hub_search_keywords) + if s3_storage_config is not None: + pulumi.set(__self__, "s3_storage_config", s3_storage_config) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="hubDescription") + def hub_description(self) -> pulumi.Input[str]: + """ + A description of the hub. + """ + return pulumi.get(self, "hub_description") + + @hub_description.setter + def hub_description(self, value: pulumi.Input[str]): + pulumi.set(self, "hub_description", value) + + @property + @pulumi.getter(name="hubName") + def hub_name(self) -> pulumi.Input[str]: + """ + The name of the hub. + """ + return pulumi.get(self, "hub_name") + + @hub_name.setter + def hub_name(self, value: pulumi.Input[str]): + pulumi.set(self, "hub_name", value) + + @property + @pulumi.getter(name="hubDisplayName") + def hub_display_name(self) -> Optional[pulumi.Input[str]]: + """ + The display name of the hub. + """ + return pulumi.get(self, "hub_display_name") + + @hub_display_name.setter + def hub_display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hub_display_name", value) + + @property + @pulumi.getter(name="hubSearchKeywords") + def hub_search_keywords(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The searchable keywords for the hub. + """ + return pulumi.get(self, "hub_search_keywords") + + @hub_search_keywords.setter + def hub_search_keywords(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "hub_search_keywords", value) + + @property + @pulumi.getter(name="s3StorageConfig") + def s3_storage_config(self) -> Optional[pulumi.Input['HubS3StorageConfigArgs']]: + """ + The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + """ + return pulumi.get(self, "s3_storage_config") + + @s3_storage_config.setter + def s3_storage_config(self, value: Optional[pulumi.Input['HubS3StorageConfigArgs']]): + pulumi.set(self, "s3_storage_config", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +@pulumi.input_type +class _HubState: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None, + hub_description: Optional[pulumi.Input[str]] = None, + hub_display_name: Optional[pulumi.Input[str]] = None, + hub_name: Optional[pulumi.Input[str]] = None, + hub_search_keywords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_storage_config: Optional[pulumi.Input['HubS3StorageConfigArgs']] = 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 Hub resources. + :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) assigned by AWS to this Hub. + :param pulumi.Input[str] hub_description: A description of the hub. + :param pulumi.Input[str] hub_display_name: The display name of the hub. + :param pulumi.Input[str] hub_name: The name of the hub. + :param pulumi.Input[Sequence[pulumi.Input[str]]] hub_search_keywords: The searchable keywords for the hub. + :param pulumi.Input['HubS3StorageConfigArgs'] s3_storage_config: The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + if arn is not None: + pulumi.set(__self__, "arn", arn) + if hub_description is not None: + pulumi.set(__self__, "hub_description", hub_description) + if hub_display_name is not None: + pulumi.set(__self__, "hub_display_name", hub_display_name) + if hub_name is not None: + pulumi.set(__self__, "hub_name", hub_name) + if hub_search_keywords is not None: + pulumi.set(__self__, "hub_search_keywords", hub_search_keywords) + if s3_storage_config is not None: + pulumi.set(__self__, "s3_storage_config", s3_storage_config) + 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 + def arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) assigned by AWS to this Hub. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="hubDescription") + def hub_description(self) -> Optional[pulumi.Input[str]]: + """ + A description of the hub. + """ + return pulumi.get(self, "hub_description") + + @hub_description.setter + def hub_description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hub_description", value) + + @property + @pulumi.getter(name="hubDisplayName") + def hub_display_name(self) -> Optional[pulumi.Input[str]]: + """ + The display name of the hub. + """ + return pulumi.get(self, "hub_display_name") + + @hub_display_name.setter + def hub_display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hub_display_name", value) + + @property + @pulumi.getter(name="hubName") + def hub_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the hub. + """ + return pulumi.get(self, "hub_name") + + @hub_name.setter + def hub_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "hub_name", value) + + @property + @pulumi.getter(name="hubSearchKeywords") + def hub_search_keywords(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The searchable keywords for the hub. + """ + return pulumi.get(self, "hub_search_keywords") + + @hub_search_keywords.setter + def hub_search_keywords(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "hub_search_keywords", value) + + @property + @pulumi.getter(name="s3StorageConfig") + def s3_storage_config(self) -> Optional[pulumi.Input['HubS3StorageConfigArgs']]: + """ + The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + """ + return pulumi.get(self, "s3_storage_config") + + @s3_storage_config.setter + def s3_storage_config(self, value: Optional[pulumi.Input['HubS3StorageConfigArgs']]): + pulumi.set(self, "s3_storage_config", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + +class Hub(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + hub_description: Optional[pulumi.Input[str]] = None, + hub_display_name: Optional[pulumi.Input[str]] = None, + hub_name: Optional[pulumi.Input[str]] = None, + hub_search_keywords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_storage_config: Optional[pulumi.Input[Union['HubS3StorageConfigArgs', 'HubS3StorageConfigArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + """ + Provides a SageMaker Hub resource. + + ## Example Usage + + ### Basic usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.sagemaker.Hub("example", + hub_name="example", + hub_description="example") + ``` + + ## Import + + Using `pulumi import`, import SageMaker Hubs using the `name`. For example: + + ```sh + $ pulumi import aws:sagemaker/hub:Hub test_hub my-code-repo + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] hub_description: A description of the hub. + :param pulumi.Input[str] hub_display_name: The display name of the hub. + :param pulumi.Input[str] hub_name: The name of the hub. + :param pulumi.Input[Sequence[pulumi.Input[str]]] hub_search_keywords: The searchable keywords for the hub. + :param pulumi.Input[Union['HubS3StorageConfigArgs', 'HubS3StorageConfigArgsDict']] s3_storage_config: The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: HubArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Provides a SageMaker Hub resource. + + ## Example Usage + + ### Basic usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.sagemaker.Hub("example", + hub_name="example", + hub_description="example") + ``` + + ## Import + + Using `pulumi import`, import SageMaker Hubs using the `name`. For example: + + ```sh + $ pulumi import aws:sagemaker/hub:Hub test_hub my-code-repo + ``` + + :param str resource_name: The name of the resource. + :param HubArgs 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(HubArgs, 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, + hub_description: Optional[pulumi.Input[str]] = None, + hub_display_name: Optional[pulumi.Input[str]] = None, + hub_name: Optional[pulumi.Input[str]] = None, + hub_search_keywords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_storage_config: Optional[pulumi.Input[Union['HubS3StorageConfigArgs', 'HubS3StorageConfigArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = HubArgs.__new__(HubArgs) + + if hub_description is None and not opts.urn: + raise TypeError("Missing required property 'hub_description'") + __props__.__dict__["hub_description"] = hub_description + __props__.__dict__["hub_display_name"] = hub_display_name + if hub_name is None and not opts.urn: + raise TypeError("Missing required property 'hub_name'") + __props__.__dict__["hub_name"] = hub_name + __props__.__dict__["hub_search_keywords"] = hub_search_keywords + __props__.__dict__["s3_storage_config"] = s3_storage_config + __props__.__dict__["tags"] = tags + __props__.__dict__["arn"] = None + __props__.__dict__["tags_all"] = None + super(Hub, __self__).__init__( + 'aws:sagemaker/hub:Hub', + 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, + hub_description: Optional[pulumi.Input[str]] = None, + hub_display_name: Optional[pulumi.Input[str]] = None, + hub_name: Optional[pulumi.Input[str]] = None, + hub_search_keywords: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + s3_storage_config: Optional[pulumi.Input[Union['HubS3StorageConfigArgs', 'HubS3StorageConfigArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'Hub': + """ + Get an existing Hub 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 Amazon Resource Name (ARN) assigned by AWS to this Hub. + :param pulumi.Input[str] hub_description: A description of the hub. + :param pulumi.Input[str] hub_display_name: The display name of the hub. + :param pulumi.Input[str] hub_name: The name of the hub. + :param pulumi.Input[Sequence[pulumi.Input[str]]] hub_search_keywords: The searchable keywords for the hub. + :param pulumi.Input[Union['HubS3StorageConfigArgs', 'HubS3StorageConfigArgsDict']] s3_storage_config: The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _HubState.__new__(_HubState) + + __props__.__dict__["arn"] = arn + __props__.__dict__["hub_description"] = hub_description + __props__.__dict__["hub_display_name"] = hub_display_name + __props__.__dict__["hub_name"] = hub_name + __props__.__dict__["hub_search_keywords"] = hub_search_keywords + __props__.__dict__["s3_storage_config"] = s3_storage_config + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + return Hub(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) assigned by AWS to this Hub. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="hubDescription") + def hub_description(self) -> pulumi.Output[str]: + """ + A description of the hub. + """ + return pulumi.get(self, "hub_description") + + @property + @pulumi.getter(name="hubDisplayName") + def hub_display_name(self) -> pulumi.Output[Optional[str]]: + """ + The display name of the hub. + """ + return pulumi.get(self, "hub_display_name") + + @property + @pulumi.getter(name="hubName") + def hub_name(self) -> pulumi.Output[str]: + """ + The name of the hub. + """ + return pulumi.get(self, "hub_name") + + @property + @pulumi.getter(name="hubSearchKeywords") + def hub_search_keywords(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The searchable keywords for the hub. + """ + return pulumi.get(self, "hub_search_keywords") + + @property + @pulumi.getter(name="s3StorageConfig") + def s3_storage_config(self) -> pulumi.Output[Optional['outputs.HubS3StorageConfig']]: + """ + The Amazon S3 storage configuration for the hub. See S3 Storage Config details below. + """ + return pulumi.get(self, "s3_storage_config") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + diff --git a/sdk/python/pulumi_aws/sagemaker/mlflow_tracking_server.py b/sdk/python/pulumi_aws/sagemaker/mlflow_tracking_server.py new file mode 100644 index 00000000000..752d2a17a42 --- /dev/null +++ b/sdk/python/pulumi_aws/sagemaker/mlflow_tracking_server.py @@ -0,0 +1,615 @@ +# 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__ = ['MlflowTrackingServerArgs', 'MlflowTrackingServer'] + +@pulumi.input_type +class MlflowTrackingServerArgs: + def __init__(__self__, *, + artifact_store_uri: pulumi.Input[str], + role_arn: pulumi.Input[str], + tracking_server_name: pulumi.Input[str], + automatic_model_registration: Optional[pulumi.Input[bool]] = None, + mlflow_version: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracking_server_size: Optional[pulumi.Input[str]] = None, + weekly_maintenance_window_start: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a MlflowTrackingServer resource. + :param pulumi.Input[str] artifact_store_uri: The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + :param pulumi.Input[str] tracking_server_name: A unique string identifying the tracking server name. This string is part of the tracking server ARN. + :param pulumi.Input[bool] automatic_model_registration: A list of Member Definitions that contains objects that identify the workers that make up the work team. + :param pulumi.Input[str] mlflow_version: The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[str] tracking_server_size: The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + :param pulumi.Input[str] weekly_maintenance_window_start: The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + """ + pulumi.set(__self__, "artifact_store_uri", artifact_store_uri) + pulumi.set(__self__, "role_arn", role_arn) + pulumi.set(__self__, "tracking_server_name", tracking_server_name) + if automatic_model_registration is not None: + pulumi.set(__self__, "automatic_model_registration", automatic_model_registration) + if mlflow_version is not None: + pulumi.set(__self__, "mlflow_version", mlflow_version) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tracking_server_size is not None: + pulumi.set(__self__, "tracking_server_size", tracking_server_size) + if weekly_maintenance_window_start is not None: + pulumi.set(__self__, "weekly_maintenance_window_start", weekly_maintenance_window_start) + + @property + @pulumi.getter(name="artifactStoreUri") + def artifact_store_uri(self) -> pulumi.Input[str]: + """ + The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + """ + return pulumi.get(self, "artifact_store_uri") + + @artifact_store_uri.setter + def artifact_store_uri(self, value: pulumi.Input[str]): + pulumi.set(self, "artifact_store_uri", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + """ + The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="trackingServerName") + def tracking_server_name(self) -> pulumi.Input[str]: + """ + A unique string identifying the tracking server name. This string is part of the tracking server ARN. + """ + return pulumi.get(self, "tracking_server_name") + + @tracking_server_name.setter + def tracking_server_name(self, value: pulumi.Input[str]): + pulumi.set(self, "tracking_server_name", value) + + @property + @pulumi.getter(name="automaticModelRegistration") + def automatic_model_registration(self) -> Optional[pulumi.Input[bool]]: + """ + A list of Member Definitions that contains objects that identify the workers that make up the work team. + """ + return pulumi.get(self, "automatic_model_registration") + + @automatic_model_registration.setter + def automatic_model_registration(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "automatic_model_registration", value) + + @property + @pulumi.getter(name="mlflowVersion") + def mlflow_version(self) -> Optional[pulumi.Input[str]]: + """ + The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + """ + return pulumi.get(self, "mlflow_version") + + @mlflow_version.setter + def mlflow_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mlflow_version", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="trackingServerSize") + def tracking_server_size(self) -> Optional[pulumi.Input[str]]: + """ + The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + """ + return pulumi.get(self, "tracking_server_size") + + @tracking_server_size.setter + def tracking_server_size(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tracking_server_size", value) + + @property + @pulumi.getter(name="weeklyMaintenanceWindowStart") + def weekly_maintenance_window_start(self) -> Optional[pulumi.Input[str]]: + """ + The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + """ + return pulumi.get(self, "weekly_maintenance_window_start") + + @weekly_maintenance_window_start.setter + def weekly_maintenance_window_start(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "weekly_maintenance_window_start", value) + + +@pulumi.input_type +class _MlflowTrackingServerState: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None, + artifact_store_uri: Optional[pulumi.Input[str]] = None, + automatic_model_registration: Optional[pulumi.Input[bool]] = None, + mlflow_version: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracking_server_name: Optional[pulumi.Input[str]] = None, + tracking_server_size: Optional[pulumi.Input[str]] = None, + tracking_server_url: Optional[pulumi.Input[str]] = None, + weekly_maintenance_window_start: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering MlflowTrackingServer resources. + :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + :param pulumi.Input[str] artifact_store_uri: The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + :param pulumi.Input[bool] automatic_model_registration: A list of Member Definitions that contains objects that identify the workers that make up the work team. + :param pulumi.Input[str] mlflow_version: The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[str] tracking_server_name: A unique string identifying the tracking server name. This string is part of the tracking server ARN. + :param pulumi.Input[str] tracking_server_size: The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + :param pulumi.Input[str] tracking_server_url: The URL to connect to the MLflow user interface for the described tracking server. + :param pulumi.Input[str] weekly_maintenance_window_start: The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + """ + if arn is not None: + pulumi.set(__self__, "arn", arn) + if artifact_store_uri is not None: + pulumi.set(__self__, "artifact_store_uri", artifact_store_uri) + if automatic_model_registration is not None: + pulumi.set(__self__, "automatic_model_registration", automatic_model_registration) + if mlflow_version is not None: + pulumi.set(__self__, "mlflow_version", mlflow_version) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tags_all is not None: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + if tags_all is not None: + pulumi.set(__self__, "tags_all", tags_all) + if tracking_server_name is not None: + pulumi.set(__self__, "tracking_server_name", tracking_server_name) + if tracking_server_size is not None: + pulumi.set(__self__, "tracking_server_size", tracking_server_size) + if tracking_server_url is not None: + pulumi.set(__self__, "tracking_server_url", tracking_server_url) + if weekly_maintenance_window_start is not None: + pulumi.set(__self__, "weekly_maintenance_window_start", weekly_maintenance_window_start) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="artifactStoreUri") + def artifact_store_uri(self) -> Optional[pulumi.Input[str]]: + """ + The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + """ + return pulumi.get(self, "artifact_store_uri") + + @artifact_store_uri.setter + def artifact_store_uri(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "artifact_store_uri", value) + + @property + @pulumi.getter(name="automaticModelRegistration") + def automatic_model_registration(self) -> Optional[pulumi.Input[bool]]: + """ + A list of Member Definitions that contains objects that identify the workers that make up the work team. + """ + return pulumi.get(self, "automatic_model_registration") + + @automatic_model_registration.setter + def automatic_model_registration(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "automatic_model_registration", value) + + @property + @pulumi.getter(name="mlflowVersion") + def mlflow_version(self) -> Optional[pulumi.Input[str]]: + """ + The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + """ + return pulumi.get(self, "mlflow_version") + + @mlflow_version.setter + def mlflow_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mlflow_version", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + @property + @pulumi.getter(name="trackingServerName") + def tracking_server_name(self) -> Optional[pulumi.Input[str]]: + """ + A unique string identifying the tracking server name. This string is part of the tracking server ARN. + """ + return pulumi.get(self, "tracking_server_name") + + @tracking_server_name.setter + def tracking_server_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tracking_server_name", value) + + @property + @pulumi.getter(name="trackingServerSize") + def tracking_server_size(self) -> Optional[pulumi.Input[str]]: + """ + The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + """ + return pulumi.get(self, "tracking_server_size") + + @tracking_server_size.setter + def tracking_server_size(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tracking_server_size", value) + + @property + @pulumi.getter(name="trackingServerUrl") + def tracking_server_url(self) -> Optional[pulumi.Input[str]]: + """ + The URL to connect to the MLflow user interface for the described tracking server. + """ + return pulumi.get(self, "tracking_server_url") + + @tracking_server_url.setter + def tracking_server_url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tracking_server_url", value) + + @property + @pulumi.getter(name="weeklyMaintenanceWindowStart") + def weekly_maintenance_window_start(self) -> Optional[pulumi.Input[str]]: + """ + The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + """ + return pulumi.get(self, "weekly_maintenance_window_start") + + @weekly_maintenance_window_start.setter + def weekly_maintenance_window_start(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "weekly_maintenance_window_start", value) + + +class MlflowTrackingServer(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + artifact_store_uri: Optional[pulumi.Input[str]] = None, + automatic_model_registration: Optional[pulumi.Input[bool]] = None, + mlflow_version: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracking_server_name: Optional[pulumi.Input[str]] = None, + tracking_server_size: Optional[pulumi.Input[str]] = None, + weekly_maintenance_window_start: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Provides a SageMaker MLFlow Tracking Server resource. + + ## Example Usage + + ### Cognito Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.sagemaker.MlflowTrackingServer("example", + tracking_server_name="example", + role_arn=example_aws_iam_role["arn"], + artifact_store_uri=f"s3://{example_aws_s3_bucket['bucket']}/path") + ``` + + ## Import + + Using `pulumi import`, import SageMaker MLFlow Tracking Servers using the `workteam_name`. For example: + + ```sh + $ pulumi import aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer example example + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] artifact_store_uri: The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + :param pulumi.Input[bool] automatic_model_registration: A list of Member Definitions that contains objects that identify the workers that make up the work team. + :param pulumi.Input[str] mlflow_version: The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[str] tracking_server_name: A unique string identifying the tracking server name. This string is part of the tracking server ARN. + :param pulumi.Input[str] tracking_server_size: The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + :param pulumi.Input[str] weekly_maintenance_window_start: The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MlflowTrackingServerArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Provides a SageMaker MLFlow Tracking Server resource. + + ## Example Usage + + ### Cognito Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.sagemaker.MlflowTrackingServer("example", + tracking_server_name="example", + role_arn=example_aws_iam_role["arn"], + artifact_store_uri=f"s3://{example_aws_s3_bucket['bucket']}/path") + ``` + + ## Import + + Using `pulumi import`, import SageMaker MLFlow Tracking Servers using the `workteam_name`. For example: + + ```sh + $ pulumi import aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer example example + ``` + + :param str resource_name: The name of the resource. + :param MlflowTrackingServerArgs 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(MlflowTrackingServerArgs, 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, + artifact_store_uri: Optional[pulumi.Input[str]] = None, + automatic_model_registration: Optional[pulumi.Input[bool]] = None, + mlflow_version: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracking_server_name: Optional[pulumi.Input[str]] = None, + tracking_server_size: Optional[pulumi.Input[str]] = None, + weekly_maintenance_window_start: 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__ = MlflowTrackingServerArgs.__new__(MlflowTrackingServerArgs) + + if artifact_store_uri is None and not opts.urn: + raise TypeError("Missing required property 'artifact_store_uri'") + __props__.__dict__["artifact_store_uri"] = artifact_store_uri + __props__.__dict__["automatic_model_registration"] = automatic_model_registration + __props__.__dict__["mlflow_version"] = mlflow_version + if role_arn is None and not opts.urn: + raise TypeError("Missing required property 'role_arn'") + __props__.__dict__["role_arn"] = role_arn + __props__.__dict__["tags"] = tags + if tracking_server_name is None and not opts.urn: + raise TypeError("Missing required property 'tracking_server_name'") + __props__.__dict__["tracking_server_name"] = tracking_server_name + __props__.__dict__["tracking_server_size"] = tracking_server_size + __props__.__dict__["weekly_maintenance_window_start"] = weekly_maintenance_window_start + __props__.__dict__["arn"] = None + __props__.__dict__["tags_all"] = None + __props__.__dict__["tracking_server_url"] = None + super(MlflowTrackingServer, __self__).__init__( + 'aws:sagemaker/mlflowTrackingServer:MlflowTrackingServer', + 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, + artifact_store_uri: Optional[pulumi.Input[str]] = None, + automatic_model_registration: Optional[pulumi.Input[bool]] = None, + mlflow_version: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tracking_server_name: Optional[pulumi.Input[str]] = None, + tracking_server_size: Optional[pulumi.Input[str]] = None, + tracking_server_url: Optional[pulumi.Input[str]] = None, + weekly_maintenance_window_start: Optional[pulumi.Input[str]] = None) -> 'MlflowTrackingServer': + """ + Get an existing MlflowTrackingServer 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 Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + :param pulumi.Input[str] artifact_store_uri: The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + :param pulumi.Input[bool] automatic_model_registration: A list of Member Definitions that contains objects that identify the workers that make up the work team. + :param pulumi.Input[str] mlflow_version: The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[str] tracking_server_name: A unique string identifying the tracking server name. This string is part of the tracking server ARN. + :param pulumi.Input[str] tracking_server_size: The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + :param pulumi.Input[str] tracking_server_url: The URL to connect to the MLflow user interface for the described tracking server. + :param pulumi.Input[str] weekly_maintenance_window_start: The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _MlflowTrackingServerState.__new__(_MlflowTrackingServerState) + + __props__.__dict__["arn"] = arn + __props__.__dict__["artifact_store_uri"] = artifact_store_uri + __props__.__dict__["automatic_model_registration"] = automatic_model_registration + __props__.__dict__["mlflow_version"] = mlflow_version + __props__.__dict__["role_arn"] = role_arn + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["tracking_server_name"] = tracking_server_name + __props__.__dict__["tracking_server_size"] = tracking_server_size + __props__.__dict__["tracking_server_url"] = tracking_server_url + __props__.__dict__["weekly_maintenance_window_start"] = weekly_maintenance_window_start + return MlflowTrackingServer(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) assigned by AWS to this MLFlow Tracking Server. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="artifactStoreUri") + def artifact_store_uri(self) -> pulumi.Output[str]: + """ + The S3 URI for a general purpose bucket to use as the MLflow Tracking Server artifact store. + """ + return pulumi.get(self, "artifact_store_uri") + + @property + @pulumi.getter(name="automaticModelRegistration") + def automatic_model_registration(self) -> pulumi.Output[Optional[bool]]: + """ + A list of Member Definitions that contains objects that identify the workers that make up the work team. + """ + return pulumi.get(self, "automatic_model_registration") + + @property + @pulumi.getter(name="mlflowVersion") + def mlflow_version(self) -> pulumi.Output[str]: + """ + The version of MLflow that the tracking server uses. To see which MLflow versions are available to use, see [How it works](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html#mlflow-create-tracking-server-how-it-works). + """ + return pulumi.get(self, "mlflow_version") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) for an IAM role in your account that the MLflow Tracking Server uses to access the artifact store in Amazon S3. The role should have AmazonS3FullAccess permissions. For more information on IAM permissions for tracking server creation, see [Set up IAM permissions for MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-iam.html). + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter(name="trackingServerName") + def tracking_server_name(self) -> pulumi.Output[str]: + """ + A unique string identifying the tracking server name. This string is part of the tracking server ARN. + """ + return pulumi.get(self, "tracking_server_name") + + @property + @pulumi.getter(name="trackingServerSize") + def tracking_server_size(self) -> pulumi.Output[Optional[str]]: + """ + The size of the tracking server you want to create. You can choose between "Small", "Medium", and "Large". The default MLflow Tracking Server configuration size is "Small". You can choose a size depending on the projected use of the tracking server such as the volume of data logged, number of users, and frequency of use. + """ + return pulumi.get(self, "tracking_server_size") + + @property + @pulumi.getter(name="trackingServerUrl") + def tracking_server_url(self) -> pulumi.Output[str]: + """ + The URL to connect to the MLflow user interface for the described tracking server. + """ + return pulumi.get(self, "tracking_server_url") + + @property + @pulumi.getter(name="weeklyMaintenanceWindowStart") + def weekly_maintenance_window_start(self) -> pulumi.Output[str]: + """ + The day and time of the week in Coordinated Universal Time (UTC) 24-hour standard time that weekly maintenance updates are scheduled. For example: TUE:03:30. + """ + return pulumi.get(self, "weekly_maintenance_window_start") + diff --git a/sdk/python/pulumi_aws/sagemaker/outputs.py b/sdk/python/pulumi_aws/sagemaker/outputs.py index e26f51af137..1dd8e60519b 100644 --- a/sdk/python/pulumi_aws/sagemaker/outputs.py +++ b/sdk/python/pulumi_aws/sagemaker/outputs.py @@ -52,9 +52,12 @@ 'DomainDefaultSpaceSettingsCustomFileSystemConfigEfsFileSystemConfig', 'DomainDefaultSpaceSettingsCustomPosixUserConfig', 'DomainDefaultSpaceSettingsJupyterLabAppSettings', + 'DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement', + 'DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImage', 'DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec', + 'DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings', 'DomainDefaultSpaceSettingsJupyterServerAppSettings', 'DomainDefaultSpaceSettingsJupyterServerAppSettingsCodeRepository', 'DomainDefaultSpaceSettingsJupyterServerAppSettingsDefaultResourceSpec', @@ -66,6 +69,7 @@ 'DomainDefaultUserSettings', 'DomainDefaultUserSettingsCanvasAppSettings', 'DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings', + 'DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings', 'DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings', 'DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSetting', 'DomainDefaultUserSettingsCanvasAppSettingsKendraSettings', @@ -73,15 +77,20 @@ 'DomainDefaultUserSettingsCanvasAppSettingsTimeSeriesForecastingSettings', 'DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettings', 'DomainDefaultUserSettingsCodeEditorAppSettings', + 'DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement', + 'DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings', 'DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage', 'DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpec', 'DomainDefaultUserSettingsCustomFileSystemConfig', 'DomainDefaultUserSettingsCustomFileSystemConfigEfsFileSystemConfig', 'DomainDefaultUserSettingsCustomPosixUserConfig', 'DomainDefaultUserSettingsJupyterLabAppSettings', + 'DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement', + 'DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings', 'DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository', 'DomainDefaultUserSettingsJupyterLabAppSettingsCustomImage', 'DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec', + 'DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings', 'DomainDefaultUserSettingsJupyterServerAppSettings', 'DomainDefaultUserSettingsJupyterServerAppSettingsCodeRepository', 'DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec', @@ -131,12 +140,15 @@ 'EndpointDeploymentConfigRollingUpdatePolicyMaximumBatchSize', 'EndpointDeploymentConfigRollingUpdatePolicyRollbackMaximumBatchSize', 'FeatureGroupFeatureDefinition', + 'FeatureGroupFeatureDefinitionCollectionConfig', + 'FeatureGroupFeatureDefinitionCollectionConfigVectorConfig', 'FeatureGroupOfflineStoreConfig', 'FeatureGroupOfflineStoreConfigDataCatalogConfig', 'FeatureGroupOfflineStoreConfigS3StorageConfig', 'FeatureGroupOnlineStoreConfig', 'FeatureGroupOnlineStoreConfigSecurityConfig', 'FeatureGroupOnlineStoreConfigTtlDuration', + 'FeatureGroupThroughputConfig', 'FlowDefinitionHumanLoopActivationConfig', 'FlowDefinitionHumanLoopActivationConfigHumanLoopActivationConditionsConfig', 'FlowDefinitionHumanLoopConfig', @@ -144,6 +156,7 @@ 'FlowDefinitionHumanLoopConfigPublicWorkforceTaskPriceAmountInUsd', 'FlowDefinitionHumanLoopRequestSource', 'FlowDefinitionOutputConfig', + 'HubS3StorageConfig', 'HumanTaskUIUiTemplate', 'ModelContainer', 'ModelContainerImageConfig', @@ -171,10 +184,14 @@ 'SpaceOwnershipSettings', 'SpaceSpaceSettings', 'SpaceSpaceSettingsCodeEditorAppSettings', + 'SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement', + 'SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings', 'SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec', 'SpaceSpaceSettingsCustomFileSystem', 'SpaceSpaceSettingsCustomFileSystemEfsFileSystem', 'SpaceSpaceSettingsJupyterLabAppSettings', + 'SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement', + 'SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings', 'SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository', 'SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec', 'SpaceSpaceSettingsJupyterServerAppSettings', @@ -189,6 +206,7 @@ 'UserProfileUserSettings', 'UserProfileUserSettingsCanvasAppSettings', 'UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings', + 'UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings', 'UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings', 'UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSetting', 'UserProfileUserSettingsCanvasAppSettingsKendraSettings', @@ -196,15 +214,20 @@ 'UserProfileUserSettingsCanvasAppSettingsTimeSeriesForecastingSettings', 'UserProfileUserSettingsCanvasAppSettingsWorkspaceSettings', 'UserProfileUserSettingsCodeEditorAppSettings', + 'UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement', + 'UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings', 'UserProfileUserSettingsCodeEditorAppSettingsCustomImage', 'UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpec', 'UserProfileUserSettingsCustomFileSystemConfig', 'UserProfileUserSettingsCustomFileSystemConfigEfsFileSystemConfig', 'UserProfileUserSettingsCustomPosixUserConfig', 'UserProfileUserSettingsJupyterLabAppSettings', + 'UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement', + 'UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings', 'UserProfileUserSettingsJupyterLabAppSettingsCodeRepository', 'UserProfileUserSettingsJupyterLabAppSettingsCustomImage', 'UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec', + 'UserProfileUserSettingsJupyterLabAppSettingsEmrSettings', 'UserProfileUserSettingsJupyterServerAppSettings', 'UserProfileUserSettingsJupyterServerAppSettingsCodeRepository', 'UserProfileUserSettingsJupyterServerAppSettingsDefaultResourceSpec', @@ -2162,12 +2185,18 @@ class DomainDefaultSpaceSettingsJupyterLabAppSettings(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "codeRepositories": + if key == "appLifecycleManagement": + suggest = "app_lifecycle_management" + elif key == "builtInLifecycleConfigArn": + suggest = "built_in_lifecycle_config_arn" + elif key == "codeRepositories": suggest = "code_repositories" elif key == "customImages": suggest = "custom_images" elif key == "defaultResourceSpec": suggest = "default_resource_spec" + elif key == "emrSettings": + suggest = "emr_settings" elif key == "lifecycleConfigArns": suggest = "lifecycle_config_arns" @@ -2183,25 +2212,53 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + app_lifecycle_management: Optional['outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement'] = None, + built_in_lifecycle_config_arn: Optional[str] = None, code_repositories: Optional[Sequence['outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository']] = None, custom_images: Optional[Sequence['outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImage']] = None, default_resource_spec: Optional['outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec'] = None, + emr_settings: Optional['outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings'] = None, lifecycle_config_arns: Optional[Sequence[str]] = None): """ + :param 'DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs' app_lifecycle_management: Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + :param str built_in_lifecycle_config_arn: The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. :param Sequence['DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs'] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. :param Sequence['DomainDefaultSpaceSettingsJupyterLabAppSettingsCustomImageArgs'] custom_images: A list of custom SageMaker images that are configured to run as a JupyterLab app. see `custom_image` Block below. :param 'DomainDefaultSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below. + :param 'DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettingsArgs' emr_settings: The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) + if built_in_lifecycle_config_arn is not None: + pulumi.set(__self__, "built_in_lifecycle_config_arn", built_in_lifecycle_config_arn) if code_repositories is not None: pulumi.set(__self__, "code_repositories", code_repositories) if custom_images is not None: pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if emr_settings is not None: + pulumi.set(__self__, "emr_settings", emr_settings) if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional['outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement']: + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @property + @pulumi.getter(name="builtInLifecycleConfigArn") + def built_in_lifecycle_config_arn(self) -> Optional[str]: + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ + return pulumi.get(self, "built_in_lifecycle_config_arn") + @property @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[Sequence['outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository']]: @@ -2226,6 +2283,14 @@ def default_resource_spec(self) -> Optional['outputs.DomainDefaultSpaceSettingsJ """ return pulumi.get(self, "default_resource_spec") + @property + @pulumi.getter(name="emrSettings") + def emr_settings(self) -> Optional['outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings']: + """ + The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + """ + return pulumi.get(self, "emr_settings") + @property @pulumi.getter(name="lifecycleConfigArns") def lifecycle_config_arns(self) -> Optional[Sequence[str]]: @@ -2235,6 +2300,120 @@ def lifecycle_config_arns(self) -> Optional[Sequence[str]]: return pulumi.get(self, "lifecycle_config_arns") +@pulumi.output_type +class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleSettings": + suggest = "idle_settings" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_settings: Optional['outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings'] = None): + """ + :param 'DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs' idle_settings: Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional['outputs.DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings']: + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + +@pulumi.output_type +class DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeoutInMinutes": + suggest = "idle_timeout_in_minutes" + elif key == "lifecycleManagement": + suggest = "lifecycle_management" + elif key == "maxIdleTimeoutInMinutes": + suggest = "max_idle_timeout_in_minutes" + elif key == "minIdleTimeoutInMinutes": + suggest = "min_idle_timeout_in_minutes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DomainDefaultSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[int] = None, + lifecycle_management: Optional[str] = None, + max_idle_timeout_in_minutes: Optional[int] = None, + min_idle_timeout_in_minutes: Optional[int] = None): + """ + :param int idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + :param str lifecycle_management: Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + :param int max_idle_timeout_in_minutes: The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + :param int min_idle_timeout_in_minutes: The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + if lifecycle_management is not None: + pulumi.set(__self__, "lifecycle_management", lifecycle_management) + if max_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "max_idle_timeout_in_minutes", max_idle_timeout_in_minutes) + if min_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "min_idle_timeout_in_minutes", min_idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[int]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @property + @pulumi.getter(name="lifecycleManagement") + def lifecycle_management(self) -> Optional[str]: + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "lifecycle_management") + + @property + @pulumi.getter(name="maxIdleTimeoutInMinutes") + def max_idle_timeout_in_minutes(self) -> Optional[int]: + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "max_idle_timeout_in_minutes") + + @property + @pulumi.getter(name="minIdleTimeoutInMinutes") + def min_idle_timeout_in_minutes(self) -> Optional[int]: + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "min_idle_timeout_in_minutes") + + @pulumi.output_type class DomainDefaultSpaceSettingsJupyterLabAppSettingsCodeRepository(dict): @staticmethod @@ -2424,6 +2603,56 @@ def sagemaker_image_version_arn(self) -> Optional[str]: return pulumi.get(self, "sagemaker_image_version_arn") +@pulumi.output_type +class DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "assumableRoleArns": + suggest = "assumable_role_arns" + elif key == "executionRoleArns": + suggest = "execution_role_arns" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DomainDefaultSpaceSettingsJupyterLabAppSettingsEmrSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + assumable_role_arns: Optional[Sequence[str]] = None, + execution_role_arns: Optional[Sequence[str]] = None): + """ + :param Sequence[str] assumable_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + :param Sequence[str] execution_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + if assumable_role_arns is not None: + pulumi.set(__self__, "assumable_role_arns", assumable_role_arns) + if execution_role_arns is not None: + pulumi.set(__self__, "execution_role_arns", execution_role_arns) + + @property + @pulumi.getter(name="assumableRoleArns") + def assumable_role_arns(self) -> Optional[Sequence[str]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + """ + return pulumi.get(self, "assumable_role_arns") + + @property + @pulumi.getter(name="executionRoleArns") + def execution_role_arns(self) -> Optional[Sequence[str]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + return pulumi.get(self, "execution_role_arns") + + @pulumi.output_type class DomainDefaultSpaceSettingsJupyterServerAppSettings(dict): @staticmethod @@ -2924,6 +3153,8 @@ def __key_warning(key: str): suggest = None if key == "executionRole": suggest = "execution_role" + elif key == "autoMountHomeEfs": + suggest = "auto_mount_home_efs" elif key == "canvasAppSettings": suggest = "canvas_app_settings" elif key == "codeEditorAppSettings": @@ -2970,6 +3201,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, execution_role: str, + auto_mount_home_efs: Optional[str] = None, canvas_app_settings: Optional['outputs.DomainDefaultUserSettingsCanvasAppSettings'] = None, code_editor_app_settings: Optional['outputs.DomainDefaultUserSettingsCodeEditorAppSettings'] = None, custom_file_system_configs: Optional[Sequence['outputs.DomainDefaultUserSettingsCustomFileSystemConfig']] = None, @@ -2988,6 +3220,7 @@ def __init__(__self__, *, tensor_board_app_settings: Optional['outputs.DomainDefaultUserSettingsTensorBoardAppSettings'] = None): """ :param str execution_role: The execution role ARN for the user. + :param str auto_mount_home_efs: Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. :param 'DomainDefaultUserSettingsCanvasAppSettingsArgs' canvas_app_settings: The Canvas app settings. See `canvas_app_settings` Block below. :param 'DomainDefaultUserSettingsCodeEditorAppSettingsArgs' code_editor_app_settings: The Code Editor application settings. See `code_editor_app_settings` Block below. :param Sequence['DomainDefaultUserSettingsCustomFileSystemConfigArgs'] custom_file_system_configs: The settings for assigning a custom file system to a user profile. Permitted users can access this file system in Amazon SageMaker Studio. See `custom_file_system_config` Block below. @@ -3006,6 +3239,8 @@ def __init__(__self__, *, :param 'DomainDefaultUserSettingsTensorBoardAppSettingsArgs' tensor_board_app_settings: The TensorBoard app settings. See `tensor_board_app_settings` Block below. """ pulumi.set(__self__, "execution_role", execution_role) + if auto_mount_home_efs is not None: + pulumi.set(__self__, "auto_mount_home_efs", auto_mount_home_efs) if canvas_app_settings is not None: pulumi.set(__self__, "canvas_app_settings", canvas_app_settings) if code_editor_app_settings is not None: @@ -3047,6 +3282,14 @@ def execution_role(self) -> str: """ return pulumi.get(self, "execution_role") + @property + @pulumi.getter(name="autoMountHomeEfs") + def auto_mount_home_efs(self) -> Optional[str]: + """ + Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + """ + return pulumi.get(self, "auto_mount_home_efs") + @property @pulumi.getter(name="canvasAppSettings") def canvas_app_settings(self) -> Optional['outputs.DomainDefaultUserSettingsCanvasAppSettings']: @@ -3183,6 +3426,8 @@ def __key_warning(key: str): suggest = None if key == "directDeploySettings": suggest = "direct_deploy_settings" + elif key == "emrServerlessSettings": + suggest = "emr_serverless_settings" elif key == "generativeAiSettings": suggest = "generative_ai_settings" elif key == "identityProviderOauthSettings": @@ -3209,6 +3454,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, direct_deploy_settings: Optional['outputs.DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettings'] = None, + emr_serverless_settings: Optional['outputs.DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings'] = None, generative_ai_settings: Optional['outputs.DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings'] = None, identity_provider_oauth_settings: Optional[Sequence['outputs.DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSetting']] = None, kendra_settings: Optional['outputs.DomainDefaultUserSettingsCanvasAppSettingsKendraSettings'] = None, @@ -3217,6 +3463,7 @@ def __init__(__self__, *, workspace_settings: Optional['outputs.DomainDefaultUserSettingsCanvasAppSettingsWorkspaceSettings'] = None): """ :param 'DomainDefaultUserSettingsCanvasAppSettingsDirectDeploySettingsArgs' direct_deploy_settings: The model deployment settings for the SageMaker Canvas application. See `direct_deploy_settings` Block below. + :param 'DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs' emr_serverless_settings: The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. :param Sequence['DomainDefaultUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs'] identity_provider_oauth_settings: The settings for connecting to an external data source with OAuth. See `identity_provider_oauth_settings` Block below. :param 'DomainDefaultUserSettingsCanvasAppSettingsKendraSettingsArgs' kendra_settings: The settings for document querying. See `kendra_settings` Block below. :param 'DomainDefaultUserSettingsCanvasAppSettingsModelRegisterSettingsArgs' model_register_settings: The model registry settings for the SageMaker Canvas application. See `model_register_settings` Block below. @@ -3225,6 +3472,8 @@ def __init__(__self__, *, """ if direct_deploy_settings is not None: pulumi.set(__self__, "direct_deploy_settings", direct_deploy_settings) + if emr_serverless_settings is not None: + pulumi.set(__self__, "emr_serverless_settings", emr_serverless_settings) if generative_ai_settings is not None: pulumi.set(__self__, "generative_ai_settings", generative_ai_settings) if identity_provider_oauth_settings is not None: @@ -3246,6 +3495,14 @@ def direct_deploy_settings(self) -> Optional['outputs.DomainDefaultUserSettingsC """ return pulumi.get(self, "direct_deploy_settings") + @property + @pulumi.getter(name="emrServerlessSettings") + def emr_serverless_settings(self) -> Optional['outputs.DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings']: + """ + The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + """ + return pulumi.get(self, "emr_serverless_settings") + @property @pulumi.getter(name="generativeAiSettings") def generative_ai_settings(self) -> Optional['outputs.DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings']: @@ -3311,6 +3568,54 @@ def status(self) -> Optional[str]: return pulumi.get(self, "status") +@pulumi.output_type +class DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "executionRoleArn": + suggest = "execution_role_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DomainDefaultUserSettingsCanvasAppSettingsEmrServerlessSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + execution_role_arn: Optional[str] = None, + status: Optional[str] = None): + """ + :param str execution_role_arn: The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + :param str status: Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + """ + if execution_role_arn is not None: + pulumi.set(__self__, "execution_role_arn", execution_role_arn) + if status is not None: + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="executionRoleArn") + def execution_role_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + """ + return pulumi.get(self, "execution_role_arn") + + @property + @pulumi.getter + def status(self) -> Optional[str]: + """ + Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "status") + + @pulumi.output_type class DomainDefaultUserSettingsCanvasAppSettingsGenerativeAiSettings(dict): @staticmethod @@ -3572,7 +3877,11 @@ class DomainDefaultUserSettingsCodeEditorAppSettings(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "customImages": + if key == "appLifecycleManagement": + suggest = "app_lifecycle_management" + elif key == "builtInLifecycleConfigArn": + suggest = "built_in_lifecycle_config_arn" + elif key == "customImages": suggest = "custom_images" elif key == "defaultResourceSpec": suggest = "default_resource_spec" @@ -3591,14 +3900,22 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + app_lifecycle_management: Optional['outputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement'] = None, + built_in_lifecycle_config_arn: Optional[str] = None, custom_images: Optional[Sequence['outputs.DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage']] = None, default_resource_spec: Optional['outputs.DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpec'] = None, lifecycle_config_arns: Optional[Sequence[str]] = None): """ + :param 'DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs' app_lifecycle_management: Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + :param str built_in_lifecycle_config_arn: The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. :param Sequence['DomainDefaultUserSettingsCodeEditorAppSettingsCustomImageArgs'] custom_images: A list of custom SageMaker images that are configured to run as a CodeEditor app. see `custom_image` Block below. :param 'DomainDefaultUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) + if built_in_lifecycle_config_arn is not None: + pulumi.set(__self__, "built_in_lifecycle_config_arn", built_in_lifecycle_config_arn) if custom_images is not None: pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: @@ -3606,6 +3923,22 @@ def __init__(__self__, *, if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional['outputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement']: + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @property + @pulumi.getter(name="builtInLifecycleConfigArn") + def built_in_lifecycle_config_arn(self) -> Optional[str]: + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ + return pulumi.get(self, "built_in_lifecycle_config_arn") + @property @pulumi.getter(name="customImages") def custom_images(self) -> Optional[Sequence['outputs.DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage']]: @@ -3631,6 +3964,120 @@ def lifecycle_config_arns(self) -> Optional[Sequence[str]]: return pulumi.get(self, "lifecycle_config_arns") +@pulumi.output_type +class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleSettings": + suggest = "idle_settings" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagement.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_settings: Optional['outputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings'] = None): + """ + :param 'DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs' idle_settings: Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional['outputs.DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings']: + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + +@pulumi.output_type +class DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeoutInMinutes": + suggest = "idle_timeout_in_minutes" + elif key == "lifecycleManagement": + suggest = "lifecycle_management" + elif key == "maxIdleTimeoutInMinutes": + suggest = "max_idle_timeout_in_minutes" + elif key == "minIdleTimeoutInMinutes": + suggest = "min_idle_timeout_in_minutes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DomainDefaultUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[int] = None, + lifecycle_management: Optional[str] = None, + max_idle_timeout_in_minutes: Optional[int] = None, + min_idle_timeout_in_minutes: Optional[int] = None): + """ + :param int idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + :param str lifecycle_management: Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + :param int max_idle_timeout_in_minutes: The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + :param int min_idle_timeout_in_minutes: The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + if lifecycle_management is not None: + pulumi.set(__self__, "lifecycle_management", lifecycle_management) + if max_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "max_idle_timeout_in_minutes", max_idle_timeout_in_minutes) + if min_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "min_idle_timeout_in_minutes", min_idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[int]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @property + @pulumi.getter(name="lifecycleManagement") + def lifecycle_management(self) -> Optional[str]: + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "lifecycle_management") + + @property + @pulumi.getter(name="maxIdleTimeoutInMinutes") + def max_idle_timeout_in_minutes(self) -> Optional[int]: + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "max_idle_timeout_in_minutes") + + @property + @pulumi.getter(name="minIdleTimeoutInMinutes") + def min_idle_timeout_in_minutes(self) -> Optional[int]: + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "min_idle_timeout_in_minutes") + + @pulumi.output_type class DomainDefaultUserSettingsCodeEditorAppSettingsCustomImage(dict): @staticmethod @@ -3903,12 +4350,18 @@ class DomainDefaultUserSettingsJupyterLabAppSettings(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "codeRepositories": + if key == "appLifecycleManagement": + suggest = "app_lifecycle_management" + elif key == "builtInLifecycleConfigArn": + suggest = "built_in_lifecycle_config_arn" + elif key == "codeRepositories": suggest = "code_repositories" elif key == "customImages": suggest = "custom_images" elif key == "defaultResourceSpec": suggest = "default_resource_spec" + elif key == "emrSettings": + suggest = "emr_settings" elif key == "lifecycleConfigArns": suggest = "lifecycle_config_arns" @@ -3924,25 +4377,53 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + app_lifecycle_management: Optional['outputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement'] = None, + built_in_lifecycle_config_arn: Optional[str] = None, code_repositories: Optional[Sequence['outputs.DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository']] = None, custom_images: Optional[Sequence['outputs.DomainDefaultUserSettingsJupyterLabAppSettingsCustomImage']] = None, default_resource_spec: Optional['outputs.DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpec'] = None, + emr_settings: Optional['outputs.DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings'] = None, lifecycle_config_arns: Optional[Sequence[str]] = None): """ + :param 'DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs' app_lifecycle_management: Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + :param str built_in_lifecycle_config_arn: The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. :param Sequence['DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepositoryArgs'] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see `code_repository` Block below. :param Sequence['DomainDefaultUserSettingsJupyterLabAppSettingsCustomImageArgs'] custom_images: A list of custom SageMaker images that are configured to run as a JupyterLab app. see `custom_image` Block below. :param 'DomainDefaultUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see `default_resource_spec` Block below. + :param 'DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettingsArgs' emr_settings: The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) + if built_in_lifecycle_config_arn is not None: + pulumi.set(__self__, "built_in_lifecycle_config_arn", built_in_lifecycle_config_arn) if code_repositories is not None: pulumi.set(__self__, "code_repositories", code_repositories) if custom_images is not None: pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if emr_settings is not None: + pulumi.set(__self__, "emr_settings", emr_settings) if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional['outputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement']: + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @property + @pulumi.getter(name="builtInLifecycleConfigArn") + def built_in_lifecycle_config_arn(self) -> Optional[str]: + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ + return pulumi.get(self, "built_in_lifecycle_config_arn") + @property @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[Sequence['outputs.DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository']]: @@ -3967,6 +4448,14 @@ def default_resource_spec(self) -> Optional['outputs.DomainDefaultUserSettingsJu """ return pulumi.get(self, "default_resource_spec") + @property + @pulumi.getter(name="emrSettings") + def emr_settings(self) -> Optional['outputs.DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings']: + """ + The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + """ + return pulumi.get(self, "emr_settings") + @property @pulumi.getter(name="lifecycleConfigArns") def lifecycle_config_arns(self) -> Optional[Sequence[str]]: @@ -3976,6 +4465,120 @@ def lifecycle_config_arns(self) -> Optional[Sequence[str]]: return pulumi.get(self, "lifecycle_config_arns") +@pulumi.output_type +class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleSettings": + suggest = "idle_settings" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagement.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_settings: Optional['outputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings'] = None): + """ + :param 'DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs' idle_settings: Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional['outputs.DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings']: + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + +@pulumi.output_type +class DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeoutInMinutes": + suggest = "idle_timeout_in_minutes" + elif key == "lifecycleManagement": + suggest = "lifecycle_management" + elif key == "maxIdleTimeoutInMinutes": + suggest = "max_idle_timeout_in_minutes" + elif key == "minIdleTimeoutInMinutes": + suggest = "min_idle_timeout_in_minutes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DomainDefaultUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[int] = None, + lifecycle_management: Optional[str] = None, + max_idle_timeout_in_minutes: Optional[int] = None, + min_idle_timeout_in_minutes: Optional[int] = None): + """ + :param int idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + :param str lifecycle_management: Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + :param int max_idle_timeout_in_minutes: The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + :param int min_idle_timeout_in_minutes: The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + if lifecycle_management is not None: + pulumi.set(__self__, "lifecycle_management", lifecycle_management) + if max_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "max_idle_timeout_in_minutes", max_idle_timeout_in_minutes) + if min_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "min_idle_timeout_in_minutes", min_idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[int]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @property + @pulumi.getter(name="lifecycleManagement") + def lifecycle_management(self) -> Optional[str]: + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "lifecycle_management") + + @property + @pulumi.getter(name="maxIdleTimeoutInMinutes") + def max_idle_timeout_in_minutes(self) -> Optional[int]: + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "max_idle_timeout_in_minutes") + + @property + @pulumi.getter(name="minIdleTimeoutInMinutes") + def min_idle_timeout_in_minutes(self) -> Optional[int]: + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "min_idle_timeout_in_minutes") + + @pulumi.output_type class DomainDefaultUserSettingsJupyterLabAppSettingsCodeRepository(dict): @staticmethod @@ -4165,6 +4768,56 @@ def sagemaker_image_version_arn(self) -> Optional[str]: return pulumi.get(self, "sagemaker_image_version_arn") +@pulumi.output_type +class DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "assumableRoleArns": + suggest = "assumable_role_arns" + elif key == "executionRoleArns": + suggest = "execution_role_arns" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DomainDefaultUserSettingsJupyterLabAppSettingsEmrSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + assumable_role_arns: Optional[Sequence[str]] = None, + execution_role_arns: Optional[Sequence[str]] = None): + """ + :param Sequence[str] assumable_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + :param Sequence[str] execution_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + if assumable_role_arns is not None: + pulumi.set(__self__, "assumable_role_arns", assumable_role_arns) + if execution_role_arns is not None: + pulumi.set(__self__, "execution_role_arns", execution_role_arns) + + @property + @pulumi.getter(name="assumableRoleArns") + def assumable_role_arns(self) -> Optional[Sequence[str]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + """ + return pulumi.get(self, "assumable_role_arns") + + @property + @pulumi.getter(name="executionRoleArns") + def execution_role_arns(self) -> Optional[Sequence[str]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + return pulumi.get(self, "execution_role_arns") + + @pulumi.output_type class DomainDefaultUserSettingsJupyterServerAppSettings(dict): @staticmethod @@ -4983,6 +5636,8 @@ def __key_warning(key: str): suggest = None if key == "hiddenAppTypes": suggest = "hidden_app_types" + elif key == "hiddenInstanceTypes": + suggest = "hidden_instance_types" elif key == "hiddenMlTools": suggest = "hidden_ml_tools" @@ -4999,13 +5654,17 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, hidden_app_types: Optional[Sequence[str]] = None, + hidden_instance_types: Optional[Sequence[str]] = None, hidden_ml_tools: Optional[Sequence[str]] = None): """ :param Sequence[str] hidden_app_types: The Applications supported in Studio that are hidden from the Studio left navigation pane. + :param Sequence[str] hidden_instance_types: The instance types you are hiding from the Studio user interface. :param Sequence[str] hidden_ml_tools: The machine learning tools that are hidden from the Studio left navigation pane. """ if hidden_app_types is not None: pulumi.set(__self__, "hidden_app_types", hidden_app_types) + if hidden_instance_types is not None: + pulumi.set(__self__, "hidden_instance_types", hidden_instance_types) if hidden_ml_tools is not None: pulumi.set(__self__, "hidden_ml_tools", hidden_ml_tools) @@ -5017,6 +5676,14 @@ def hidden_app_types(self) -> Optional[Sequence[str]]: """ return pulumi.get(self, "hidden_app_types") + @property + @pulumi.getter(name="hiddenInstanceTypes") + def hidden_instance_types(self) -> Optional[Sequence[str]]: + """ + The instance types you are hiding from the Studio user interface. + """ + return pulumi.get(self, "hidden_instance_types") + @property @pulumi.getter(name="hiddenMlTools") def hidden_ml_tools(self) -> Optional[Sequence[str]]: @@ -7226,7 +7893,11 @@ class FeatureGroupFeatureDefinition(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "featureName": + if key == "collectionConfig": + suggest = "collection_config" + elif key == "collectionType": + suggest = "collection_type" + elif key == "featureName": suggest = "feature_name" elif key == "featureType": suggest = "feature_type" @@ -7243,17 +7914,33 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + collection_config: Optional['outputs.FeatureGroupFeatureDefinitionCollectionConfig'] = None, + collection_type: Optional[str] = None, feature_name: Optional[str] = None, feature_type: Optional[str] = None): """ :param str feature_name: The name of a feature. `feature_name` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`. :param str feature_type: The value type of a feature. Valid values are `Integral`, `Fractional`, or `String`. """ + if collection_config is not None: + pulumi.set(__self__, "collection_config", collection_config) + if collection_type is not None: + pulumi.set(__self__, "collection_type", collection_type) if feature_name is not None: pulumi.set(__self__, "feature_name", feature_name) if feature_type is not None: pulumi.set(__self__, "feature_type", feature_type) + @property + @pulumi.getter(name="collectionConfig") + def collection_config(self) -> Optional['outputs.FeatureGroupFeatureDefinitionCollectionConfig']: + return pulumi.get(self, "collection_config") + + @property + @pulumi.getter(name="collectionType") + def collection_type(self) -> Optional[str]: + return pulumi.get(self, "collection_type") + @property @pulumi.getter(name="featureName") def feature_name(self) -> Optional[str]: @@ -7271,6 +7958,49 @@ def feature_type(self) -> Optional[str]: return pulumi.get(self, "feature_type") +@pulumi.output_type +class FeatureGroupFeatureDefinitionCollectionConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "vectorConfig": + suggest = "vector_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FeatureGroupFeatureDefinitionCollectionConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FeatureGroupFeatureDefinitionCollectionConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FeatureGroupFeatureDefinitionCollectionConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + vector_config: Optional['outputs.FeatureGroupFeatureDefinitionCollectionConfigVectorConfig'] = None): + if vector_config is not None: + pulumi.set(__self__, "vector_config", vector_config) + + @property + @pulumi.getter(name="vectorConfig") + def vector_config(self) -> Optional['outputs.FeatureGroupFeatureDefinitionCollectionConfigVectorConfig']: + return pulumi.get(self, "vector_config") + + +@pulumi.output_type +class FeatureGroupFeatureDefinitionCollectionConfigVectorConfig(dict): + def __init__(__self__, *, + dimension: Optional[int] = None): + if dimension is not None: + pulumi.set(__self__, "dimension", dimension) + + @property + @pulumi.getter + def dimension(self) -> Optional[int]: + return pulumi.get(self, "dimension") + + @pulumi.output_type class FeatureGroupOfflineStoreConfig(dict): @staticmethod @@ -7616,6 +8346,56 @@ def value(self) -> Optional[int]: return pulumi.get(self, "value") +@pulumi.output_type +class FeatureGroupThroughputConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "provisionedReadCapacityUnits": + suggest = "provisioned_read_capacity_units" + elif key == "provisionedWriteCapacityUnits": + suggest = "provisioned_write_capacity_units" + elif key == "throughputMode": + suggest = "throughput_mode" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in FeatureGroupThroughputConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + FeatureGroupThroughputConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + FeatureGroupThroughputConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + provisioned_read_capacity_units: Optional[int] = None, + provisioned_write_capacity_units: Optional[int] = None, + throughput_mode: Optional[str] = None): + if provisioned_read_capacity_units is not None: + pulumi.set(__self__, "provisioned_read_capacity_units", provisioned_read_capacity_units) + if provisioned_write_capacity_units is not None: + pulumi.set(__self__, "provisioned_write_capacity_units", provisioned_write_capacity_units) + if throughput_mode is not None: + pulumi.set(__self__, "throughput_mode", throughput_mode) + + @property + @pulumi.getter(name="provisionedReadCapacityUnits") + def provisioned_read_capacity_units(self) -> Optional[int]: + return pulumi.get(self, "provisioned_read_capacity_units") + + @property + @pulumi.getter(name="provisionedWriteCapacityUnits") + def provisioned_write_capacity_units(self) -> Optional[int]: + return pulumi.get(self, "provisioned_write_capacity_units") + + @property + @pulumi.getter(name="throughputMode") + def throughput_mode(self) -> Optional[str]: + return pulumi.get(self, "throughput_mode") + + @pulumi.output_type class FlowDefinitionHumanLoopActivationConfig(dict): @staticmethod @@ -8010,6 +8790,42 @@ def kms_key_id(self) -> Optional[str]: return pulumi.get(self, "kms_key_id") +@pulumi.output_type +class HubS3StorageConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "s3OutputPath": + suggest = "s3_output_path" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in HubS3StorageConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + HubS3StorageConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + HubS3StorageConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + s3_output_path: Optional[str] = None): + """ + :param str s3_output_path: The Amazon S3 bucket prefix for hosting hub content.interface. + """ + if s3_output_path is not None: + pulumi.set(__self__, "s3_output_path", s3_output_path) + + @property + @pulumi.getter(name="s3OutputPath") + def s3_output_path(self) -> Optional[str]: + """ + The Amazon S3 bucket prefix for hosting hub content.interface. + """ + return pulumi.get(self, "s3_output_path") + + @pulumi.output_type class HumanTaskUIUiTemplate(dict): @staticmethod @@ -9467,6 +10283,8 @@ def __key_warning(key: str): suggest = None if key == "defaultResourceSpec": suggest = "default_resource_spec" + elif key == "appLifecycleManagement": + suggest = "app_lifecycle_management" if suggest: pulumi.log.warn(f"Key '{key}' not found in SpaceSpaceSettingsCodeEditorAppSettings. Access the value via the '{suggest}' property getter instead.") @@ -9480,19 +10298,103 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - default_resource_spec: 'outputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec'): + default_resource_spec: 'outputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec', + app_lifecycle_management: Optional['outputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement'] = None): """ :param 'SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + :param 'SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementArgs' app_lifecycle_management: Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) @property @pulumi.getter(name="defaultResourceSpec") def default_resource_spec(self) -> 'outputs.SpaceSpaceSettingsCodeEditorAppSettingsDefaultResourceSpec': """ - The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + """ + return pulumi.get(self, "default_resource_spec") + + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional['outputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement']: + """ + Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + +@pulumi.output_type +class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleSettings": + suggest = "idle_settings" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagement.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_settings: Optional['outputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings'] = None): + """ + :param 'SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs' idle_settings: Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional['outputs.SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings']: + """ + Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + +@pulumi.output_type +class SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeoutInMinutes": + suggest = "idle_timeout_in_minutes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SpaceSpaceSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[int] = None): + """ + :param int idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[int]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. """ - return pulumi.get(self, "default_resource_spec") + return pulumi.get(self, "idle_timeout_in_minutes") @pulumi.output_type @@ -9664,6 +10566,8 @@ def __key_warning(key: str): suggest = None if key == "defaultResourceSpec": suggest = "default_resource_spec" + elif key == "appLifecycleManagement": + suggest = "app_lifecycle_management" elif key == "codeRepositories": suggest = "code_repositories" @@ -9680,12 +10584,16 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, default_resource_spec: 'outputs.SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpec', + app_lifecycle_management: Optional['outputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement'] = None, code_repositories: Optional[Sequence['outputs.SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository']] = None): """ :param 'SpaceSpaceSettingsJupyterLabAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. See `default_resource_spec` Block below. + :param 'SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementArgs' app_lifecycle_management: Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. :param Sequence['SpaceSpaceSettingsJupyterLabAppSettingsCodeRepositoryArgs'] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. See `code_repository` Block below. """ pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) if code_repositories is not None: pulumi.set(__self__, "code_repositories", code_repositories) @@ -9697,6 +10605,14 @@ def default_resource_spec(self) -> 'outputs.SpaceSpaceSettingsJupyterLabAppSetti """ return pulumi.get(self, "default_resource_spec") + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional['outputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement']: + """ + Settings that are used to configure and manage the lifecycle of JupyterLab applications in a space. See `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + @property @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[Sequence['outputs.SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository']]: @@ -9706,6 +10622,78 @@ def code_repositories(self) -> Optional[Sequence['outputs.SpaceSpaceSettingsJupy return pulumi.get(self, "code_repositories") +@pulumi.output_type +class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleSettings": + suggest = "idle_settings" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagement.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_settings: Optional['outputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings'] = None): + """ + :param 'SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs' idle_settings: Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional['outputs.SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings']: + """ + Settings related to idle shutdown of Studio applications. See `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + +@pulumi.output_type +class SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeoutInMinutes": + suggest = "idle_timeout_in_minutes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SpaceSpaceSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[int] = None): + """ + :param int idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[int]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @pulumi.output_type class SpaceSpaceSettingsJupyterLabAppSettingsCodeRepository(dict): @staticmethod @@ -10352,6 +11340,8 @@ def __key_warning(key: str): suggest = None if key == "executionRole": suggest = "execution_role" + elif key == "autoMountHomeEfs": + suggest = "auto_mount_home_efs" elif key == "canvasAppSettings": suggest = "canvas_app_settings" elif key == "codeEditorAppSettings": @@ -10398,6 +11388,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, execution_role: str, + auto_mount_home_efs: Optional[str] = None, canvas_app_settings: Optional['outputs.UserProfileUserSettingsCanvasAppSettings'] = None, code_editor_app_settings: Optional['outputs.UserProfileUserSettingsCodeEditorAppSettings'] = None, custom_file_system_configs: Optional[Sequence['outputs.UserProfileUserSettingsCustomFileSystemConfig']] = None, @@ -10416,6 +11407,7 @@ def __init__(__self__, *, tensor_board_app_settings: Optional['outputs.UserProfileUserSettingsTensorBoardAppSettings'] = None): """ :param str execution_role: The execution role ARN for the user. + :param str auto_mount_home_efs: Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. :param 'UserProfileUserSettingsCanvasAppSettingsArgs' canvas_app_settings: The Canvas app settings. See Canvas App Settings below. :param 'UserProfileUserSettingsCodeEditorAppSettingsArgs' code_editor_app_settings: The Code Editor application settings. See Code Editor App Settings below. :param Sequence['UserProfileUserSettingsCustomFileSystemConfigArgs'] custom_file_system_configs: The settings for assigning a custom file system to a user profile. Permitted users can access this file system in Amazon SageMaker Studio. See Custom File System Config below. @@ -10434,6 +11426,8 @@ def __init__(__self__, *, :param 'UserProfileUserSettingsTensorBoardAppSettingsArgs' tensor_board_app_settings: The TensorBoard app settings. See TensorBoard App Settings below. """ pulumi.set(__self__, "execution_role", execution_role) + if auto_mount_home_efs is not None: + pulumi.set(__self__, "auto_mount_home_efs", auto_mount_home_efs) if canvas_app_settings is not None: pulumi.set(__self__, "canvas_app_settings", canvas_app_settings) if code_editor_app_settings is not None: @@ -10475,6 +11469,14 @@ def execution_role(self) -> str: """ return pulumi.get(self, "execution_role") + @property + @pulumi.getter(name="autoMountHomeEfs") + def auto_mount_home_efs(self) -> Optional[str]: + """ + Indicates whether auto-mounting of an EFS volume is supported for the user profile. The `DefaultAsDomain` value is only supported for user profiles. Do not use the `DefaultAsDomain` value when setting this parameter for a domain. Valid values are: `Enabled`, `Disabled`, and `DefaultAsDomain`. + """ + return pulumi.get(self, "auto_mount_home_efs") + @property @pulumi.getter(name="canvasAppSettings") def canvas_app_settings(self) -> Optional['outputs.UserProfileUserSettingsCanvasAppSettings']: @@ -10611,6 +11613,8 @@ def __key_warning(key: str): suggest = None if key == "directDeploySettings": suggest = "direct_deploy_settings" + elif key == "emrServerlessSettings": + suggest = "emr_serverless_settings" elif key == "generativeAiSettings": suggest = "generative_ai_settings" elif key == "identityProviderOauthSettings": @@ -10637,6 +11641,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, direct_deploy_settings: Optional['outputs.UserProfileUserSettingsCanvasAppSettingsDirectDeploySettings'] = None, + emr_serverless_settings: Optional['outputs.UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings'] = None, generative_ai_settings: Optional['outputs.UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings'] = None, identity_provider_oauth_settings: Optional[Sequence['outputs.UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSetting']] = None, kendra_settings: Optional['outputs.UserProfileUserSettingsCanvasAppSettingsKendraSettings'] = None, @@ -10645,6 +11650,7 @@ def __init__(__self__, *, workspace_settings: Optional['outputs.UserProfileUserSettingsCanvasAppSettingsWorkspaceSettings'] = None): """ :param 'UserProfileUserSettingsCanvasAppSettingsDirectDeploySettingsArgs' direct_deploy_settings: The model deployment settings for the SageMaker Canvas application. See Direct Deploy Settings below. + :param 'UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettingsArgs' emr_serverless_settings: The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. :param Sequence['UserProfileUserSettingsCanvasAppSettingsIdentityProviderOauthSettingArgs'] identity_provider_oauth_settings: The settings for connecting to an external data source with OAuth. See Identity Provider OAuth Settings below. :param 'UserProfileUserSettingsCanvasAppSettingsKendraSettingsArgs' kendra_settings: The settings for document querying. See Kendra Settings below. :param 'UserProfileUserSettingsCanvasAppSettingsModelRegisterSettingsArgs' model_register_settings: The model registry settings for the SageMaker Canvas application. See Model Register Settings below. @@ -10653,6 +11659,8 @@ def __init__(__self__, *, """ if direct_deploy_settings is not None: pulumi.set(__self__, "direct_deploy_settings", direct_deploy_settings) + if emr_serverless_settings is not None: + pulumi.set(__self__, "emr_serverless_settings", emr_serverless_settings) if generative_ai_settings is not None: pulumi.set(__self__, "generative_ai_settings", generative_ai_settings) if identity_provider_oauth_settings is not None: @@ -10674,6 +11682,14 @@ def direct_deploy_settings(self) -> Optional['outputs.UserProfileUserSettingsCan """ return pulumi.get(self, "direct_deploy_settings") + @property + @pulumi.getter(name="emrServerlessSettings") + def emr_serverless_settings(self) -> Optional['outputs.UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings']: + """ + The settings for running Amazon EMR Serverless jobs in SageMaker Canvas. See `emr_serverless_settings` Block below. + """ + return pulumi.get(self, "emr_serverless_settings") + @property @pulumi.getter(name="generativeAiSettings") def generative_ai_settings(self) -> Optional['outputs.UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings']: @@ -10739,6 +11755,54 @@ def status(self) -> Optional[str]: return pulumi.get(self, "status") +@pulumi.output_type +class UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "executionRoleArn": + suggest = "execution_role_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + UserProfileUserSettingsCanvasAppSettingsEmrServerlessSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + execution_role_arn: Optional[str] = None, + status: Optional[str] = None): + """ + :param str execution_role_arn: The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + :param str status: Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + """ + if execution_role_arn is not None: + pulumi.set(__self__, "execution_role_arn", execution_role_arn) + if status is not None: + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="executionRoleArn") + def execution_role_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the AWS IAM role that is assumed for running Amazon EMR Serverless jobs in SageMaker Canvas. This role should have the necessary permissions to read and write data attached and a trust relationship with EMR Serverless. + """ + return pulumi.get(self, "execution_role_arn") + + @property + @pulumi.getter + def status(self) -> Optional[str]: + """ + Describes whether Amazon EMR Serverless job capabilities are enabled or disabled in the SageMaker Canvas application. Valid values are: `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "status") + + @pulumi.output_type class UserProfileUserSettingsCanvasAppSettingsGenerativeAiSettings(dict): @staticmethod @@ -11000,7 +12064,11 @@ class UserProfileUserSettingsCodeEditorAppSettings(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "customImages": + if key == "appLifecycleManagement": + suggest = "app_lifecycle_management" + elif key == "builtInLifecycleConfigArn": + suggest = "built_in_lifecycle_config_arn" + elif key == "customImages": suggest = "custom_images" elif key == "defaultResourceSpec": suggest = "default_resource_spec" @@ -11019,14 +12087,22 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + app_lifecycle_management: Optional['outputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement'] = None, + built_in_lifecycle_config_arn: Optional[str] = None, custom_images: Optional[Sequence['outputs.UserProfileUserSettingsCodeEditorAppSettingsCustomImage']] = None, default_resource_spec: Optional['outputs.UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpec'] = None, lifecycle_config_arns: Optional[Sequence[str]] = None): """ + :param 'UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementArgs' app_lifecycle_management: Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + :param str built_in_lifecycle_config_arn: The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. :param Sequence['UserProfileUserSettingsCodeEditorAppSettingsCustomImageArgs'] custom_images: A list of custom SageMaker images that are configured to run as a CodeEditor app. see Custom Image below. :param 'UserProfileUserSettingsCodeEditorAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) + if built_in_lifecycle_config_arn is not None: + pulumi.set(__self__, "built_in_lifecycle_config_arn", built_in_lifecycle_config_arn) if custom_images is not None: pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: @@ -11034,6 +12110,22 @@ def __init__(__self__, *, if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional['outputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement']: + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @property + @pulumi.getter(name="builtInLifecycleConfigArn") + def built_in_lifecycle_config_arn(self) -> Optional[str]: + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ + return pulumi.get(self, "built_in_lifecycle_config_arn") + @property @pulumi.getter(name="customImages") def custom_images(self) -> Optional[Sequence['outputs.UserProfileUserSettingsCodeEditorAppSettingsCustomImage']]: @@ -11059,6 +12151,120 @@ def lifecycle_config_arns(self) -> Optional[Sequence[str]]: return pulumi.get(self, "lifecycle_config_arns") +@pulumi.output_type +class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleSettings": + suggest = "idle_settings" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagement.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_settings: Optional['outputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings'] = None): + """ + :param 'UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettingsArgs' idle_settings: Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional['outputs.UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings']: + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + +@pulumi.output_type +class UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeoutInMinutes": + suggest = "idle_timeout_in_minutes" + elif key == "lifecycleManagement": + suggest = "lifecycle_management" + elif key == "maxIdleTimeoutInMinutes": + suggest = "max_idle_timeout_in_minutes" + elif key == "minIdleTimeoutInMinutes": + suggest = "min_idle_timeout_in_minutes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + UserProfileUserSettingsCodeEditorAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[int] = None, + lifecycle_management: Optional[str] = None, + max_idle_timeout_in_minutes: Optional[int] = None, + min_idle_timeout_in_minutes: Optional[int] = None): + """ + :param int idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + :param str lifecycle_management: Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + :param int max_idle_timeout_in_minutes: The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + :param int min_idle_timeout_in_minutes: The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + if lifecycle_management is not None: + pulumi.set(__self__, "lifecycle_management", lifecycle_management) + if max_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "max_idle_timeout_in_minutes", max_idle_timeout_in_minutes) + if min_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "min_idle_timeout_in_minutes", min_idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[int]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @property + @pulumi.getter(name="lifecycleManagement") + def lifecycle_management(self) -> Optional[str]: + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "lifecycle_management") + + @property + @pulumi.getter(name="maxIdleTimeoutInMinutes") + def max_idle_timeout_in_minutes(self) -> Optional[int]: + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "max_idle_timeout_in_minutes") + + @property + @pulumi.getter(name="minIdleTimeoutInMinutes") + def min_idle_timeout_in_minutes(self) -> Optional[int]: + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "min_idle_timeout_in_minutes") + + @pulumi.output_type class UserProfileUserSettingsCodeEditorAppSettingsCustomImage(dict): @staticmethod @@ -11332,12 +12538,18 @@ class UserProfileUserSettingsJupyterLabAppSettings(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "codeRepositories": + if key == "appLifecycleManagement": + suggest = "app_lifecycle_management" + elif key == "builtInLifecycleConfigArn": + suggest = "built_in_lifecycle_config_arn" + elif key == "codeRepositories": suggest = "code_repositories" elif key == "customImages": suggest = "custom_images" elif key == "defaultResourceSpec": suggest = "default_resource_spec" + elif key == "emrSettings": + suggest = "emr_settings" elif key == "lifecycleConfigArns": suggest = "lifecycle_config_arns" @@ -11353,24 +12565,52 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + app_lifecycle_management: Optional['outputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement'] = None, + built_in_lifecycle_config_arn: Optional[str] = None, code_repositories: Optional[Sequence['outputs.UserProfileUserSettingsJupyterLabAppSettingsCodeRepository']] = None, custom_images: Optional[Sequence['outputs.UserProfileUserSettingsJupyterLabAppSettingsCustomImage']] = None, default_resource_spec: Optional['outputs.UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpec'] = None, + emr_settings: Optional['outputs.UserProfileUserSettingsJupyterLabAppSettingsEmrSettings'] = None, lifecycle_config_arns: Optional[Sequence[str]] = None): """ + :param 'UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementArgs' app_lifecycle_management: Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + :param str built_in_lifecycle_config_arn: The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. :param Sequence['UserProfileUserSettingsJupyterLabAppSettingsCodeRepositoryArgs'] code_repositories: A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application. see Code Repository below. :param 'UserProfileUserSettingsJupyterLabAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + :param 'UserProfileUserSettingsJupyterLabAppSettingsEmrSettingsArgs' emr_settings: The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. :param Sequence[str] lifecycle_config_arns: The Amazon Resource Name (ARN) of the Lifecycle Configurations. """ + if app_lifecycle_management is not None: + pulumi.set(__self__, "app_lifecycle_management", app_lifecycle_management) + if built_in_lifecycle_config_arn is not None: + pulumi.set(__self__, "built_in_lifecycle_config_arn", built_in_lifecycle_config_arn) if code_repositories is not None: pulumi.set(__self__, "code_repositories", code_repositories) if custom_images is not None: pulumi.set(__self__, "custom_images", custom_images) if default_resource_spec is not None: pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if emr_settings is not None: + pulumi.set(__self__, "emr_settings", emr_settings) if lifecycle_config_arns is not None: pulumi.set(__self__, "lifecycle_config_arns", lifecycle_config_arns) + @property + @pulumi.getter(name="appLifecycleManagement") + def app_lifecycle_management(self) -> Optional['outputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement']: + """ + Indicates whether idle shutdown is activated for JupyterLab applications. see `app_lifecycle_management` Block below. + """ + return pulumi.get(self, "app_lifecycle_management") + + @property + @pulumi.getter(name="builtInLifecycleConfigArn") + def built_in_lifecycle_config_arn(self) -> Optional[str]: + """ + The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + """ + return pulumi.get(self, "built_in_lifecycle_config_arn") + @property @pulumi.getter(name="codeRepositories") def code_repositories(self) -> Optional[Sequence['outputs.UserProfileUserSettingsJupyterLabAppSettingsCodeRepository']]: @@ -11392,6 +12632,14 @@ def default_resource_spec(self) -> Optional['outputs.UserProfileUserSettingsJupy """ return pulumi.get(self, "default_resource_spec") + @property + @pulumi.getter(name="emrSettings") + def emr_settings(self) -> Optional['outputs.UserProfileUserSettingsJupyterLabAppSettingsEmrSettings']: + """ + The configuration parameters that specify the IAM roles assumed by the execution role of SageMaker (assumable roles) and the cluster instances or job execution environments (execution roles or runtime roles) to manage and access resources required for running Amazon EMR clusters or Amazon EMR Serverless applications. see `emr_settings` Block below. + """ + return pulumi.get(self, "emr_settings") + @property @pulumi.getter(name="lifecycleConfigArns") def lifecycle_config_arns(self) -> Optional[Sequence[str]]: @@ -11401,6 +12649,120 @@ def lifecycle_config_arns(self) -> Optional[Sequence[str]]: return pulumi.get(self, "lifecycle_config_arns") +@pulumi.output_type +class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleSettings": + suggest = "idle_settings" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagement.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_settings: Optional['outputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings'] = None): + """ + :param 'UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettingsArgs' idle_settings: Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + if idle_settings is not None: + pulumi.set(__self__, "idle_settings", idle_settings) + + @property + @pulumi.getter(name="idleSettings") + def idle_settings(self) -> Optional['outputs.UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings']: + """ + Settings related to idle shutdown of Studio applications. see `idle_settings` Block below. + """ + return pulumi.get(self, "idle_settings") + + +@pulumi.output_type +class UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "idleTimeoutInMinutes": + suggest = "idle_timeout_in_minutes" + elif key == "lifecycleManagement": + suggest = "lifecycle_management" + elif key == "maxIdleTimeoutInMinutes": + suggest = "max_idle_timeout_in_minutes" + elif key == "minIdleTimeoutInMinutes": + suggest = "min_idle_timeout_in_minutes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + UserProfileUserSettingsJupyterLabAppSettingsAppLifecycleManagementIdleSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + idle_timeout_in_minutes: Optional[int] = None, + lifecycle_management: Optional[str] = None, + max_idle_timeout_in_minutes: Optional[int] = None, + min_idle_timeout_in_minutes: Optional[int] = None): + """ + :param int idle_timeout_in_minutes: The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + :param str lifecycle_management: Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + :param int max_idle_timeout_in_minutes: The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + :param int min_idle_timeout_in_minutes: The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + if idle_timeout_in_minutes is not None: + pulumi.set(__self__, "idle_timeout_in_minutes", idle_timeout_in_minutes) + if lifecycle_management is not None: + pulumi.set(__self__, "lifecycle_management", lifecycle_management) + if max_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "max_idle_timeout_in_minutes", max_idle_timeout_in_minutes) + if min_idle_timeout_in_minutes is not None: + pulumi.set(__self__, "min_idle_timeout_in_minutes", min_idle_timeout_in_minutes) + + @property + @pulumi.getter(name="idleTimeoutInMinutes") + def idle_timeout_in_minutes(self) -> Optional[int]: + """ + The time that SageMaker waits after the application becomes idle before shutting it down. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "idle_timeout_in_minutes") + + @property + @pulumi.getter(name="lifecycleManagement") + def lifecycle_management(self) -> Optional[str]: + """ + Indicates whether idle shutdown is activated for the application type. Valid values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "lifecycle_management") + + @property + @pulumi.getter(name="maxIdleTimeoutInMinutes") + def max_idle_timeout_in_minutes(self) -> Optional[int]: + """ + The maximum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "max_idle_timeout_in_minutes") + + @property + @pulumi.getter(name="minIdleTimeoutInMinutes") + def min_idle_timeout_in_minutes(self) -> Optional[int]: + """ + The minimum value in minutes that custom idle shutdown can be set to by the user. Valid values are between `60` and `525600`. + """ + return pulumi.get(self, "min_idle_timeout_in_minutes") + + @pulumi.output_type class UserProfileUserSettingsJupyterLabAppSettingsCodeRepository(dict): @staticmethod @@ -11590,6 +12952,56 @@ def sagemaker_image_version_arn(self) -> Optional[str]: return pulumi.get(self, "sagemaker_image_version_arn") +@pulumi.output_type +class UserProfileUserSettingsJupyterLabAppSettingsEmrSettings(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "assumableRoleArns": + suggest = "assumable_role_arns" + elif key == "executionRoleArns": + suggest = "execution_role_arns" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in UserProfileUserSettingsJupyterLabAppSettingsEmrSettings. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + UserProfileUserSettingsJupyterLabAppSettingsEmrSettings.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + UserProfileUserSettingsJupyterLabAppSettingsEmrSettings.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + assumable_role_arns: Optional[Sequence[str]] = None, + execution_role_arns: Optional[Sequence[str]] = None): + """ + :param Sequence[str] assumable_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + :param Sequence[str] execution_role_arns: An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + if assumable_role_arns is not None: + pulumi.set(__self__, "assumable_role_arns", assumable_role_arns) + if execution_role_arns is not None: + pulumi.set(__self__, "execution_role_arns", execution_role_arns) + + @property + @pulumi.getter(name="assumableRoleArns") + def assumable_role_arns(self) -> Optional[Sequence[str]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume for performing operations or tasks related to Amazon EMR clusters or Amazon EMR Serverless applications. These roles define the permissions and access policies required when performing Amazon EMR-related operations, such as listing, connecting to, or terminating Amazon EMR clusters or Amazon EMR Serverless applications. They are typically used in cross-account access scenarios, where the Amazon EMR resources (clusters or serverless applications) are located in a different AWS account than the SageMaker domain. + """ + return pulumi.get(self, "assumable_role_arns") + + @property + @pulumi.getter(name="executionRoleArns") + def execution_role_arns(self) -> Optional[Sequence[str]]: + """ + An array of Amazon Resource Names (ARNs) of the IAM roles used by the Amazon EMR cluster instances or job execution environments to access other AWS services and resources needed during the runtime of your Amazon EMR or Amazon EMR Serverless workloads, such as Amazon S3 for data access, Amazon CloudWatch for logging, or other AWS services based on the particular workload requirements. + """ + return pulumi.get(self, "execution_role_arns") + + @pulumi.output_type class UserProfileUserSettingsJupyterServerAppSettings(dict): @staticmethod @@ -12408,6 +13820,8 @@ def __key_warning(key: str): suggest = None if key == "hiddenAppTypes": suggest = "hidden_app_types" + elif key == "hiddenInstanceTypes": + suggest = "hidden_instance_types" elif key == "hiddenMlTools": suggest = "hidden_ml_tools" @@ -12424,13 +13838,17 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, hidden_app_types: Optional[Sequence[str]] = None, + hidden_instance_types: Optional[Sequence[str]] = None, hidden_ml_tools: Optional[Sequence[str]] = None): """ :param Sequence[str] hidden_app_types: The Applications supported in Studio that are hidden from the Studio left navigation pane. + :param Sequence[str] hidden_instance_types: The instance types you are hiding from the Studio user interface. :param Sequence[str] hidden_ml_tools: The machine learning tools that are hidden from the Studio left navigation pane. """ if hidden_app_types is not None: pulumi.set(__self__, "hidden_app_types", hidden_app_types) + if hidden_instance_types is not None: + pulumi.set(__self__, "hidden_instance_types", hidden_instance_types) if hidden_ml_tools is not None: pulumi.set(__self__, "hidden_ml_tools", hidden_ml_tools) @@ -12442,6 +13860,14 @@ def hidden_app_types(self) -> Optional[Sequence[str]]: """ return pulumi.get(self, "hidden_app_types") + @property + @pulumi.getter(name="hiddenInstanceTypes") + def hidden_instance_types(self) -> Optional[Sequence[str]]: + """ + The instance types you are hiding from the Studio user interface. + """ + return pulumi.get(self, "hidden_instance_types") + @property @pulumi.getter(name="hiddenMlTools") def hidden_ml_tools(self) -> Optional[Sequence[str]]: diff --git a/sdk/python/pulumi_aws/securityhub/standards_subscription.py b/sdk/python/pulumi_aws/securityhub/standards_subscription.py index a7a489fc1f7..64801a63dbc 100644 --- a/sdk/python/pulumi_aws/securityhub/standards_subscription.py +++ b/sdk/python/pulumi_aws/securityhub/standards_subscription.py @@ -32,6 +32,7 @@ def __init__(__self__, *, | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | """ @@ -51,6 +52,7 @@ def standards_arn(self) -> pulumi.Input[str]: | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | """ @@ -77,6 +79,7 @@ def __init__(__self__, *, | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | """ @@ -97,6 +100,7 @@ def standards_arn(self) -> Optional[pulumi.Input[str]]: | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | """ @@ -157,6 +161,7 @@ def __init__(__self__, | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | """ @@ -253,6 +258,7 @@ def get(resource_name: str, | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | """ @@ -277,6 +283,7 @@ def standards_arn(self) -> pulumi.Output[str]: | AWS Resource Tagging Standard | `arn:${var.partition}:securityhub:${var.region}::standards/aws-resource-tagging-standard/v/1.0.0` | | CIS AWS Foundations Benchmark v1.2.0 | `arn:${var.partition}:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | | CIS AWS Foundations Benchmark v1.4.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | + | CIS AWS Foundations Benchmark v3.0.0 | `arn:${var.partition}:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/3.0.0` | | NIST SP 800-53 Rev. 5 | `arn:${var.partition}:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | | PCI DSS | `arn:${var.partition}:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | """ diff --git a/sdk/python/pulumi_aws/ssm/__init__.py b/sdk/python/pulumi_aws/ssm/__init__.py index 6435e367b78..5f0f2ed197b 100644 --- a/sdk/python/pulumi_aws/ssm/__init__.py +++ b/sdk/python/pulumi_aws/ssm/__init__.py @@ -18,6 +18,7 @@ from .get_parameter import * from .get_parameters_by_path import * from .get_patch_baseline import * +from .get_patch_baselines import * from .maintenance_window import * from .maintenance_window_target import * from .maintenance_window_task import * diff --git a/sdk/python/pulumi_aws/ssm/_inputs.py b/sdk/python/pulumi_aws/ssm/_inputs.py index dcaa3dec9af..48e9f6d8b55 100644 --- a/sdk/python/pulumi_aws/ssm/_inputs.py +++ b/sdk/python/pulumi_aws/ssm/_inputs.py @@ -80,6 +80,8 @@ 'GetInstancesFilterArgsDict', 'GetMaintenanceWindowsFilterArgs', 'GetMaintenanceWindowsFilterArgsDict', + 'GetPatchBaselinesFilterArgs', + 'GetPatchBaselinesFilterArgsDict', ] MYPY = False @@ -2203,3 +2205,53 @@ def values(self, value: Sequence[str]): pulumi.set(self, "values", value) +if not MYPY: + class GetPatchBaselinesFilterArgsDict(TypedDict): + key: str + """ + Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + """ + values: Sequence[str] + """ + Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + """ +elif False: + GetPatchBaselinesFilterArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GetPatchBaselinesFilterArgs: + def __init__(__self__, *, + key: str, + values: Sequence[str]): + """ + :param str key: Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + :param Sequence[str] values: Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + """ + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "values", values) + + @property + @pulumi.getter + def key(self) -> str: + """ + Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: str): + pulumi.set(self, "key", value) + + @property + @pulumi.getter + def values(self) -> Sequence[str]: + """ + Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + """ + return pulumi.get(self, "values") + + @values.setter + def values(self, value: Sequence[str]): + pulumi.set(self, "values", value) + + diff --git a/sdk/python/pulumi_aws/ssm/get_patch_baselines.py b/sdk/python/pulumi_aws/ssm/get_patch_baselines.py new file mode 100644 index 00000000000..bbeb0fe0950 --- /dev/null +++ b/sdk/python/pulumi_aws/ssm/get_patch_baselines.py @@ -0,0 +1,182 @@ +# 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__ = [ + 'GetPatchBaselinesResult', + 'AwaitableGetPatchBaselinesResult', + 'get_patch_baselines', + 'get_patch_baselines_output', +] + +@pulumi.output_type +class GetPatchBaselinesResult: + """ + A collection of values returned by getPatchBaselines. + """ + def __init__(__self__, baseline_identities=None, default_baselines=None, filters=None, id=None): + if baseline_identities and not isinstance(baseline_identities, list): + raise TypeError("Expected argument 'baseline_identities' to be a list") + pulumi.set(__self__, "baseline_identities", baseline_identities) + if default_baselines and not isinstance(default_baselines, bool): + raise TypeError("Expected argument 'default_baselines' to be a bool") + pulumi.set(__self__, "default_baselines", default_baselines) + if filters and not isinstance(filters, list): + raise TypeError("Expected argument 'filters' to be a list") + pulumi.set(__self__, "filters", filters) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + + @property + @pulumi.getter(name="baselineIdentities") + def baseline_identities(self) -> Sequence['outputs.GetPatchBaselinesBaselineIdentityResult']: + """ + List of baseline identities. See `baseline_identities` below. + """ + return pulumi.get(self, "baseline_identities") + + @property + @pulumi.getter(name="defaultBaselines") + def default_baselines(self) -> Optional[bool]: + return pulumi.get(self, "default_baselines") + + @property + @pulumi.getter + def filters(self) -> Optional[Sequence['outputs.GetPatchBaselinesFilterResult']]: + return pulumi.get(self, "filters") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + +class AwaitableGetPatchBaselinesResult(GetPatchBaselinesResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetPatchBaselinesResult( + baseline_identities=self.baseline_identities, + default_baselines=self.default_baselines, + filters=self.filters, + id=self.id) + + +def get_patch_baselines(default_baselines: Optional[bool] = None, + filters: Optional[Sequence[Union['GetPatchBaselinesFilterArgs', 'GetPatchBaselinesFilterArgsDict']]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPatchBaselinesResult: + """ + Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ssm.get_patch_baselines() + ``` + + ### With Filters + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ssm.get_patch_baselines(filters=[ + { + "key": "OWNER", + "values": ["AWS"], + }, + { + "key": "OPERATING_SYSTEM", + "values": ["WINDOWS"], + }, + ]) + ``` + + + :param bool default_baselines: Only return baseline identities where `default_baseline` is `true`. + :param Sequence[Union['GetPatchBaselinesFilterArgs', 'GetPatchBaselinesFilterArgsDict']] filters: Key-value pairs used to filter the results. See `filter` below. + """ + __args__ = dict() + __args__['defaultBaselines'] = default_baselines + __args__['filters'] = filters + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws:ssm/getPatchBaselines:getPatchBaselines', __args__, opts=opts, typ=GetPatchBaselinesResult).value + + return AwaitableGetPatchBaselinesResult( + baseline_identities=pulumi.get(__ret__, 'baseline_identities'), + default_baselines=pulumi.get(__ret__, 'default_baselines'), + filters=pulumi.get(__ret__, 'filters'), + id=pulumi.get(__ret__, 'id')) +def get_patch_baselines_output(default_baselines: Optional[pulumi.Input[Optional[bool]]] = None, + filters: Optional[pulumi.Input[Optional[Sequence[Union['GetPatchBaselinesFilterArgs', 'GetPatchBaselinesFilterArgsDict']]]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPatchBaselinesResult]: + """ + Data source for retrieving AWS SSM (Systems Manager) Patch Baselines. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ssm.get_patch_baselines() + ``` + + ### With Filters + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ssm.get_patch_baselines(filters=[ + { + "key": "OWNER", + "values": ["AWS"], + }, + { + "key": "OPERATING_SYSTEM", + "values": ["WINDOWS"], + }, + ]) + ``` + + + :param bool default_baselines: Only return baseline identities where `default_baseline` is `true`. + :param Sequence[Union['GetPatchBaselinesFilterArgs', 'GetPatchBaselinesFilterArgsDict']] filters: Key-value pairs used to filter the results. See `filter` below. + """ + __args__ = dict() + __args__['defaultBaselines'] = default_baselines + __args__['filters'] = filters + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws:ssm/getPatchBaselines:getPatchBaselines', __args__, opts=opts, typ=GetPatchBaselinesResult) + return __ret__.apply(lambda __response__: GetPatchBaselinesResult( + baseline_identities=pulumi.get(__response__, 'baseline_identities'), + default_baselines=pulumi.get(__response__, 'default_baselines'), + filters=pulumi.get(__response__, 'filters'), + id=pulumi.get(__response__, 'id'))) diff --git a/sdk/python/pulumi_aws/ssm/outputs.py b/sdk/python/pulumi_aws/ssm/outputs.py index 4e5ee1f4505..4aa79a8e229 100644 --- a/sdk/python/pulumi_aws/ssm/outputs.py +++ b/sdk/python/pulumi_aws/ssm/outputs.py @@ -63,6 +63,8 @@ 'GetPatchBaselineApprovalRulePatchFilterResult', 'GetPatchBaselineGlobalFilterResult', 'GetPatchBaselineSourceResult', + 'GetPatchBaselinesBaselineIdentityResult', + 'GetPatchBaselinesFilterResult', ] @pulumi.output_type @@ -2084,3 +2086,94 @@ def products(self) -> Sequence[str]: return pulumi.get(self, "products") +@pulumi.output_type +class GetPatchBaselinesBaselineIdentityResult(dict): + def __init__(__self__, *, + baseline_description: str, + baseline_id: str, + baseline_name: str, + default_baseline: bool, + operating_system: str): + """ + :param str baseline_description: Description of the patch baseline. + :param str baseline_id: ID of the patch baseline. + :param str baseline_name: Name of the patch baseline. + :param bool default_baseline: Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. + :param str operating_system: Operating system the patch baseline applies to. + """ + pulumi.set(__self__, "baseline_description", baseline_description) + pulumi.set(__self__, "baseline_id", baseline_id) + pulumi.set(__self__, "baseline_name", baseline_name) + pulumi.set(__self__, "default_baseline", default_baseline) + pulumi.set(__self__, "operating_system", operating_system) + + @property + @pulumi.getter(name="baselineDescription") + def baseline_description(self) -> str: + """ + Description of the patch baseline. + """ + return pulumi.get(self, "baseline_description") + + @property + @pulumi.getter(name="baselineId") + def baseline_id(self) -> str: + """ + ID of the patch baseline. + """ + return pulumi.get(self, "baseline_id") + + @property + @pulumi.getter(name="baselineName") + def baseline_name(self) -> str: + """ + Name of the patch baseline. + """ + return pulumi.get(self, "baseline_name") + + @property + @pulumi.getter(name="defaultBaseline") + def default_baseline(self) -> bool: + """ + Indicates whether this is the default baseline. AWS Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system. + """ + return pulumi.get(self, "default_baseline") + + @property + @pulumi.getter(name="operatingSystem") + def operating_system(self) -> str: + """ + Operating system the patch baseline applies to. + """ + return pulumi.get(self, "operating_system") + + +@pulumi.output_type +class GetPatchBaselinesFilterResult(dict): + def __init__(__self__, *, + key: str, + values: Sequence[str]): + """ + :param str key: Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + :param Sequence[str] values: Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + """ + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "values", values) + + @property + @pulumi.getter + def key(self) -> str: + """ + Filter key. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for valid values. + """ + return pulumi.get(self, "key") + + @property + @pulumi.getter + def values(self) -> Sequence[str]: + """ + Filter values. See the [AWS SSM documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchBaselines.html) for example values. + """ + return pulumi.get(self, "values") + + diff --git a/sdk/python/pulumi_aws/verifiedaccess/group.py b/sdk/python/pulumi_aws/verifiedaccess/group.py index bc814e531ab..9b2b89ade35 100644 --- a/sdk/python/pulumi_aws/verifiedaccess/group.py +++ b/sdk/python/pulumi_aws/verifiedaccess/group.py @@ -338,6 +338,20 @@ def __init__(__self__, example = aws.verifiedaccess.Group("example", verifiedaccess_instance_id=example_aws_verifiedaccess_instance["id"]) ``` + ### Usage with KMS Key + + ```python + import pulumi + import pulumi_aws as aws + + test_key = aws.kms.Key("test_key", description="KMS key for Verified Access Group test") + test = aws.verifiedaccess.Group("test", + verifiedaccess_instance_id=test_aws_verifiedaccess_instance_trust_provider_attachment["verifiedaccessInstanceId"], + sse_configuration={ + "kms_key_arn": test_key.arn, + }) + ``` + :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 verified access group. @@ -368,6 +382,20 @@ def __init__(__self__, example = aws.verifiedaccess.Group("example", verifiedaccess_instance_id=example_aws_verifiedaccess_instance["id"]) ``` + ### Usage with KMS Key + + ```python + import pulumi + import pulumi_aws as aws + + test_key = aws.kms.Key("test_key", description="KMS key for Verified Access Group test") + test = aws.verifiedaccess.Group("test", + verifiedaccess_instance_id=test_aws_verifiedaccess_instance_trust_provider_attachment["verifiedaccessInstanceId"], + sse_configuration={ + "kms_key_arn": test_key.arn, + }) + ``` + :param str resource_name: The name of the resource. :param GroupArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. diff --git a/upstream b/upstream index c53a0b02fae..1977363a134 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit c53a0b02faebc91d84f004db1eb89babfc8876ac +Subproject commit 1977363a134f59ecfe3ebbd90c97dd8fad94336d