diff --git a/awsx-classic/apigateway/api.ts b/awsx-classic/apigateway/api.ts index a391e095e..25085cd91 100644 --- a/awsx-classic/apigateway/api.ts +++ b/awsx-classic/apigateway/api.ts @@ -631,24 +631,16 @@ export function createAPI(parent: pulumi.Resource, name: string, args: APIArgs, const deployment = new aws.apigateway.Deployment(name, { ...args.deploymentArgs, restApi: restAPI, - // Note: Set to empty to avoid creating an implicit stage, we'll create it explicitly below instead. - stageName: "", - // Note: We set `variables` here because it forces recreation of the Deployment object - // whenever the body hash changes. Because we use a blank stage name above, there will - // not actually be any stage created in AWS, and thus these variables will not actually - // end up anywhere. But this will still cause the right replacement of the Deployment - // when needed. The Stage allocated below will be the stable stage that always points - // to the latest deployment of the API. - variables: { version }, + variables: { + version: version, + }, + description: args.deploymentArgs?.description, }, { parent, dependsOn: apiPolicy ? [apiPolicy] : [], }); - const permissions = createLambdaPermissions(parent, deployment, name, swaggerLambdas); - - // Expose the URL that the API is served at. - const url = pulumi.interpolate`${deployment.invokeUrl}${stageName}/`; + const permissions = createLambdaPermissions(parent, restAPI, name, swaggerLambdas); // Create a stage, which is an addressable instance of the Rest API. Set it to point at the latest deployment. const stage = new aws.apigateway.Stage(name, { @@ -658,6 +650,9 @@ export function createAPI(parent: pulumi.Resource, name: string, args: APIArgs, stageName: stageName, }, { parent, dependsOn: permissions }); + // Expose the URL that the API is served at. + const url = pulumi.interpolate`${stage.invokeUrl}${stageName}/`; + return { restAPI, deployment, @@ -669,7 +664,7 @@ export function createAPI(parent: pulumi.Resource, name: string, args: APIArgs, }; } -function createLambdaPermissions(parent: pulumi.Resource, deployment: aws.apigateway.Deployment, name: string, swaggerLambdas: SwaggerLambdas) { +function createLambdaPermissions(parent: pulumi.Resource, restAPI: aws.apigateway.RestApi, name: string, swaggerLambdas: SwaggerLambdas) { const permissions: aws.lambda.Permission[] = []; for (const [path, lambdas] of swaggerLambdas) { for (const [method, lambda] of lambdas) { @@ -683,7 +678,7 @@ function createLambdaPermissions(parent: pulumi.Resource, deployment: aws.apigat // path on the API. We allow any stage instead of encoding the one known stage that will be // deployed by Pulumi because the API Gateway console "Test" feature invokes the route // handler with the fake stage `test-invoke-stage`. - sourceArn: pulumi.interpolate`${deployment.executionArn}*/${methodAndPath}`, + sourceArn: pulumi.interpolate`${restAPI.executionArn}*/${methodAndPath}`, }, { parent })); } } @@ -1084,7 +1079,7 @@ function addStaticRouteToSwaggerSpec( }, { parent }); const attachment = new aws.iam.RolePolicyAttachment(key, { role: role, - policyArn: aws.iam.ManagedPolicies.AmazonS3FullAccess, + policyArn: aws.iam.ManagedPolicy.AmazonS3FullAccess, }, { parent }); return role; diff --git a/awsx-classic/autoscaling/launchConfiguration.ts b/awsx-classic/autoscaling/launchConfiguration.ts index b8cbc7c5a..82dba1908 100644 --- a/awsx-classic/autoscaling/launchConfiguration.ts +++ b/awsx-classic/autoscaling/launchConfiguration.ts @@ -82,7 +82,7 @@ export class AutoScalingLaunchConfiguration extends pulumi.ComponentResource { } public static defaultInstanceProfilePolicyARNs() { - return [aws.iam.ManagedPolicies.AmazonEC2ContainerServiceforEC2Role, aws.iam.ManagedPolicies.AmazonEC2ReadOnlyAccess]; + return [aws.iam.ManagedPolicy.AmazonEC2ContainerServiceforEC2Role, aws.iam.ManagedPolicy.AmazonEC2ReadOnlyAccess]; } /** diff --git a/awsx-classic/ecs/image.ts b/awsx-classic/ecs/image.ts index e487cd439..4661a34c9 100644 --- a/awsx-classic/ecs/image.ts +++ b/awsx-classic/ecs/image.ts @@ -194,12 +194,9 @@ export function computeImageFromAsset( throw new Error("Expected registry ID to be defined during push"); } - const credentials = await aws.ecr.getCredentials({ registryId: registryId }, { parent, async: true }); - const decodedCredentials = Buffer.from(credentials.authorizationToken, "base64").toString(); - const [username, password] = decodedCredentials.split(":"); - if (!password || !username) { - throw new Error("Invalid credentials"); - } + const credentials = await aws.ecr.getAuthorizationToken({ registryId: registryId }, { parent, async: true }); + const username = credentials.userName; + const password = credentials.password; return { registry: credentials.proxyEndpoint, username: username, diff --git a/awsx-classic/ecs/taskDefinition.ts b/awsx-classic/ecs/taskDefinition.ts index 409a0444e..7572d694c 100644 --- a/awsx-classic/ecs/taskDefinition.ts +++ b/awsx-classic/ecs/taskDefinition.ts @@ -158,7 +158,7 @@ export abstract class TaskDefinition extends pulumi.ComponentResource { public static defaultExecutionRolePolicyARNs() { return [ "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy", - aws.iam.ManagedPolicies.AWSLambdaBasicExecutionRole, + aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole, ]; } } @@ -337,11 +337,6 @@ export interface TaskDefinitionArgs { */ family?: pulumi.Input; - /** - * Configuration block(s) with Inference Accelerators settings. Detailed below. - */ - inferenceAccelerators?: pulumi.Input[]>; - /** * The IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. */ diff --git a/awsx-classic/package.json b/awsx-classic/package.json index f90f22518..6cbe9b821 100644 --- a/awsx-classic/package.json +++ b/awsx-classic/package.json @@ -1,33 +1,36 @@ { - "name": "@pulumi/awsx", - "version": "${VERSION}", + "name": "@pulumi/awsx-classic", + "version": "2.0.0-alpha.0", + "description": "Pulumi Amazon Web Services (AWS) infrastructure components.", + "license": "Apache-2.0", + "bin": "bin/index.js", "keywords": [ "pulumi", "aws", "awsx" ], - "homepage": "https://pulumi.com", + "homepage": "https://pulumi.io", "repository": "https://github.com/pulumi/pulumi-awsx", - "license": "Apache-2.0", "scripts": { - "lint": "tslint -c tslint.json -p tsconfig.json" + "build": "tsc", + "install-tools": "go mod download", + "test": "jest", + "lint": "tslint --project .", + "format": "prettier --write ." }, "dependencies": { - "@aws-sdk/client-ecs": "^3.405.0", - "@pulumi/aws": "^6.0.2", - "@pulumi/docker": "4.5.8", - "@pulumi/pulumi": "^3.34.0", - "aws-lambda": "^1.0.7", - "docker-classic": "npm:@pulumi/docker@4.5.8", - "mime": "^3.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/aws-lambda": "^8.10.23", - "@types/aws-sdk": "^2.7.0", - "@types/mime": "^3.0.0", - "@types/node": "^17.0.21", - "tslint": "^5.11.0", - "typedoc": "^0.13.0", - "typescript": "^4.6.2" + "@types/node": "^18.0.0", + "typescript": "^4.6.2", + "jest": "^27.0.0", + "ts-jest": "^27.0.0", + "tslint": "^6.1.0", + "prettier": "^2.0.0" + }, + "engines": { + "node": ">=14" } } diff --git a/awsx-classic/tests/package.json b/awsx-classic/tests/package.json index 18f2c2871..d5298b438 100644 --- a/awsx-classic/tests/package.json +++ b/awsx-classic/tests/package.json @@ -1,38 +1,31 @@ { - "name": "@pulumi/awsx", - "version": "${VERSION}", - "description": "A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.", + "name": "@pulumi/awsx-classic-tests", + "version": "2.0.0-alpha.0", + "description": "Tests for Pulumi Amazon Web Services (AWS) infrastructure components.", "keywords": [ "pulumi", - "aws" + "aws", + "awsx", + "testing" ], "homepage": "https://pulumi.io", - "repository": "https://github.com/pulumi/pulumi-aws", + "repository": "https://github.com/pulumi/pulumi-awsx", "license": "Apache-2.0", "scripts": { + "test": "jest", "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0", - "builtin-modules": "3.0.0", - "mime": "^2.0.0", - "resolve": "^1.7.1", - "mocha": "^3.5.0", - "chai": "^4.2.0", - "proxyquire": "^2.1.0", - "semver": "^6.0.0", - "js-combinatorics": "^0.5.4" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/mime": "^2.0.0", - "@types/mocha": "^2.2.42", "@types/node": "^18.0.0", - "@types/semver": "^6.0.0", - "@types/js-combinatorics": "^0.5.31", - "typescript": "^4.6.2" + "typescript": "^4.6.2", + "jest": "^27.0.0", + "ts-jest": "^27.0.0" }, - "pulumi": { - "resource": true + "engines": { + "node": ">=14" } } diff --git a/awsx/ec2/vpc.test.ts b/awsx/ec2/vpc.test.ts index 4244705da..aad0a0608 100644 --- a/awsx/ec2/vpc.test.ts +++ b/awsx/ec2/vpc.test.ts @@ -379,9 +379,10 @@ describe("child resource api", () => { case "aws:index/getAvailabilityZones:getAvailabilityZones": const result: pulumiAws.GetAvailabilityZonesResult = { id: "mocked-az-result", - zoneIds: [1, 2, 3].map((i) => `${pulumiAws.USEast1Region}${i}`), - names: [1, 2, 3].map((i) => `${pulumiAws.USEast1Region}${i}`), - groupNames: [1, 2, 3].map((i) => `${pulumiAws.USEast1Region}${i}`), + region: pulumiAws.Region.USEast1, + zoneIds: [1, 2, 3].map((i) => `${pulumiAws.Region.USEast1}${i}`), + names: [1, 2, 3].map((i) => `${pulumiAws.Region.USEast1}${i}`), + groupNames: [1, 2, 3].map((i) => `${pulumiAws.Region.USEast1}${i}`), }; return result; default: diff --git a/awsx/ecr/auth.ts b/awsx/ecr/auth.ts index 6096ff7fb..603e3959c 100644 --- a/awsx/ecr/auth.ts +++ b/awsx/ecr/auth.ts @@ -94,7 +94,7 @@ export function getDockerCredentials( registryId = hostnameParts[0]; } - const ecrCredentials = aws.ecr.getCredentialsOutput({ registryId: registryId }, opts); + const ecrCredentials = aws.ecr.getAuthorizationTokenOutput({ registryId: registryId }, opts); return ecrCredentials.apply((creds) => { const decodedCredentials = Buffer.from(creds.authorizationToken, "base64").toString(); diff --git a/awsx/ecr/repository.ts b/awsx/ecr/repository.ts index 39dc7a715..33b4e4ff4 100644 --- a/awsx/ecr/repository.ts +++ b/awsx/ecr/repository.ts @@ -70,8 +70,6 @@ function buildLifecyclePolicy( function convertRules( rules: pulumi.Unwrap[], ): aws.ecr.LifecyclePolicyDocument { - const result: aws.ecr.LifecyclePolicyDocument = { rules: [] }; - const nonAnyRules = rules.filter((r) => r.tagStatus !== "any"); const anyRules = rules.filter((r) => r.tagStatus === "any"); @@ -82,13 +80,14 @@ function convertRules( // Place the 'any' rule last so it has higest priority. const orderedRules = [...nonAnyRules, ...anyRules]; + const policyRules: aws.ecr.PolicyRule[] = []; let rulePriority = 1; for (const rule of orderedRules) { - result.rules.push(convertRule(rule, rulePriority)); + policyRules.push(convertRule(rule, rulePriority)); rulePriority++; } - return result; + return { rules: policyRules }; } function convertRule( diff --git a/awsx/package.json b/awsx/package.json index f3d6a5297..0816755cc 100644 --- a/awsx/package.json +++ b/awsx/package.json @@ -25,7 +25,7 @@ }, "//": "Pulumi sub-provider dependencies must be pinned at an exact version because we extract this value to generate the correct dependency in the schema", "dependencies": { - "@pulumi/aws": "6.66.3", + "@pulumi/aws": "7.0.0-alpha.2", "@pulumi/docker": "4.6.0", "@pulumi/docker-build": "0.0.8", "@pulumi/pulumi": "3.160.0", diff --git a/awsx/schema-types.ts b/awsx/schema-types.ts index fa1280cdc..b91f581fc 100644 --- a/awsx/schema-types.ts +++ b/awsx/schema-types.ts @@ -45,6 +45,7 @@ export interface TrailArgs { readonly isOrganizationTrail?: pulumi.Input; readonly kmsKeyId?: pulumi.Input; readonly name?: pulumi.Input; + readonly region?: pulumi.Input; readonly s3Bucket?: RequiredBucketInputs; readonly s3KeyPrefix?: pulumi.Input; readonly snsTopicName?: pulumi.Input; @@ -96,6 +97,7 @@ export interface VpcArgs { readonly ipv6NetmaskLength?: pulumi.Input; readonly natGateways?: NatGatewayConfigurationInputs; readonly numberOfAvailabilityZones?: number; + readonly region?: pulumi.Input; readonly subnetSpecs?: SubnetSpecInputs[]; readonly subnetStrategy?: SubnetAllocationStrategyInputs; readonly tags?: pulumi.Input>>; @@ -149,6 +151,7 @@ export interface RepositoryArgs { readonly imageTagMutability?: pulumi.Input; readonly lifecyclePolicy?: lifecyclePolicyInputs; readonly name?: pulumi.Input; + readonly region?: pulumi.Input; readonly tags?: pulumi.Input>>; } export abstract class EC2Service extends (pulumi.ComponentResource) { @@ -182,6 +185,7 @@ export interface EC2ServiceArgs { readonly placementConstraints?: pulumi.Input[]>; readonly platformVersion?: pulumi.Input; readonly propagateTags?: pulumi.Input; + readonly region?: pulumi.Input; readonly schedulingStrategy?: pulumi.Input; readonly serviceConnectConfiguration?: pulumi.Input; readonly serviceRegistries?: pulumi.Input; @@ -206,10 +210,10 @@ export interface EC2TaskDefinitionArgs { readonly container?: TaskDefinitionContainerDefinitionInputs; readonly containers?: Record; readonly cpu?: pulumi.Input; + readonly enableFaultInjection?: pulumi.Input; readonly ephemeralStorage?: pulumi.Input; readonly executionRole?: DefaultRoleWithPolicyInputs; readonly family?: pulumi.Input; - readonly inferenceAccelerators?: pulumi.Input[]>; readonly ipcMode?: pulumi.Input; readonly logGroup?: DefaultLogGroupInputs; readonly memory?: pulumi.Input; @@ -217,6 +221,7 @@ export interface EC2TaskDefinitionArgs { readonly pidMode?: pulumi.Input; readonly placementConstraints?: pulumi.Input[]>; readonly proxyConfiguration?: pulumi.Input; + readonly region?: pulumi.Input; readonly runtimePlatform?: pulumi.Input; readonly skipDestroy?: pulumi.Input; readonly tags?: pulumi.Input>>; @@ -254,6 +259,7 @@ export interface FargateServiceArgs { readonly placementConstraints?: pulumi.Input[]>; readonly platformVersion?: pulumi.Input; readonly propagateTags?: pulumi.Input; + readonly region?: pulumi.Input; readonly schedulingStrategy?: pulumi.Input; readonly serviceConnectConfiguration?: pulumi.Input; readonly serviceRegistries?: pulumi.Input; @@ -278,16 +284,17 @@ export interface FargateTaskDefinitionArgs { readonly container?: TaskDefinitionContainerDefinitionInputs; readonly containers?: Record; readonly cpu?: pulumi.Input; + readonly enableFaultInjection?: pulumi.Input; readonly ephemeralStorage?: pulumi.Input; readonly executionRole?: DefaultRoleWithPolicyInputs; readonly family?: pulumi.Input; - readonly inferenceAccelerators?: pulumi.Input[]>; readonly ipcMode?: pulumi.Input; readonly logGroup?: DefaultLogGroupInputs; readonly memory?: pulumi.Input; readonly pidMode?: pulumi.Input; readonly placementConstraints?: pulumi.Input[]>; readonly proxyConfiguration?: pulumi.Input; + readonly region?: pulumi.Input; readonly runtimePlatform?: pulumi.Input; readonly skipDestroy?: pulumi.Input; readonly tags?: pulumi.Input>>; @@ -326,11 +333,14 @@ export interface ApplicationLoadBalancerArgs { readonly idleTimeout?: pulumi.Input; readonly internal?: pulumi.Input; readonly ipAddressType?: pulumi.Input; + readonly ipamPools?: pulumi.Input; readonly listener?: ListenerInputs; readonly listeners?: ListenerInputs[]; + readonly minimumLoadBalancerCapacity?: pulumi.Input; readonly name?: pulumi.Input; readonly namePrefix?: pulumi.Input; readonly preserveHostHeader?: pulumi.Input; + readonly region?: pulumi.Input; readonly securityGroups?: pulumi.Input[]>; readonly subnetIds?: pulumi.Input[]>; readonly subnetMappings?: pulumi.Input[]>; @@ -367,11 +377,14 @@ export interface NetworkLoadBalancerArgs { readonly idleTimeout?: pulumi.Input; readonly internal?: pulumi.Input; readonly ipAddressType?: pulumi.Input; + readonly ipamPools?: pulumi.Input; readonly listener?: ListenerInputs; readonly listeners?: ListenerInputs[]; + readonly minimumLoadBalancerCapacity?: pulumi.Input; readonly name?: pulumi.Input; readonly namePrefix?: pulumi.Input; readonly preserveHostHeader?: pulumi.Input; + readonly region?: pulumi.Input; readonly securityGroups?: pulumi.Input[]>; readonly subnetIds?: pulumi.Input[]>; readonly subnetMappings?: pulumi.Input[]>; @@ -397,48 +410,44 @@ export interface TargetGroupAttachmentArgs { export interface BucketInputs { readonly accelerationStatus?: pulumi.Input; readonly acl?: pulumi.Input; - readonly arn?: pulumi.Input; readonly bucket?: pulumi.Input; readonly bucketPrefix?: pulumi.Input; readonly corsRules?: pulumi.Input[]>; readonly forceDestroy?: pulumi.Input; readonly grants?: pulumi.Input[]>; - readonly hostedZoneId?: pulumi.Input; readonly lifecycleRules?: pulumi.Input[]>; - readonly loggings?: pulumi.Input[]>; + readonly logging?: pulumi.Input; readonly objectLockConfiguration?: pulumi.Input; + readonly objectLockEnabled?: pulumi.Input; readonly policy?: pulumi.Input; + readonly region?: pulumi.Input; readonly replicationConfiguration?: pulumi.Input; readonly requestPayer?: pulumi.Input; readonly serverSideEncryptionConfiguration?: pulumi.Input; readonly tags?: pulumi.Input>>; readonly versioning?: pulumi.Input; readonly website?: pulumi.Input; - readonly websiteDomain?: pulumi.Input; - readonly websiteEndpoint?: pulumi.Input; } export interface BucketOutputs { readonly accelerationStatus?: pulumi.Output; readonly acl?: pulumi.Output; - readonly arn?: pulumi.Output; readonly bucket?: pulumi.Output; readonly bucketPrefix?: pulumi.Output; readonly corsRules?: pulumi.Output; readonly forceDestroy?: pulumi.Output; readonly grants?: pulumi.Output; - readonly hostedZoneId?: pulumi.Output; readonly lifecycleRules?: pulumi.Output; - readonly loggings?: pulumi.Output; + readonly logging?: pulumi.Output; readonly objectLockConfiguration?: pulumi.Output; + readonly objectLockEnabled?: pulumi.Output; readonly policy?: pulumi.Output; + readonly region?: pulumi.Output; readonly replicationConfiguration?: pulumi.Output; readonly requestPayer?: pulumi.Output; readonly serverSideEncryptionConfiguration?: pulumi.Output; readonly tags?: pulumi.Output>; readonly versioning?: pulumi.Output; readonly website?: pulumi.Output; - readonly websiteDomain?: pulumi.Output; - readonly websiteEndpoint?: pulumi.Output; } export interface DefaultBucketInputs { readonly args?: BucketInputs; @@ -503,6 +512,7 @@ export interface LogGroupInputs { readonly logGroupClass?: pulumi.Input; readonly name?: pulumi.Input; readonly namePrefix?: pulumi.Input; + readonly region?: pulumi.Input; readonly retentionInDays?: pulumi.Input; readonly skipDestroy?: pulumi.Input; readonly tags?: pulumi.Input>>; @@ -512,6 +522,7 @@ export interface LogGroupOutputs { readonly logGroupClass?: pulumi.Output; readonly name?: pulumi.Output; readonly namePrefix?: pulumi.Output; + readonly region?: pulumi.Output; readonly retentionInDays?: pulumi.Output; readonly skipDestroy?: pulumi.Output; readonly tags?: pulumi.Output>; @@ -574,6 +585,7 @@ export interface SecurityGroupInputs { readonly ingress?: pulumi.Input[]>; readonly name?: pulumi.Input; readonly namePrefix?: pulumi.Input; + readonly region?: pulumi.Input; readonly revokeRulesOnDelete?: pulumi.Input; readonly tags?: pulumi.Input>>; readonly vpcId?: pulumi.Input; @@ -584,6 +596,7 @@ export interface SecurityGroupOutputs { readonly ingress?: pulumi.Output; readonly name?: pulumi.Output; readonly namePrefix?: pulumi.Output; + readonly region?: pulumi.Output; readonly revokeRulesOnDelete?: pulumi.Output; readonly tags?: pulumi.Output>; readonly vpcId?: pulumi.Output; @@ -650,9 +663,12 @@ export interface VpcEndpointSpecInputs { readonly ipAddressType?: pulumi.Input; readonly policy?: pulumi.Input; readonly privateDnsEnabled?: boolean; + readonly region?: pulumi.Input; + readonly resourceConfigurationArn?: pulumi.Input; readonly routeTableIds?: pulumi.Input[]>; readonly securityGroupIds?: pulumi.Input[]>; readonly serviceName: string; + readonly serviceNetworkArn?: pulumi.Input; readonly serviceRegion?: pulumi.Input; readonly subnetConfigurations?: pulumi.Input[]>; readonly subnetIds?: pulumi.Input[]>; @@ -665,9 +681,12 @@ export interface VpcEndpointSpecOutputs { readonly ipAddressType?: pulumi.Output; readonly policy?: pulumi.Output; readonly privateDnsEnabled?: boolean; + readonly region?: pulumi.Output; + readonly resourceConfigurationArn?: pulumi.Output; readonly routeTableIds?: pulumi.Output; readonly securityGroupIds?: pulumi.Output; readonly serviceName: string; + readonly serviceNetworkArn?: pulumi.Output; readonly serviceRegion?: pulumi.Output; readonly subnetConfigurations?: pulumi.Output; readonly subnetIds?: pulumi.Output; @@ -726,10 +745,10 @@ export interface EC2ServiceTaskDefinitionInputs { readonly container?: TaskDefinitionContainerDefinitionInputs; readonly containers?: Record; readonly cpu?: pulumi.Input; + readonly enableFaultInjection?: pulumi.Input; readonly ephemeralStorage?: pulumi.Input; readonly executionRole?: DefaultRoleWithPolicyInputs; readonly family?: pulumi.Input; - readonly inferenceAccelerators?: pulumi.Input[]>; readonly ipcMode?: pulumi.Input; readonly logGroup?: DefaultLogGroupInputs; readonly memory?: pulumi.Input; @@ -737,6 +756,7 @@ export interface EC2ServiceTaskDefinitionInputs { readonly pidMode?: pulumi.Input; readonly placementConstraints?: pulumi.Input[]>; readonly proxyConfiguration?: pulumi.Input; + readonly region?: pulumi.Input; readonly runtimePlatform?: pulumi.Input; readonly skipDestroy?: pulumi.Input; readonly tags?: pulumi.Input>>; @@ -748,10 +768,10 @@ export interface EC2ServiceTaskDefinitionOutputs { readonly container?: TaskDefinitionContainerDefinitionOutputs; readonly containers?: Record; readonly cpu?: pulumi.Output; + readonly enableFaultInjection?: pulumi.Output; readonly ephemeralStorage?: pulumi.Output; readonly executionRole?: DefaultRoleWithPolicyOutputs; readonly family?: pulumi.Output; - readonly inferenceAccelerators?: pulumi.Output; readonly ipcMode?: pulumi.Output; readonly logGroup?: DefaultLogGroupOutputs; readonly memory?: pulumi.Output; @@ -759,6 +779,7 @@ export interface EC2ServiceTaskDefinitionOutputs { readonly pidMode?: pulumi.Output; readonly placementConstraints?: pulumi.Output; readonly proxyConfiguration?: pulumi.Output; + readonly region?: pulumi.Output; readonly runtimePlatform?: pulumi.Output; readonly skipDestroy?: pulumi.Output; readonly tags?: pulumi.Output>; @@ -770,16 +791,17 @@ export interface FargateServiceTaskDefinitionInputs { readonly container?: TaskDefinitionContainerDefinitionInputs; readonly containers?: Record; readonly cpu?: pulumi.Input; + readonly enableFaultInjection?: pulumi.Input; readonly ephemeralStorage?: pulumi.Input; readonly executionRole?: DefaultRoleWithPolicyInputs; readonly family?: pulumi.Input; - readonly inferenceAccelerators?: pulumi.Input[]>; readonly ipcMode?: pulumi.Input; readonly logGroup?: DefaultLogGroupInputs; readonly memory?: pulumi.Input; readonly pidMode?: pulumi.Input; readonly placementConstraints?: pulumi.Input[]>; readonly proxyConfiguration?: pulumi.Input; + readonly region?: pulumi.Input; readonly runtimePlatform?: pulumi.Input; readonly skipDestroy?: pulumi.Input; readonly tags?: pulumi.Input>>; @@ -791,16 +813,17 @@ export interface FargateServiceTaskDefinitionOutputs { readonly container?: TaskDefinitionContainerDefinitionOutputs; readonly containers?: Record; readonly cpu?: pulumi.Output; + readonly enableFaultInjection?: pulumi.Output; readonly ephemeralStorage?: pulumi.Output; readonly executionRole?: DefaultRoleWithPolicyOutputs; readonly family?: pulumi.Output; - readonly inferenceAccelerators?: pulumi.Output; readonly ipcMode?: pulumi.Output; readonly logGroup?: DefaultLogGroupOutputs; readonly memory?: pulumi.Output; readonly pidMode?: pulumi.Output; readonly placementConstraints?: pulumi.Output; readonly proxyConfiguration?: pulumi.Output; + readonly region?: pulumi.Output; readonly runtimePlatform?: pulumi.Output; readonly skipDestroy?: pulumi.Output; readonly tags?: pulumi.Output>; @@ -1085,6 +1108,26 @@ export interface ListenerInputs { readonly mutualAuthentication?: pulumi.Input; readonly port?: pulumi.Input; readonly protocol?: pulumi.Input; + readonly region?: pulumi.Input; + readonly routingHttpRequestXAmznMtlsClientcertHeaderName?: pulumi.Input; + readonly routingHttpRequestXAmznMtlsClientcertIssuerHeaderName?: pulumi.Input; + readonly routingHttpRequestXAmznMtlsClientcertLeafHeaderName?: pulumi.Input; + readonly routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName?: pulumi.Input; + readonly routingHttpRequestXAmznMtlsClientcertSubjectHeaderName?: pulumi.Input; + readonly routingHttpRequestXAmznMtlsClientcertValidityHeaderName?: pulumi.Input; + readonly routingHttpRequestXAmznTlsCipherSuiteHeaderName?: pulumi.Input; + readonly routingHttpRequestXAmznTlsVersionHeaderName?: pulumi.Input; + readonly routingHttpResponseAccessControlAllowCredentialsHeaderValue?: pulumi.Input; + readonly routingHttpResponseAccessControlAllowHeadersHeaderValue?: pulumi.Input; + readonly routingHttpResponseAccessControlAllowMethodsHeaderValue?: pulumi.Input; + readonly routingHttpResponseAccessControlAllowOriginHeaderValue?: pulumi.Input; + readonly routingHttpResponseAccessControlExposeHeadersHeaderValue?: pulumi.Input; + readonly routingHttpResponseAccessControlMaxAgeHeaderValue?: pulumi.Input; + readonly routingHttpResponseContentSecurityPolicyHeaderValue?: pulumi.Input; + readonly routingHttpResponseServerEnabled?: pulumi.Input; + readonly routingHttpResponseStrictTransportSecurityHeaderValue?: pulumi.Input; + readonly routingHttpResponseXContentTypeOptionsHeaderValue?: pulumi.Input; + readonly routingHttpResponseXFrameOptionsHeaderValue?: pulumi.Input; readonly sslPolicy?: pulumi.Input; readonly tags?: pulumi.Input>>; readonly tcpIdleTimeoutSeconds?: pulumi.Input; @@ -1096,6 +1139,26 @@ export interface ListenerOutputs { readonly mutualAuthentication?: pulumi.Output; readonly port?: pulumi.Output; readonly protocol?: pulumi.Output; + readonly region?: pulumi.Output; + readonly routingHttpRequestXAmznMtlsClientcertHeaderName?: pulumi.Output; + readonly routingHttpRequestXAmznMtlsClientcertIssuerHeaderName?: pulumi.Output; + readonly routingHttpRequestXAmznMtlsClientcertLeafHeaderName?: pulumi.Output; + readonly routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName?: pulumi.Output; + readonly routingHttpRequestXAmznMtlsClientcertSubjectHeaderName?: pulumi.Output; + readonly routingHttpRequestXAmznMtlsClientcertValidityHeaderName?: pulumi.Output; + readonly routingHttpRequestXAmznTlsCipherSuiteHeaderName?: pulumi.Output; + readonly routingHttpRequestXAmznTlsVersionHeaderName?: pulumi.Output; + readonly routingHttpResponseAccessControlAllowCredentialsHeaderValue?: pulumi.Output; + readonly routingHttpResponseAccessControlAllowHeadersHeaderValue?: pulumi.Output; + readonly routingHttpResponseAccessControlAllowMethodsHeaderValue?: pulumi.Output; + readonly routingHttpResponseAccessControlAllowOriginHeaderValue?: pulumi.Output; + readonly routingHttpResponseAccessControlExposeHeadersHeaderValue?: pulumi.Output; + readonly routingHttpResponseAccessControlMaxAgeHeaderValue?: pulumi.Output; + readonly routingHttpResponseContentSecurityPolicyHeaderValue?: pulumi.Output; + readonly routingHttpResponseServerEnabled?: pulumi.Output; + readonly routingHttpResponseStrictTransportSecurityHeaderValue?: pulumi.Output; + readonly routingHttpResponseXContentTypeOptionsHeaderValue?: pulumi.Output; + readonly routingHttpResponseXFrameOptionsHeaderValue?: pulumi.Output; readonly sslPolicy?: pulumi.Output; readonly tags?: pulumi.Output>; readonly tcpIdleTimeoutSeconds?: pulumi.Output; @@ -1116,6 +1179,7 @@ export interface TargetGroupInputs { readonly protocol?: pulumi.Input; readonly protocolVersion?: pulumi.Input; readonly proxyProtocolV2?: pulumi.Input; + readonly region?: pulumi.Input; readonly slowStart?: pulumi.Input; readonly stickiness?: pulumi.Input; readonly tags?: pulumi.Input>>; @@ -1141,6 +1205,7 @@ export interface TargetGroupOutputs { readonly protocol?: pulumi.Output; readonly protocolVersion?: pulumi.Output; readonly proxyProtocolV2?: pulumi.Output; + readonly region?: pulumi.Output; readonly slowStart?: pulumi.Output; readonly stickiness?: pulumi.Output; readonly tags?: pulumi.Output>; diff --git a/awsx/yarn.lock b/awsx/yarn.lock index 2aed818be..cb7ab4a52 100644 --- a/awsx/yarn.lock +++ b/awsx/yarn.lock @@ -1661,10 +1661,10 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@pulumi/aws@6.66.3": - version "6.66.3" - resolved "https://registry.yarnpkg.com/@pulumi/aws/-/aws-6.66.3.tgz#5dd81c31fa53d53f5abf2a916e848c0f901cbbd4" - integrity sha512-dDu9W+sdCrmVhIV+uales73gW+xTbl82YbNaD7/Du/Nt5sNDt+sB8gWRX0uUahVAmF3znhWDAZ5aOKiQd3wp/w== +"@pulumi/aws@7.0.0-alpha.2": + version "7.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@pulumi/aws/-/aws-7.0.0-alpha.2.tgz#ff8d38a4ca781f97bbf73200b9f18efdfc8009de" + integrity sha512-AvQC3yRhw+du3xknN5aENEea9EYEDYpk79nFcPyyzN0ucjhNSrZ0tjPTkCbMC99y8lOYspz1nZxDrkOD/zOXsA== dependencies: "@pulumi/pulumi" "^3.142.0" mime "^2.0.0" diff --git a/examples/cloudtrail/nodejs/index.ts b/examples/cloudtrail/nodejs/index.ts index 71b9241bc..e8e92630a 100644 --- a/examples/cloudtrail/nodejs/index.ts +++ b/examples/cloudtrail/nodejs/index.ts @@ -39,14 +39,14 @@ const kmsEncryptedBucketTrail = new awsx.cloudtrail.Trail("example-kms-bucket-tr } }) -defaultTrail.bucket.apply(b => b!) - .serverSideEncryptionConfiguration.rule.applyServerSideEncryptionByDefault.sseAlgorithm - .apply(alg => assert.strictEqual(alg, "AES256")); +defaultTrail.bucket.apply((b: any) => b! + .serverSideEncryptionConfiguration.rule.applyServerSideEncryptionByDefault.sseAlgorithm) + .apply((alg: string) => assert.strictEqual(alg, "AES256")); -aesEncryptedBucketTrail.bucket.apply(b => b!) - .serverSideEncryptionConfiguration.rule.applyServerSideEncryptionByDefault.sseAlgorithm - .apply(alg => assert.strictEqual(alg, "AES256")); +aesEncryptedBucketTrail.bucket.apply((b: any) => b! + .serverSideEncryptionConfiguration.rule.applyServerSideEncryptionByDefault.sseAlgorithm) + .apply((alg: string) => assert.strictEqual(alg, "AES256")); -kmsEncryptedBucketTrail.bucket.apply(b => b!) - .serverSideEncryptionConfiguration.rule.applyServerSideEncryptionByDefault.sseAlgorithm - .apply(kmsAlg => assert.strictEqual(kmsAlg, "aws:kms")); +kmsEncryptedBucketTrail.bucket.apply((b: any) => b! + .serverSideEncryptionConfiguration.rule.applyServerSideEncryptionByDefault.sseAlgorithm) + .apply((kmsAlg: string) => assert.strictEqual(kmsAlg, "aws:kms")); diff --git a/examples/cloudtrail/nodejs/package.json b/examples/cloudtrail/nodejs/package.json index 81bd981d9..499e41c74 100644 --- a/examples/cloudtrail/nodejs/package.json +++ b/examples/cloudtrail/nodejs/package.json @@ -1,11 +1,11 @@ { - "name": "nodejs", + "name": "cloudtrail-nodejs", "devDependencies": { - "@types/node": "^14" + "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/awsx": "^2.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" } } diff --git a/examples/ecs-parallel/package.json b/examples/ecs-parallel/package.json index f7dba01b2..b2f1d77c8 100644 --- a/examples/ecs-parallel/package.json +++ b/examples/ecs-parallel/package.json @@ -1,10 +1,11 @@ { "name": "ecs-parallel", "devDependencies": { - "@types/node": "^10.0.0" + "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.4", + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", "@pulumi/pulumi": "^3.0.0" } } diff --git a/examples/ecs/nodejs/package.json b/examples/ecs/nodejs/package.json index 2ba75f7ad..73a2af7aa 100644 --- a/examples/ecs/nodejs/package.json +++ b/examples/ecs/nodejs/package.json @@ -1,10 +1,11 @@ { - "name": "ecsx-cluster-default-capacity-provider", + "name": "ecs-nodejs", "devDependencies": { - "@types/node": "^10.0.0" + "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.4", + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", "@pulumi/pulumi": "^3.0.0" } } diff --git a/examples/ecs/python/requirements.txt b/examples/ecs/python/requirements.txt index 73ce916f0..db2a500fc 100644 --- a/examples/ecs/python/requirements.txt +++ b/examples/ecs/python/requirements.txt @@ -1,2 +1,2 @@ pulumi>=3.0.0,<4.0.0 -pulumi_aws>=6.66.1,<6.67.0 +pulumi_aws>=7.0.0-alpha.2,<8.0.0 diff --git a/examples/ts-ecr-dockerfile/package.json b/examples/ts-ecr-dockerfile/package.json index 66a9098a5..3d8873763 100644 --- a/examples/ts-ecr-dockerfile/package.json +++ b/examples/ts-ecr-dockerfile/package.json @@ -7,7 +7,7 @@ }, "dependencies": { "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2" }, "devDependencies": { "@types/node": "^18.0.0" diff --git a/examples/ts-ecr-registry-image/package.json b/examples/ts-ecr-registry-image/package.json index d74cb6c2a..2c0e178b0 100644 --- a/examples/ts-ecr-registry-image/package.json +++ b/examples/ts-ecr-registry-image/package.json @@ -7,7 +7,7 @@ }, "dependencies": { "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0", + "@pulumi/aws": "7.0.0-alpha.2", "@pulumi/docker": "^4.6.0" }, "devDependencies": { diff --git a/examples/ts-ecr-repo/package.json b/examples/ts-ecr-repo/package.json index 238b1473d..2916cfb6b 100644 --- a/examples/ts-ecr-repo/package.json +++ b/examples/ts-ecr-repo/package.json @@ -7,10 +7,12 @@ }, "dependencies": { "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0", - "@pulumi/awsx": "latest" + "@pulumi/aws": "7.0.0-alpha.2" }, "devDependencies": { "@types/node": "^18.0.0" + }, + "peerDependencies": { + "@pulumi/awsx": "latest" } -} \ No newline at end of file +} diff --git a/examples/ts-ecr-simple/package.json b/examples/ts-ecr-simple/package.json index 7e63b4f79..dac1a2d14 100644 --- a/examples/ts-ecr-simple/package.json +++ b/examples/ts-ecr-simple/package.json @@ -7,7 +7,7 @@ }, "dependencies": { "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2" }, "devDependencies": { "@types/node": "^18.0.0" diff --git a/examples/ts-lb-attach-ec2/index.ts b/examples/ts-lb-attach-ec2/index.ts index ce122edc8..cf6094e70 100644 --- a/examples/ts-lb-attach-ec2/index.ts +++ b/examples/ts-lb-attach-ec2/index.ts @@ -8,8 +8,8 @@ const lb = new awsx.lb.ApplicationLoadBalancer("lb", { subnets: vpc.subnets }); // Get the Amazon Linux AMI. We use a specific version because its id is serialized into the // recorded snapshot for upgrade tests. Using a later image requires re-recording the snapshot. const ami = aws.ec2.getAmiOutput({ - filters: [{ name: "name", values: ["amzn2-ami-hvm-2.0.20231218.0-x86_64-ebs"] }], - owners: ["137112412989"], // Amazon + filters: [{ name: "name", values: ["amzn2-ami-hvm-*-x86_64-ebs"] }], + owners: ["amazon"], // Use "amazon" instead of the numeric ID for better compatibility mostRecent: true, }).id; @@ -28,7 +28,7 @@ const group = new aws.ec2.SecurityGroup("web-secgrp", { // (optional) create a simple web server using the startup script for the instance const userData = `#!/bin/bash echo "Hello, World!" > index.html -nohup python -m SimpleHTTPServer 80 &`; +nohup python3 -m http.server 80 &`; const instance = new aws.ec2.Instance("instance", { instanceType: aws.ec2.InstanceType.T2_Micro, // t2.micro is available in the AWS free tier diff --git a/examples/ts-lb-attach-ec2/package.json b/examples/ts-lb-attach-ec2/package.json index b39840d0a..438787697 100644 --- a/examples/ts-lb-attach-ec2/package.json +++ b/examples/ts-lb-attach-ec2/package.json @@ -4,8 +4,8 @@ "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.0", + "@pulumi/aws": "7.0.0-alpha.2", "@pulumi/awsx": "latest", "@pulumi/pulumi": "^3.0.0" } -} \ No newline at end of file +} diff --git a/examples/ts-lb-attach-lambda/package.json b/examples/ts-lb-attach-lambda/package.json index 5effcea39..5b13b7ebe 100644 --- a/examples/ts-lb-attach-lambda/package.json +++ b/examples/ts-lb-attach-lambda/package.json @@ -4,7 +4,8 @@ "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.0", + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", "@pulumi/pulumi": "^3.0.0" }, "peerDependencies": { diff --git a/examples/ts-lb-simple/package.json b/examples/ts-lb-simple/package.json index c4e21f66e..baf0e85a4 100644 --- a/examples/ts-lb-simple/package.json +++ b/examples/ts-lb-simple/package.json @@ -4,7 +4,7 @@ "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.0", + "@pulumi/aws": "7.0.0-alpha.2", "@pulumi/awsx": "latest", "@pulumi/pulumi": "^3.0.0" } diff --git a/examples/ts-lb-with-subnets/package.json b/examples/ts-lb-with-subnets/package.json index 20d0cd2ac..9cfa4811c 100644 --- a/examples/ts-lb-with-subnets/package.json +++ b/examples/ts-lb-with-subnets/package.json @@ -1,11 +1,11 @@ { - "name": "ts-lb-simple", + "name": "ts-lb-with-subnets", "devDependencies": { "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.0", - "@pulumi/pulumi": "^3.0.0", - "@pulumi/awsx": "latest" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" } } diff --git a/examples/ts-nlb-simple/package.json b/examples/ts-nlb-simple/package.json index 20d0cd2ac..ef58d568f 100644 --- a/examples/ts-nlb-simple/package.json +++ b/examples/ts-nlb-simple/package.json @@ -1,11 +1,11 @@ { - "name": "ts-lb-simple", + "name": "ts-nlb-simple", "devDependencies": { "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.0", - "@pulumi/pulumi": "^3.0.0", - "@pulumi/awsx": "latest" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" } } diff --git a/examples/ts-nlb-with-security-group/package.json b/examples/ts-nlb-with-security-group/package.json index 20d0cd2ac..0dd8dfe20 100644 --- a/examples/ts-nlb-with-security-group/package.json +++ b/examples/ts-nlb-with-security-group/package.json @@ -1,11 +1,11 @@ { - "name": "ts-lb-simple", + "name": "ts-nlb-with-security-group", "devDependencies": { "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.0", - "@pulumi/pulumi": "^3.0.0", - "@pulumi/awsx": "latest" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" } } diff --git a/examples/ts-vpc-getDefaultVpc/package.json b/examples/ts-vpc-getDefaultVpc/package.json index 12ad966cf..4d91ec98e 100644 --- a/examples/ts-vpc-getDefaultVpc/package.json +++ b/examples/ts-vpc-getDefaultVpc/package.json @@ -7,7 +7,7 @@ }, "dependencies": { "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2" }, "devDependencies": { "@types/node": "^18.0.0" diff --git a/examples/vpc/nodejs/custom-provider/package.json b/examples/vpc/nodejs/custom-provider/package.json index efe256a25..b6470d219 100644 --- a/examples/vpc/nodejs/custom-provider/package.json +++ b/examples/vpc/nodejs/custom-provider/package.json @@ -1,10 +1,10 @@ { - "name": "nodejs", + "name": "vpc-custom-provider", "devDependencies": { - "@types/node": "^18" + "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.0", + "@pulumi/aws": "7.0.0-alpha.2", "@pulumi/awsx": "latest", "@pulumi/pulumi": "^3.0.0" } diff --git a/examples/vpc/nodejs/default-args/package.json b/examples/vpc/nodejs/default-args/package.json index 81bd981d9..210379523 100644 --- a/examples/vpc/nodejs/default-args/package.json +++ b/examples/vpc/nodejs/default-args/package.json @@ -1,11 +1,11 @@ { - "name": "nodejs", + "name": "vpc-default-args", "devDependencies": { - "@types/node": "^14" + "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/awsx": "^2.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" } } diff --git a/examples/vpc/nodejs/export-eip-tags/package.json b/examples/vpc/nodejs/export-eip-tags/package.json index 81bd981d9..e3b332098 100644 --- a/examples/vpc/nodejs/export-eip-tags/package.json +++ b/examples/vpc/nodejs/export-eip-tags/package.json @@ -1,11 +1,11 @@ { - "name": "nodejs", + "name": "vpc-export-eip-tags", "devDependencies": { - "@types/node": "^14" + "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/awsx": "^2.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" } } diff --git a/examples/vpc/nodejs/vpc-ipam-ipv4-auto-cidrblock-with-specs/package.json b/examples/vpc/nodejs/vpc-ipam-ipv4-auto-cidrblock-with-specs/package.json index de9290127..5fde29e4e 100644 --- a/examples/vpc/nodejs/vpc-ipam-ipv4-auto-cidrblock-with-specs/package.json +++ b/examples/vpc/nodejs/vpc-ipam-ipv4-auto-cidrblock-with-specs/package.json @@ -2,12 +2,12 @@ "name": "vpc-ipam-ipv4-auto-cidrblock-with-specs", "main": "index.ts", "devDependencies": { - "@types/node": "^18", + "@types/node": "^18.0.0", "typescript": "^5.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.0", - "@pulumi/awsx": "^2.0.2", - "@pulumi/pulumi": "^3.113.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" } } diff --git a/examples/vpc/nodejs/vpc-ipam-ipv4-auto-cidrblock/package.json b/examples/vpc/nodejs/vpc-ipam-ipv4-auto-cidrblock/package.json index 887016242..efad26fce 100644 --- a/examples/vpc/nodejs/vpc-ipam-ipv4-auto-cidrblock/package.json +++ b/examples/vpc/nodejs/vpc-ipam-ipv4-auto-cidrblock/package.json @@ -2,12 +2,12 @@ "name": "vpc-ipam-ipv4-auto-cidrblock", "main": "index.ts", "devDependencies": { - "@types/node": "^18", + "@types/node": "^18.0.0", "typescript": "^5.0.0" }, "dependencies": { - "@pulumi/aws": "^6.0.0", - "@pulumi/awsx": "^2.0.2", - "@pulumi/pulumi": "^3.113.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" } } diff --git a/examples_legacy/alb/ec2/package.json b/examples_legacy/alb/ec2/package.json index 883d633d2..de8be27cd 100644 --- a/examples_legacy/alb/ec2/package.json +++ b/examples_legacy/alb/ec2/package.json @@ -1,16 +1,17 @@ { - "name": "alb", + "name": "alb-ec2", "version": "0.0.1", "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^10.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/alb/ec2Instance/package.json b/examples_legacy/alb/ec2Instance/package.json index 8b48dc740..1da1f1e88 100644 --- a/examples_legacy/alb/ec2Instance/package.json +++ b/examples_legacy/alb/ec2Instance/package.json @@ -6,11 +6,12 @@ "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/alb/fargate/package.json b/examples_legacy/alb/fargate/package.json index 8355403c2..de8fc0f2c 100644 --- a/examples_legacy/alb/fargate/package.json +++ b/examples_legacy/alb/fargate/package.json @@ -1,16 +1,17 @@ { - "name": "alb", + "name": "alb-fargate", "version": "0.0.1", "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/alb/fargateInlineListener/package.json b/examples_legacy/alb/fargateInlineListener/package.json index 8355403c2..56c55964f 100644 --- a/examples_legacy/alb/fargateInlineListener/package.json +++ b/examples_legacy/alb/fargateInlineListener/package.json @@ -1,16 +1,17 @@ { - "name": "alb", + "name": "alb-fargate-inline-listener", "version": "0.0.1", "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/alb/lambdaTarget/package.json b/examples_legacy/alb/lambdaTarget/package.json index 9f36c4c39..4000c5538 100644 --- a/examples_legacy/alb/lambdaTarget/package.json +++ b/examples_legacy/alb/lambdaTarget/package.json @@ -6,11 +6,12 @@ "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/api/package.json b/examples_legacy/api/package.json index e5b0ece6e..ec9cbe9b4 100644 --- a/examples_legacy/api/package.json +++ b/examples_legacy/api/package.json @@ -6,12 +6,12 @@ "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/aws-sdk": "^2.7.0", - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/apikeysource/package.json b/examples_legacy/apikeysource/package.json index 38387f7b1..dba3f03f0 100644 --- a/examples_legacy/apikeysource/package.json +++ b/examples_legacy/apikeysource/package.json @@ -1,14 +1,15 @@ { - "name": "api", + "name": "apikeysource", "version": "0.0.1", "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { - "@aws-sdk/client-ecs": "^3.454.0", - "@pulumi/aws": "^6.0.0", + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", "@pulumi/pulumi": "^3.0.0", + "@aws-sdk/client-ecs": "^3.454.0", "aws-sdk": "^2.1500.0", "@pulumi/docker": "^4.4.4", "@types/aws-lambda": "^8.10.23", @@ -17,7 +18,7 @@ }, "devDependencies": { "@types/aws-sdk": "^2.7.0", - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/cluster/package.json b/examples_legacy/cluster/package.json index a709b8d09..3346e14d9 100644 --- a/examples_legacy/cluster/package.json +++ b/examples_legacy/cluster/package.json @@ -6,11 +6,12 @@ "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/dashboards/package.json b/examples_legacy/dashboards/package.json index f3a225427..16d0eb23f 100644 --- a/examples_legacy/dashboards/package.json +++ b/examples_legacy/dashboards/package.json @@ -1,19 +1,17 @@ { - "name": "dashboard", + "name": "dashboards", "version": "0.0.1", "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0", - "node-fetch": "^2.2.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/aws-sdk": "^2.7.0", - "@types/node": "^8.0.0", - "@types/node-fetch": "=2.1.2" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/ec2/package.json b/examples_legacy/ec2/package.json index cd7ea245c..67b221245 100644 --- a/examples_legacy/ec2/package.json +++ b/examples_legacy/ec2/package.json @@ -6,11 +6,12 @@ "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/ecr/package.json b/examples_legacy/ecr/package.json index 85505e766..3aabe3266 100644 --- a/examples_legacy/ecr/package.json +++ b/examples_legacy/ecr/package.json @@ -1,16 +1,17 @@ { - "name": "fargate", + "name": "ecr", "version": "0.0.1", "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/ecs/fargate-service-with-firelens/package.json b/examples_legacy/ecs/fargate-service-with-firelens/package.json index b534959a5..3dbd7bcca 100644 --- a/examples_legacy/ecs/fargate-service-with-firelens/package.json +++ b/examples_legacy/ecs/fargate-service-with-firelens/package.json @@ -1,11 +1,17 @@ { - "name": "fargate-service-with-firelens", - "devDependencies": { - "@types/node": "^10.0.0" + "name": "ecs-fargate-service-with-firelens", + "version": "0.0.1", + "license": "Apache-2.0", + "scripts": { + "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" + }, + "devDependencies": { + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/ecs/task-definitions-with-proxy-config/package.json b/examples_legacy/ecs/task-definitions-with-proxy-config/package.json index d056ab35b..5fa16bbb9 100644 --- a/examples_legacy/ecs/task-definitions-with-proxy-config/package.json +++ b/examples_legacy/ecs/task-definitions-with-proxy-config/package.json @@ -1,11 +1,17 @@ { - "name": "task-definitions-with-proxy-config", + "name": "ecs-task-definitions-with-proxy-config", + "version": "0.0.1", + "license": "Apache-2.0", + "scripts": { + "build": "tsc" + }, "devDependencies": { - "@types/node": "^10.0.0" + "@types/node": "^18.0.0" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/metrics/package.json b/examples_legacy/metrics/package.json index 1eaa704eb..0553e3cdb 100644 --- a/examples_legacy/metrics/package.json +++ b/examples_legacy/metrics/package.json @@ -6,14 +6,12 @@ "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0", - "node-fetch": "^2.2.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/aws-sdk": "^2.7.0", - "@types/node": "^8.0.0", - "@types/node-fetch": "=2.1.2" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/nlb/fargate/package.json b/examples_legacy/nlb/fargate/package.json index bd7697343..4b744ee74 100644 --- a/examples_legacy/nlb/fargate/package.json +++ b/examples_legacy/nlb/fargate/package.json @@ -1,18 +1,19 @@ { - "name": "fargate", + "name": "nlb-fargate", "version": "0.0.1", "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0", "node-fetch": "^2.6.1", "redis": "^3.1.1" }, "devDependencies": { - "@types/node": "^8.0.0", + "@types/node": "^18.0.0", "@types/node-fetch": "^2.5.7" }, "peerDependencies": { diff --git a/examples_legacy/nlb/fargateShort/package.json b/examples_legacy/nlb/fargateShort/package.json index 85505e766..bb702c863 100644 --- a/examples_legacy/nlb/fargateShort/package.json +++ b/examples_legacy/nlb/fargateShort/package.json @@ -1,16 +1,17 @@ { - "name": "fargate", + "name": "nlb-fargate-short", "version": "0.0.1", "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/nlb/fargateShortInlineListener/package.json b/examples_legacy/nlb/fargateShortInlineListener/package.json index 85505e766..1821a65a5 100644 --- a/examples_legacy/nlb/fargateShortInlineListener/package.json +++ b/examples_legacy/nlb/fargateShortInlineListener/package.json @@ -1,16 +1,17 @@ { - "name": "fargate", + "name": "nlb-fargate-short-inline-listener", "version": "0.0.1", "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/trail/package.json b/examples_legacy/trail/package.json index 4807b3f02..9d19f5a5d 100644 --- a/examples_legacy/trail/package.json +++ b/examples_legacy/trail/package.json @@ -2,7 +2,8 @@ "name": "trail", "dependencies": { "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest" }, "devDependencies": { "@types/node": "^10.0.0" diff --git a/examples_legacy/vpc/package.json b/examples_legacy/vpc/package.json index a675bdbb6..89373269c 100644 --- a/examples_legacy/vpc/package.json +++ b/examples_legacy/vpc/package.json @@ -6,12 +6,13 @@ "build": "tsc" }, "dependencies": { + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0", "@pulumi/random": "^4.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/examples_legacy/vpcIgnoreSubnetChanges/package.json b/examples_legacy/vpcIgnoreSubnetChanges/package.json index 8267617f2..0c978f428 100644 --- a/examples_legacy/vpcIgnoreSubnetChanges/package.json +++ b/examples_legacy/vpcIgnoreSubnetChanges/package.json @@ -1,16 +1,17 @@ { - "name": "vpc", + "name": "vpc-ignore-subnet-changes", "version": "0.0.1", "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { - "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "@pulumi/aws": "7.0.0-alpha.2", + "@pulumi/awsx": "latest", + "@pulumi/pulumi": "^3.0.0" }, "devDependencies": { - "@types/node": "^8.0.0" + "@types/node": "^18.0.0" }, "peerDependencies": { "@pulumi/awsx": "latest" diff --git a/provider/cmd/pulumi-resource-awsx/schema.json b/provider/cmd/pulumi-resource-awsx/schema.json index d08d6269f..78d22b818 100644 --- a/provider/cmd/pulumi-resource-awsx/schema.json +++ b/provider/cmd/pulumi-resource-awsx/schema.json @@ -18,7 +18,7 @@ "liftSingleValueMethodReturns": true, "packageReferences": { "Pulumi": "3.*", - "Pulumi.Aws": "6.*", + "Pulumi.Aws": "7.0.0-alpha.2", "Pulumi.Docker": "4.*", "Pulumi.DockerBuild": "0.*" }, @@ -36,7 +36,7 @@ }, "java": { "dependencies": { - "com.pulumi:aws": "6.66.3", + "com.pulumi:aws": "7.0.0-alpha.2", "com.pulumi:docker": "4.6.0", "com.pulumi:docker-build": "0.0.8" } @@ -44,7 +44,7 @@ "nodejs": { "dependencies": { "@aws-sdk/client-ecs": "^3.405.0", - "@pulumi/aws": "^6.66.3", + "@pulumi/aws": "7.0.0-alpha.2", "@pulumi/docker": "^4.6.0", "@pulumi/docker-build": "^0.0.8", "@types/aws-lambda": "^8.10.23", @@ -65,7 +65,7 @@ }, "readme": "Pulumi Amazon Web Services (AWS) AWSX Components.", "requires": { - "pulumi-aws": "\u003e=6.0.4,\u003c7.0.0", + "pulumi-aws": "\u003e=7.0.0-alpha.2,\u003c8.0.0", "pulumi-docker": "\u003e=4.6.0,\u003c5.0.0", "pulumi-docker-build": "\u003e=0.0.8,\u003c1.0.0" }, @@ -80,19 +80,16 @@ "properties": { "accelerationStatus": { "type": "string", - "description": "Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`.\n" + "description": "Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided.\nUse the resource `aws.s3.BucketAccelerateConfiguration` instead.\n", + "deprecationMessage": "acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead." }, "acl": { "type": "string", - "description": "The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`.\n" - }, - "arn": { - "type": "string", - "description": "The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`.\n" + "description": "The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead.\n" }, "bucket": { "type": "string", - "description": "The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html).\n", + "description": "Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets.\n", "language": { "csharp": { "name": "BucketName" @@ -108,81 +105,85 @@ "corsRules": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:s3/BucketCorsRule:BucketCorsRule" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:s3/BucketCorsRule:BucketCorsRule" }, - "description": "A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below).\n" + "description": "Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead.\n", + "deprecationMessage": "cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead." }, "forceDestroy": { "type": "boolean", - "description": "A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable.\n" + "description": "Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation.\n" }, "grants": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:s3/BucketGrant:BucketGrant" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:s3/BucketGrant:BucketGrant" }, - "description": "An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`.\n" - }, - "hostedZoneId": { - "type": "string", - "description": "The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region.\n" + "description": "An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead.\n", + "deprecationMessage": "grant is deprecated. Use the aws.s3.BucketAcl resource instead." }, "lifecycleRules": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:s3/BucketLifecycleRule:BucketLifecycleRule" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:s3/BucketLifecycleRule:BucketLifecycleRule" }, - "description": "A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below).\n" + "description": "Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided.\nUse the resource `aws.s3.BucketLifecycleConfiguration` instead.\n", + "deprecationMessage": "lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead." }, - "loggings": { - "type": "array", - "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:s3/BucketLogging:BucketLogging" - }, - "description": "A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below).\n" + "logging": { + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:s3/BucketLogging:BucketLogging", + "description": "Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided.\nUse the resource `aws.s3.BucketLogging` instead.\n", + "deprecationMessage": "logging is deprecated. Use the aws.s3.BucketLogging resource instead." }, "objectLockConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:s3/BucketObjectLockConfiguration:BucketObjectLockConfiguration", - "description": "A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below)\n\n\u003e **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1`\n" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:s3/BucketObjectLockConfiguration:BucketObjectLockConfiguration", + "description": "Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details.\nThe provider wil only perform drift detection if a configuration value is provided.\nUse the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead.\n", + "deprecationMessage": "object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead." + }, + "objectLockEnabled": { + "type": "boolean", + "description": "Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions.\n", + "willReplaceOnChanges": true }, "policy": { "type": "string", - "description": "A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy.\n" + "description": "Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide.\nThe provider will only perform drift detection if a configuration value is provided.\nUse the resource `aws.s3.BucketPolicy` instead.\n" + }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" }, "replicationConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:s3/BucketReplicationConfiguration:BucketReplicationConfiguration", - "description": "A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below).\n" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:s3/BucketReplicationConfiguration:BucketReplicationConfiguration", + "description": "Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided.\nUse the resource `aws.s3.BucketReplicationConfig` instead.\n", + "deprecationMessage": "replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead." }, "requestPayer": { "type": "string", - "description": "Specifies who should bear the cost of Amazon S3 data transfer.\nCan be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur\nthe costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html)\ndeveloper guide for more information.\n" + "description": "Specifies who should bear the cost of Amazon S3 data transfer.\nCan be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer.\nSee [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information.\nThe provider will only perform drift detection if a configuration value is provided.\nUse the resource `aws.s3.BucketRequestPaymentConfiguration` instead.\n", + "deprecationMessage": "request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead." }, "serverSideEncryptionConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:s3/BucketServerSideEncryptionConfiguration:BucketServerSideEncryptionConfiguration", - "description": "A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below)\n" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:s3/BucketServerSideEncryptionConfiguration:BucketServerSideEncryptionConfiguration", + "description": "Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details.\nThe provider will only perform drift detection if a configuration value is provided.\nUse the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead.\n", + "deprecationMessage": "server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead." }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + "description": "Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n\nThe following arguments are deprecated, and will be removed in a future major version:\n" }, "versioning": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:s3/BucketVersioning:BucketVersioning", - "description": "A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below)\n" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:s3/BucketVersioning:BucketVersioning", + "description": "Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead.\n", + "deprecationMessage": "versioning is deprecated. Use the aws.s3.BucketVersioning resource instead." }, "website": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:s3/BucketWebsite:BucketWebsite", - "description": "A website object (documented below).\n" - }, - "websiteDomain": { - "type": "string", - "description": "The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records.\n" - }, - "websiteEndpoint": { - "type": "string", - "description": "The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.\n" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:s3/BucketWebsite:BucketWebsite", + "description": "Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided.\nUse the resource `aws.s3.BucketWebsiteConfiguration` instead.\n", + "deprecationMessage": "website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead." } }, "type": "object" @@ -323,6 +324,10 @@ "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n", "willReplaceOnChanges": true }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "retentionInDays": { "type": "integer", "description": "Specifies the number of days\nyou want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0.\nIf you select 0, the events in the log group are always retained and never expire.\n" @@ -408,7 +413,7 @@ "inlinePolicies": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:iam/RoleInlinePolicy:RoleInlinePolicy" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:iam/RoleInlinePolicy:RoleInlinePolicy" }, "description": "Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, Pulumi will not manage any inline policies in this resource. Configuring one empty block (i.e., `inline_policy {}`) will cause Pulumi to remove _all_ inline policies added out of band on `apply`.\n" }, @@ -473,14 +478,14 @@ "egress": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ec2/SecurityGroupEgress:SecurityGroupEgress" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ec2/SecurityGroupEgress:SecurityGroupEgress" }, "description": "Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode.\n" }, "ingress": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ec2/SecurityGroupIngress:SecurityGroupIngress" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ec2/SecurityGroupIngress:SecurityGroupIngress" }, "description": "Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode.\n" }, @@ -494,6 +499,10 @@ "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n", "willReplaceOnChanges": true }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "revokeRulesOnDelete": { "type": "boolean", "description": "Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`.\n" @@ -696,7 +705,7 @@ ] }, "awsx:ec2:VpcEndpointSpec": { - "description": "Provides a VPC Endpoint resource.\n\n\u003e **NOTE on VPC Endpoints and VPC Endpoint Associations:** The provider provides both standalone VPC Endpoint Associations for\nRoute Tables - (an association between a VPC endpoint and a single `route_table_id`),\nSecurity Groups - (an association between a VPC endpoint and a single `security_group_id`),\nand Subnets - (an association between a VPC endpoint and a single `subnet_id`) and\na VPC Endpoint resource with `route_table_ids` and `subnet_ids` attributes.\nDo not use the same resource ID in both a VPC Endpoint resource and a VPC Endpoint Association resource.\nDoing so will cause a conflict of associations and will overwrite the association.\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst s3 = new aws.ec2.VpcEndpoint(\"s3\", {\n vpcId: main.id,\n serviceName: \"com.amazonaws.us-west-2.s3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ns3 = aws.ec2.VpcEndpoint(\"s3\",\n vpc_id=main[\"id\"],\n service_name=\"com.amazonaws.us-west-2.s3\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var s3 = new Aws.Ec2.VpcEndpoint(\"s3\", new()\n {\n VpcId = main.Id,\n ServiceName = \"com.amazonaws.us-west-2.s3\",\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.NewVpcEndpoint(ctx, \"s3\", \u0026ec2.VpcEndpointArgs{\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tServiceName: pulumi.String(\"com.amazonaws.us-west-2.s3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\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.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var s3 = new VpcEndpoint(\"s3\", VpcEndpointArgs.builder()\n .vpcId(main.id())\n .serviceName(\"com.amazonaws.us-west-2.s3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n s3:\n type: aws:ec2:VpcEndpoint\n properties:\n vpcId: ${main.id}\n serviceName: com.amazonaws.us-west-2.s3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic w/ Tags\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst s3 = new aws.ec2.VpcEndpoint(\"s3\", {\n vpcId: main.id,\n serviceName: \"com.amazonaws.us-west-2.s3\",\n tags: {\n Environment: \"test\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ns3 = aws.ec2.VpcEndpoint(\"s3\",\n vpc_id=main[\"id\"],\n service_name=\"com.amazonaws.us-west-2.s3\",\n tags={\n \"Environment\": \"test\",\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 s3 = new Aws.Ec2.VpcEndpoint(\"s3\", new()\n {\n VpcId = main.Id,\n ServiceName = \"com.amazonaws.us-west-2.s3\",\n Tags = \n {\n { \"Environment\", \"test\" },\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.NewVpcEndpoint(ctx, \"s3\", \u0026ec2.VpcEndpointArgs{\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tServiceName: pulumi.String(\"com.amazonaws.us-west-2.s3\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"test\"),\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.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var s3 = new VpcEndpoint(\"s3\", VpcEndpointArgs.builder()\n .vpcId(main.id())\n .serviceName(\"com.amazonaws.us-west-2.s3\")\n .tags(Map.of(\"Environment\", \"test\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n s3:\n type: aws:ec2:VpcEndpoint\n properties:\n vpcId: ${main.id}\n serviceName: com.amazonaws.us-west-2.s3\n tags:\n Environment: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Interface Endpoint Type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ec2 = new aws.ec2.VpcEndpoint(\"ec2\", {\n vpcId: main.id,\n serviceName: \"com.amazonaws.us-west-2.ec2\",\n vpcEndpointType: \"Interface\",\n securityGroupIds: [sg1.id],\n privateDnsEnabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nec2 = aws.ec2.VpcEndpoint(\"ec2\",\n vpc_id=main[\"id\"],\n service_name=\"com.amazonaws.us-west-2.ec2\",\n vpc_endpoint_type=\"Interface\",\n security_group_ids=[sg1[\"id\"]],\n private_dns_enabled=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 ec2 = new Aws.Ec2.VpcEndpoint(\"ec2\", new()\n {\n VpcId = main.Id,\n ServiceName = \"com.amazonaws.us-west-2.ec2\",\n VpcEndpointType = \"Interface\",\n SecurityGroupIds = new[]\n {\n sg1.Id,\n },\n PrivateDnsEnabled = true,\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.NewVpcEndpoint(ctx, \"ec2\", \u0026ec2.VpcEndpointArgs{\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tServiceName: pulumi.String(\"com.amazonaws.us-west-2.ec2\"),\n\t\t\tVpcEndpointType: pulumi.String(\"Interface\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tsg1.Id,\n\t\t\t},\n\t\t\tPrivateDnsEnabled: 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.ec2.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ec2 = new VpcEndpoint(\"ec2\", VpcEndpointArgs.builder()\n .vpcId(main.id())\n .serviceName(\"com.amazonaws.us-west-2.ec2\")\n .vpcEndpointType(\"Interface\")\n .securityGroupIds(sg1.id())\n .privateDnsEnabled(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ec2:\n type: aws:ec2:VpcEndpoint\n properties:\n vpcId: ${main.id}\n serviceName: com.amazonaws.us-west-2.ec2\n vpcEndpointType: Interface\n securityGroupIds:\n - ${sg1.id}\n privateDnsEnabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Interface Endpoint Type with User-Defined IP Address\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ec2 = new aws.ec2.VpcEndpoint(\"ec2\", {\n vpcId: example.id,\n serviceName: \"com.amazonaws.us-west-2.ec2\",\n vpcEndpointType: \"Interface\",\n subnetConfigurations: [\n {\n ipv4: \"10.0.1.10\",\n subnetId: example1.id,\n },\n {\n ipv4: \"10.0.2.10\",\n subnetId: example2.id,\n },\n ],\n subnetIds: [\n example1.id,\n example2.id,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nec2 = aws.ec2.VpcEndpoint(\"ec2\",\n vpc_id=example[\"id\"],\n service_name=\"com.amazonaws.us-west-2.ec2\",\n vpc_endpoint_type=\"Interface\",\n subnet_configurations=[\n {\n \"ipv4\": \"10.0.1.10\",\n \"subnet_id\": example1[\"id\"],\n },\n {\n \"ipv4\": \"10.0.2.10\",\n \"subnet_id\": example2[\"id\"],\n },\n ],\n subnet_ids=[\n example1[\"id\"],\n example2[\"id\"],\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 ec2 = new Aws.Ec2.VpcEndpoint(\"ec2\", new()\n {\n VpcId = example.Id,\n ServiceName = \"com.amazonaws.us-west-2.ec2\",\n VpcEndpointType = \"Interface\",\n SubnetConfigurations = new[]\n {\n new Aws.Ec2.Inputs.VpcEndpointSubnetConfigurationArgs\n {\n Ipv4 = \"10.0.1.10\",\n SubnetId = example1.Id,\n },\n new Aws.Ec2.Inputs.VpcEndpointSubnetConfigurationArgs\n {\n Ipv4 = \"10.0.2.10\",\n SubnetId = example2.Id,\n },\n },\n SubnetIds = new[]\n {\n example1.Id,\n example2.Id,\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.NewVpcEndpoint(ctx, \"ec2\", \u0026ec2.VpcEndpointArgs{\n\t\t\tVpcId: pulumi.Any(example.Id),\n\t\t\tServiceName: pulumi.String(\"com.amazonaws.us-west-2.ec2\"),\n\t\t\tVpcEndpointType: pulumi.String(\"Interface\"),\n\t\t\tSubnetConfigurations: ec2.VpcEndpointSubnetConfigurationArray{\n\t\t\t\t\u0026ec2.VpcEndpointSubnetConfigurationArgs{\n\t\t\t\t\tIpv4: pulumi.String(\"10.0.1.10\"),\n\t\t\t\t\tSubnetId: pulumi.Any(example1.Id),\n\t\t\t\t},\n\t\t\t\t\u0026ec2.VpcEndpointSubnetConfigurationArgs{\n\t\t\t\t\tIpv4: pulumi.String(\"10.0.2.10\"),\n\t\t\t\t\tSubnetId: pulumi.Any(example2.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\texample1.Id,\n\t\t\t\texample2.Id,\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.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport com.pulumi.aws.ec2.inputs.VpcEndpointSubnetConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ec2 = new VpcEndpoint(\"ec2\", VpcEndpointArgs.builder()\n .vpcId(example.id())\n .serviceName(\"com.amazonaws.us-west-2.ec2\")\n .vpcEndpointType(\"Interface\")\n .subnetConfigurations( \n VpcEndpointSubnetConfigurationArgs.builder()\n .ipv4(\"10.0.1.10\")\n .subnetId(example1.id())\n .build(),\n VpcEndpointSubnetConfigurationArgs.builder()\n .ipv4(\"10.0.2.10\")\n .subnetId(example2.id())\n .build())\n .subnetIds( \n example1.id(),\n example2.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ec2:\n type: aws:ec2:VpcEndpoint\n properties:\n vpcId: ${example.id}\n serviceName: com.amazonaws.us-west-2.ec2\n vpcEndpointType: Interface\n subnetConfigurations:\n - ipv4: 10.0.1.10\n subnetId: ${example1.id}\n - ipv4: 10.0.2.10\n subnetId: ${example2.id}\n subnetIds:\n - ${example1.id}\n - ${example2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Gateway Load Balancer Endpoint Type\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 example = new aws.ec2.VpcEndpointService(\"example\", {\n acceptanceRequired: false,\n allowedPrincipals: [current.then(current =\u003e current.arn)],\n gatewayLoadBalancerArns: [exampleAwsLb.arn],\n});\nconst exampleVpcEndpoint = new aws.ec2.VpcEndpoint(\"example\", {\n serviceName: example.serviceName,\n subnetIds: [exampleAwsSubnet.id],\n vpcEndpointType: example.serviceType,\n vpcId: exampleAwsVpc.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_caller_identity()\nexample = aws.ec2.VpcEndpointService(\"example\",\n acceptance_required=False,\n allowed_principals=[current.arn],\n gateway_load_balancer_arns=[example_aws_lb[\"arn\"]])\nexample_vpc_endpoint = aws.ec2.VpcEndpoint(\"example\",\n service_name=example.service_name,\n subnet_ids=[example_aws_subnet[\"id\"]],\n vpc_endpoint_type=example.service_type,\n vpc_id=example_aws_vpc[\"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 current = Aws.GetCallerIdentity.Invoke();\n\n var example = new Aws.Ec2.VpcEndpointService(\"example\", new()\n {\n AcceptanceRequired = false,\n AllowedPrincipals = new[]\n {\n current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.Arn),\n },\n GatewayLoadBalancerArns = new[]\n {\n exampleAwsLb.Arn,\n },\n });\n\n var exampleVpcEndpoint = new Aws.Ec2.VpcEndpoint(\"example\", new()\n {\n ServiceName = example.ServiceName,\n SubnetIds = new[]\n {\n exampleAwsSubnet.Id,\n },\n VpcEndpointType = example.ServiceType,\n VpcId = exampleAwsVpc.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/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\tcurrent, err := aws.GetCallerIdentity(ctx, \u0026aws.GetCallerIdentityArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := ec2.NewVpcEndpointService(ctx, \"example\", \u0026ec2.VpcEndpointServiceArgs{\n\t\t\tAcceptanceRequired: pulumi.Bool(false),\n\t\t\tAllowedPrincipals: pulumi.StringArray{\n\t\t\t\tpulumi.String(current.Arn),\n\t\t\t},\n\t\t\tGatewayLoadBalancerArns: pulumi.StringArray{\n\t\t\t\texampleAwsLb.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewVpcEndpoint(ctx, \"example\", \u0026ec2.VpcEndpointArgs{\n\t\t\tServiceName: example.ServiceName,\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\texampleAwsSubnet.Id,\n\t\t\t},\n\t\t\tVpcEndpointType: example.ServiceType,\n\t\t\tVpcId: pulumi.Any(exampleAwsVpc.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.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.ec2.VpcEndpointService;\nimport com.pulumi.aws.ec2.VpcEndpointServiceArgs;\nimport com.pulumi.aws.ec2.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 var example = new VpcEndpointService(\"example\", VpcEndpointServiceArgs.builder()\n .acceptanceRequired(false)\n .allowedPrincipals(current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.arn()))\n .gatewayLoadBalancerArns(exampleAwsLb.arn())\n .build());\n\n var exampleVpcEndpoint = new VpcEndpoint(\"exampleVpcEndpoint\", VpcEndpointArgs.builder()\n .serviceName(example.serviceName())\n .subnetIds(exampleAwsSubnet.id())\n .vpcEndpointType(example.serviceType())\n .vpcId(exampleAwsVpc.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2:VpcEndpointService\n properties:\n acceptanceRequired: false\n allowedPrincipals:\n - ${current.arn}\n gatewayLoadBalancerArns:\n - ${exampleAwsLb.arn}\n exampleVpcEndpoint:\n type: aws:ec2:VpcEndpoint\n name: example\n properties:\n serviceName: ${example.serviceName}\n subnetIds:\n - ${exampleAwsSubnet.id}\n vpcEndpointType: ${example.serviceType}\n vpcId: ${exampleAwsVpc.id}\nvariables:\n current:\n fn::invoke:\n function: aws:getCallerIdentity\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example:\n\n```sh\n$ pulumi import aws:ec2/vpcEndpoint:VpcEndpoint endpoint1 vpce-3ecf2a57\n```\n", + "description": "Provides a VPC Endpoint resource.\n\n\u003e **NOTE on VPC Endpoints and VPC Endpoint Associations:** The provider provides both standalone VPC Endpoint Associations for\nRoute Tables - (an association between a VPC endpoint and a single `route_table_id`),\nSecurity Groups - (an association between a VPC endpoint and a single `security_group_id`),\nand Subnets - (an association between a VPC endpoint and a single `subnet_id`) and\na VPC Endpoint resource with `route_table_ids` and `subnet_ids` attributes.\nDo not use the same resource ID in both a VPC Endpoint resource and a VPC Endpoint Association resource.\nDoing so will cause a conflict of associations and will overwrite the association.\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst s3 = new aws.ec2.VpcEndpoint(\"s3\", {\n vpcId: main.id,\n serviceName: \"com.amazonaws.us-west-2.s3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ns3 = aws.ec2.VpcEndpoint(\"s3\",\n vpc_id=main[\"id\"],\n service_name=\"com.amazonaws.us-west-2.s3\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var s3 = new Aws.Ec2.VpcEndpoint(\"s3\", new()\n {\n VpcId = main.Id,\n ServiceName = \"com.amazonaws.us-west-2.s3\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/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.NewVpcEndpoint(ctx, \"s3\", \u0026ec2.VpcEndpointArgs{\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tServiceName: pulumi.String(\"com.amazonaws.us-west-2.s3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\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.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var s3 = new VpcEndpoint(\"s3\", VpcEndpointArgs.builder()\n .vpcId(main.id())\n .serviceName(\"com.amazonaws.us-west-2.s3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n s3:\n type: aws:ec2:VpcEndpoint\n properties:\n vpcId: ${main.id}\n serviceName: com.amazonaws.us-west-2.s3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic w/ Tags\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst s3 = new aws.ec2.VpcEndpoint(\"s3\", {\n vpcId: main.id,\n serviceName: \"com.amazonaws.us-west-2.s3\",\n tags: {\n Environment: \"test\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ns3 = aws.ec2.VpcEndpoint(\"s3\",\n vpc_id=main[\"id\"],\n service_name=\"com.amazonaws.us-west-2.s3\",\n tags={\n \"Environment\": \"test\",\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 s3 = new Aws.Ec2.VpcEndpoint(\"s3\", new()\n {\n VpcId = main.Id,\n ServiceName = \"com.amazonaws.us-west-2.s3\",\n Tags = \n {\n { \"Environment\", \"test\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/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.NewVpcEndpoint(ctx, \"s3\", \u0026ec2.VpcEndpointArgs{\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tServiceName: pulumi.String(\"com.amazonaws.us-west-2.s3\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"test\"),\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.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var s3 = new VpcEndpoint(\"s3\", VpcEndpointArgs.builder()\n .vpcId(main.id())\n .serviceName(\"com.amazonaws.us-west-2.s3\")\n .tags(Map.of(\"Environment\", \"test\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n s3:\n type: aws:ec2:VpcEndpoint\n properties:\n vpcId: ${main.id}\n serviceName: com.amazonaws.us-west-2.s3\n tags:\n Environment: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Interface Endpoint Type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ec2 = new aws.ec2.VpcEndpoint(\"ec2\", {\n vpcId: main.id,\n serviceName: \"com.amazonaws.us-west-2.ec2\",\n vpcEndpointType: \"Interface\",\n securityGroupIds: [sg1.id],\n privateDnsEnabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nec2 = aws.ec2.VpcEndpoint(\"ec2\",\n vpc_id=main[\"id\"],\n service_name=\"com.amazonaws.us-west-2.ec2\",\n vpc_endpoint_type=\"Interface\",\n security_group_ids=[sg1[\"id\"]],\n private_dns_enabled=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 ec2 = new Aws.Ec2.VpcEndpoint(\"ec2\", new()\n {\n VpcId = main.Id,\n ServiceName = \"com.amazonaws.us-west-2.ec2\",\n VpcEndpointType = \"Interface\",\n SecurityGroupIds = new[]\n {\n sg1.Id,\n },\n PrivateDnsEnabled = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/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.NewVpcEndpoint(ctx, \"ec2\", \u0026ec2.VpcEndpointArgs{\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tServiceName: pulumi.String(\"com.amazonaws.us-west-2.ec2\"),\n\t\t\tVpcEndpointType: pulumi.String(\"Interface\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tsg1.Id,\n\t\t\t},\n\t\t\tPrivateDnsEnabled: 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.ec2.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ec2 = new VpcEndpoint(\"ec2\", VpcEndpointArgs.builder()\n .vpcId(main.id())\n .serviceName(\"com.amazonaws.us-west-2.ec2\")\n .vpcEndpointType(\"Interface\")\n .securityGroupIds(sg1.id())\n .privateDnsEnabled(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ec2:\n type: aws:ec2:VpcEndpoint\n properties:\n vpcId: ${main.id}\n serviceName: com.amazonaws.us-west-2.ec2\n vpcEndpointType: Interface\n securityGroupIds:\n - ${sg1.id}\n privateDnsEnabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Interface Endpoint Type with User-Defined IP Address\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ec2 = new aws.ec2.VpcEndpoint(\"ec2\", {\n vpcId: example.id,\n serviceName: \"com.amazonaws.us-west-2.ec2\",\n vpcEndpointType: \"Interface\",\n subnetConfigurations: [\n {\n ipv4: \"10.0.1.10\",\n subnetId: example1.id,\n },\n {\n ipv4: \"10.0.2.10\",\n subnetId: example2.id,\n },\n ],\n subnetIds: [\n example1.id,\n example2.id,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nec2 = aws.ec2.VpcEndpoint(\"ec2\",\n vpc_id=example[\"id\"],\n service_name=\"com.amazonaws.us-west-2.ec2\",\n vpc_endpoint_type=\"Interface\",\n subnet_configurations=[\n {\n \"ipv4\": \"10.0.1.10\",\n \"subnet_id\": example1[\"id\"],\n },\n {\n \"ipv4\": \"10.0.2.10\",\n \"subnet_id\": example2[\"id\"],\n },\n ],\n subnet_ids=[\n example1[\"id\"],\n example2[\"id\"],\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 ec2 = new Aws.Ec2.VpcEndpoint(\"ec2\", new()\n {\n VpcId = example.Id,\n ServiceName = \"com.amazonaws.us-west-2.ec2\",\n VpcEndpointType = \"Interface\",\n SubnetConfigurations = new[]\n {\n new Aws.Ec2.Inputs.VpcEndpointSubnetConfigurationArgs\n {\n Ipv4 = \"10.0.1.10\",\n SubnetId = example1.Id,\n },\n new Aws.Ec2.Inputs.VpcEndpointSubnetConfigurationArgs\n {\n Ipv4 = \"10.0.2.10\",\n SubnetId = example2.Id,\n },\n },\n SubnetIds = new[]\n {\n example1.Id,\n example2.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/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.NewVpcEndpoint(ctx, \"ec2\", \u0026ec2.VpcEndpointArgs{\n\t\t\tVpcId: pulumi.Any(example.Id),\n\t\t\tServiceName: pulumi.String(\"com.amazonaws.us-west-2.ec2\"),\n\t\t\tVpcEndpointType: pulumi.String(\"Interface\"),\n\t\t\tSubnetConfigurations: ec2.VpcEndpointSubnetConfigurationArray{\n\t\t\t\t\u0026ec2.VpcEndpointSubnetConfigurationArgs{\n\t\t\t\t\tIpv4: pulumi.String(\"10.0.1.10\"),\n\t\t\t\t\tSubnetId: pulumi.Any(example1.Id),\n\t\t\t\t},\n\t\t\t\t\u0026ec2.VpcEndpointSubnetConfigurationArgs{\n\t\t\t\t\tIpv4: pulumi.String(\"10.0.2.10\"),\n\t\t\t\t\tSubnetId: pulumi.Any(example2.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\texample1.Id,\n\t\t\t\texample2.Id,\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.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport com.pulumi.aws.ec2.inputs.VpcEndpointSubnetConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ec2 = new VpcEndpoint(\"ec2\", VpcEndpointArgs.builder()\n .vpcId(example.id())\n .serviceName(\"com.amazonaws.us-west-2.ec2\")\n .vpcEndpointType(\"Interface\")\n .subnetConfigurations( \n VpcEndpointSubnetConfigurationArgs.builder()\n .ipv4(\"10.0.1.10\")\n .subnetId(example1.id())\n .build(),\n VpcEndpointSubnetConfigurationArgs.builder()\n .ipv4(\"10.0.2.10\")\n .subnetId(example2.id())\n .build())\n .subnetIds( \n example1.id(),\n example2.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ec2:\n type: aws:ec2:VpcEndpoint\n properties:\n vpcId: ${example.id}\n serviceName: com.amazonaws.us-west-2.ec2\n vpcEndpointType: Interface\n subnetConfigurations:\n - ipv4: 10.0.1.10\n subnetId: ${example1.id}\n - ipv4: 10.0.2.10\n subnetId: ${example2.id}\n subnetIds:\n - ${example1.id}\n - ${example2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Gateway Load Balancer Endpoint Type\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 example = new aws.ec2.VpcEndpointService(\"example\", {\n acceptanceRequired: false,\n allowedPrincipals: [current.then(current =\u003e current.arn)],\n gatewayLoadBalancerArns: [exampleAwsLb.arn],\n});\nconst exampleVpcEndpoint = new aws.ec2.VpcEndpoint(\"example\", {\n serviceName: example.serviceName,\n subnetIds: [exampleAwsSubnet.id],\n vpcEndpointType: example.serviceType,\n vpcId: exampleAwsVpc.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_caller_identity()\nexample = aws.ec2.VpcEndpointService(\"example\",\n acceptance_required=False,\n allowed_principals=[current.arn],\n gateway_load_balancer_arns=[example_aws_lb[\"arn\"]])\nexample_vpc_endpoint = aws.ec2.VpcEndpoint(\"example\",\n service_name=example.service_name,\n subnet_ids=[example_aws_subnet[\"id\"]],\n vpc_endpoint_type=example.service_type,\n vpc_id=example_aws_vpc[\"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 current = Aws.GetCallerIdentity.Invoke();\n\n var example = new Aws.Ec2.VpcEndpointService(\"example\", new()\n {\n AcceptanceRequired = false,\n AllowedPrincipals = new[]\n {\n current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.Arn),\n },\n GatewayLoadBalancerArns = new[]\n {\n exampleAwsLb.Arn,\n },\n });\n\n var exampleVpcEndpoint = new Aws.Ec2.VpcEndpoint(\"example\", new()\n {\n ServiceName = example.ServiceName,\n SubnetIds = new[]\n {\n exampleAwsSubnet.Id,\n },\n VpcEndpointType = example.ServiceType,\n VpcId = exampleAwsVpc.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/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\tcurrent, err := aws.GetCallerIdentity(ctx, \u0026aws.GetCallerIdentityArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := ec2.NewVpcEndpointService(ctx, \"example\", \u0026ec2.VpcEndpointServiceArgs{\n\t\t\tAcceptanceRequired: pulumi.Bool(false),\n\t\t\tAllowedPrincipals: pulumi.StringArray{\n\t\t\t\tpulumi.String(current.Arn),\n\t\t\t},\n\t\t\tGatewayLoadBalancerArns: pulumi.StringArray{\n\t\t\t\texampleAwsLb.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewVpcEndpoint(ctx, \"example\", \u0026ec2.VpcEndpointArgs{\n\t\t\tServiceName: example.ServiceName,\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\texampleAwsSubnet.Id,\n\t\t\t},\n\t\t\tVpcEndpointType: example.ServiceType,\n\t\t\tVpcId: pulumi.Any(exampleAwsVpc.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.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.ec2.VpcEndpointService;\nimport com.pulumi.aws.ec2.VpcEndpointServiceArgs;\nimport com.pulumi.aws.ec2.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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(GetCallerIdentityArgs.builder()\n .build());\n\n var example = new VpcEndpointService(\"example\", VpcEndpointServiceArgs.builder()\n .acceptanceRequired(false)\n .allowedPrincipals(current.arn())\n .gatewayLoadBalancerArns(exampleAwsLb.arn())\n .build());\n\n var exampleVpcEndpoint = new VpcEndpoint(\"exampleVpcEndpoint\", VpcEndpointArgs.builder()\n .serviceName(example.serviceName())\n .subnetIds(exampleAwsSubnet.id())\n .vpcEndpointType(example.serviceType())\n .vpcId(exampleAwsVpc.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2:VpcEndpointService\n properties:\n acceptanceRequired: false\n allowedPrincipals:\n - ${current.arn}\n gatewayLoadBalancerArns:\n - ${exampleAwsLb.arn}\n exampleVpcEndpoint:\n type: aws:ec2:VpcEndpoint\n name: example\n properties:\n serviceName: ${example.serviceName}\n subnetIds:\n - ${exampleAwsSubnet.id}\n vpcEndpointType: ${example.serviceType}\n vpcId: ${exampleAwsVpc.id}\nvariables:\n current:\n fn::invoke:\n function: aws:getCallerIdentity\n arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### VPC Lattice Resource Configuration Endpoint Type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ec2.VpcEndpoint(\"example\", {\n resourceConfigurationArn: exampleAwsVpclatticeResourceConfiguration.arn,\n subnetIds: [exampleAwsSubnet.id],\n vpcEndpointType: \"Resource\",\n vpcId: exampleAwsVpc.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2.VpcEndpoint(\"example\",\n resource_configuration_arn=example_aws_vpclattice_resource_configuration[\"arn\"],\n subnet_ids=[example_aws_subnet[\"id\"]],\n vpc_endpoint_type=\"Resource\",\n vpc_id=example_aws_vpc[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ec2.VpcEndpoint(\"example\", new()\n {\n ResourceConfigurationArn = exampleAwsVpclatticeResourceConfiguration.Arn,\n SubnetIds = new[]\n {\n exampleAwsSubnet.Id,\n },\n VpcEndpointType = \"Resource\",\n VpcId = exampleAwsVpc.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/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.NewVpcEndpoint(ctx, \"example\", \u0026ec2.VpcEndpointArgs{\n\t\t\tResourceConfigurationArn: pulumi.Any(exampleAwsVpclatticeResourceConfiguration.Arn),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\texampleAwsSubnet.Id,\n\t\t\t},\n\t\t\tVpcEndpointType: pulumi.String(\"Resource\"),\n\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class 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 VpcEndpoint(\"example\", VpcEndpointArgs.builder()\n .resourceConfigurationArn(exampleAwsVpclatticeResourceConfiguration.arn())\n .subnetIds(exampleAwsSubnet.id())\n .vpcEndpointType(\"Resource\")\n .vpcId(exampleAwsVpc.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2:VpcEndpoint\n properties:\n resourceConfigurationArn: ${exampleAwsVpclatticeResourceConfiguration.arn}\n subnetIds:\n - ${exampleAwsSubnet.id}\n vpcEndpointType: Resource\n vpcId: ${exampleAwsVpc.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### VPC Lattice Service Network Endpoint Type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ec2.VpcEndpoint(\"example\", {\n serviceNetworkArn: exampleAwsVpclatticeServiceNetwork.arn,\n subnetIds: [exampleAwsSubnet.id],\n vpcEndpointType: \"ServiceNetwork\",\n vpcId: exampleAwsVpc.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2.VpcEndpoint(\"example\",\n service_network_arn=example_aws_vpclattice_service_network[\"arn\"],\n subnet_ids=[example_aws_subnet[\"id\"]],\n vpc_endpoint_type=\"ServiceNetwork\",\n vpc_id=example_aws_vpc[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ec2.VpcEndpoint(\"example\", new()\n {\n ServiceNetworkArn = exampleAwsVpclatticeServiceNetwork.Arn,\n SubnetIds = new[]\n {\n exampleAwsSubnet.Id,\n },\n VpcEndpointType = \"ServiceNetwork\",\n VpcId = exampleAwsVpc.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/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.NewVpcEndpoint(ctx, \"example\", \u0026ec2.VpcEndpointArgs{\n\t\t\tServiceNetworkArn: pulumi.Any(exampleAwsVpclatticeServiceNetwork.Arn),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\texampleAwsSubnet.Id,\n\t\t\t},\n\t\t\tVpcEndpointType: pulumi.String(\"ServiceNetwork\"),\n\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.VpcEndpoint;\nimport com.pulumi.aws.ec2.VpcEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class 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 VpcEndpoint(\"example\", VpcEndpointArgs.builder()\n .serviceNetworkArn(exampleAwsVpclatticeServiceNetwork.arn())\n .subnetIds(exampleAwsSubnet.id())\n .vpcEndpointType(\"ServiceNetwork\")\n .vpcId(exampleAwsVpc.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2:VpcEndpoint\n properties:\n serviceNetworkArn: ${exampleAwsVpclatticeServiceNetwork.arn}\n subnetIds:\n - ${exampleAwsSubnet.id}\n vpcEndpointType: ServiceNetwork\n vpcId: ${exampleAwsVpc.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example:\n\n```sh\n$ pulumi import aws:ec2/vpcEndpoint:VpcEndpoint endpoint1 vpce-3ecf2a57\n```\n", "properties": { "autoAccept": { "type": "boolean", @@ -704,7 +713,7 @@ "description": "Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account)." }, "dnsOptions": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ec2/VpcEndpointDnsOptions:VpcEndpointDnsOptions", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ec2/VpcEndpointDnsOptions:VpcEndpointDnsOptions", "description": "The DNS options for the endpoint. See dns_options below.\n" }, "ipAddressType": { @@ -720,6 +729,15 @@ "plain": true, "description": "Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. Defaults to `false`." }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, + "resourceConfigurationArn": { + "type": "string", + "description": "The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required.\n", + "willReplaceOnChanges": true + }, "routeTableIds": { "type": "array", "items": { @@ -739,6 +757,11 @@ "plain": true, "description": "The service name. For AWS services the service name is usually in the form `com.amazonaws.\u003cregion\u003e.\u003cservice\u003e` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker.\u003cregion\u003e.notebook`)." }, + "serviceNetworkArn": { + "type": "string", + "description": "The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required.\n", + "willReplaceOnChanges": true + }, "serviceRegion": { "type": "string", "description": "The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`.\n", @@ -747,7 +770,7 @@ "subnetConfigurations": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ec2/VpcEndpointSubnetConfiguration:VpcEndpointSubnetConfiguration" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ec2/VpcEndpointSubnetConfiguration:VpcEndpointSubnetConfiguration" }, "description": "Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnet_configuration below.\n" }, @@ -767,7 +790,7 @@ }, "vpcEndpointType": { "type": "string", - "description": "The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`.\n", + "description": "The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`.\n", "willReplaceOnChanges": true } }, @@ -930,8 +953,13 @@ "type": "string", "description": "The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions]" }, + "enableFaultInjection": { + "type": "boolean", + "description": "Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`.\n", + "willReplaceOnChanges": true + }, "ephemeralStorage": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", "description": "The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.\n", "willReplaceOnChanges": true }, @@ -944,14 +972,6 @@ "type": "string", "description": "An optional unique name for your task definition. If not specified, then a default will be created." }, - "inferenceAccelerators": { - "type": "array", - "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" - }, - "description": "Configuration block(s) with Inference Accelerators settings. Detailed below.\n", - "willReplaceOnChanges": true - }, "ipcMode": { "type": "string", "description": "IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`.\n", @@ -979,18 +999,22 @@ "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" }, "description": "Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below.\n", "willReplaceOnChanges": true }, "proxyConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", "description": "Configuration block for the App Mesh proxy. Detailed below.\n", "willReplaceOnChanges": true }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "runtimePlatform": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", "description": "Configuration block for runtime_platform that containers in your task may use.\n", "willReplaceOnChanges": true }, @@ -1017,9 +1041,9 @@ "volumes": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" }, - "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n", + "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n\n\u003e **NOTE:** Proper escaping is required for JSON field values containing quotes (`\"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\\"` in the JSON, e.g., `\"value\": \"I \\\"love\\\" escaped quotes\"`. If using a variable value, they should be escaped as `\\\\\\\"` in the variable, e.g., `value = \"I \\\\\\\"love\\\\\\\" escaped quotes\"` in the variable and `\"value\": \"${var.myvariable}\"` in the JSON.\n\n\u003e **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows.\n", "willReplaceOnChanges": true } }, @@ -1046,8 +1070,13 @@ "type": "string", "description": "The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions]" }, + "enableFaultInjection": { + "type": "boolean", + "description": "Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`.\n", + "willReplaceOnChanges": true + }, "ephemeralStorage": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", "description": "The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.\n", "willReplaceOnChanges": true }, @@ -1060,14 +1089,6 @@ "type": "string", "description": "An optional unique name for your task definition. If not specified, then a default will be created." }, - "inferenceAccelerators": { - "type": "array", - "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" - }, - "description": "Configuration block(s) with Inference Accelerators settings. Detailed below.\n", - "willReplaceOnChanges": true - }, "ipcMode": { "type": "string", "description": "IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`.\n", @@ -1090,18 +1111,22 @@ "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" }, "description": "Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below.\n", "willReplaceOnChanges": true }, "proxyConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", "description": "Configuration block for the App Mesh proxy. Detailed below.\n", "willReplaceOnChanges": true }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "runtimePlatform": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", "description": "Configuration block for runtime_platform that containers in your task may use.\n", "willReplaceOnChanges": true }, @@ -1128,9 +1153,9 @@ "volumes": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" }, - "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n", + "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n\n\u003e **NOTE:** Proper escaping is required for JSON field values containing quotes (`\"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\\"` in the JSON, e.g., `\"value\": \"I \\\"love\\\" escaped quotes\"`. If using a variable value, they should be escaped as `\\\\\\\"` in the variable, e.g., `value = \"I \\\\\\\"love\\\\\\\" escaped quotes\"` in the variable and `\"value\": \"${var.myvariable}\"` in the JSON.\n\n\u003e **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows.\n", "willReplaceOnChanges": true } }, @@ -1525,7 +1550,7 @@ "type": "string" }, "targetGroup": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lb%2FtargetGroup:TargetGroup" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lb%2FtargetGroup:TargetGroup" } }, "type": "object" @@ -1647,7 +1672,7 @@ "type": "object" }, "awsx:lb:Listener": { - "description": "Provides a Load Balancer Listener resource.\n\n\u003e **Note:** `aws.alb.Listener` is known as `aws.lb.Listener`. The functionality is identical.\n\n## Example Usage\n\n### Forward Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 443,\n protocol: \"HTTPS\",\n sslPolicy: \"ELBSecurityPolicy-2016-08\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=443,\n protocol=\"HTTPS\",\n ssl_policy=\"ELBSecurityPolicy-2016-08\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.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 frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 443,\n Protocol = \"HTTPS\",\n SslPolicy = \"ELBSecurityPolicy-2016-08\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\tSslPolicy: pulumi.String(\"ELBSecurityPolicy-2016-08\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"443\")\n .protocol(\"HTTPS\")\n .sslPolicy(\"ELBSecurityPolicy-2016-08\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '443'\n protocol: HTTPS\n sslPolicy: ELBSecurityPolicy-2016-08\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo a NLB:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEndAwsLb.arn,\n port: 443,\n protocol: \"TLS\",\n sslPolicy: \"ELBSecurityPolicy-2016-08\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpnPolicy: \"HTTP2Preferred\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndAwsLbTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end_aws_lb[\"arn\"],\n port=443,\n protocol=\"TLS\",\n ssl_policy=\"ELBSecurityPolicy-2016-08\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpn_policy=\"HTTP2Preferred\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_aws_lb_target_group[\"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 frontEnd = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEndAwsLb.Arn,\n Port = 443,\n Protocol = \"TLS\",\n SslPolicy = \"ELBSecurityPolicy-2016-08\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n AlpnPolicy = \"HTTP2Preferred\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndAwsLbTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: pulumi.Any(frontEndAwsLb.Arn),\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"TLS\"),\n\t\t\tSslPolicy: pulumi.String(\"ELBSecurityPolicy-2016-08\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tAlpnPolicy: pulumi.String(\"HTTP2Preferred\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: pulumi.Any(frontEndAwsLbTargetGroup.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.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new Listener(\"frontEnd\", ListenerArgs.builder()\n .loadBalancerArn(frontEndAwsLb.arn())\n .port(\"443\")\n .protocol(\"TLS\")\n .sslPolicy(\"ELBSecurityPolicy-2016-08\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .alpnPolicy(\"HTTP2Preferred\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndAwsLbTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEndAwsLb.arn}\n port: '443'\n protocol: TLS\n sslPolicy: ELBSecurityPolicy-2016-08\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n alpnPolicy: HTTP2Preferred\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndAwsLbTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redirect Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"redirect\",\n redirect: {\n port: \"443\",\n protocol: \"HTTPS\",\n statusCode: \"HTTP_301\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"redirect\",\n \"redirect\": {\n \"port\": \"443\",\n \"protocol\": \"HTTPS\",\n \"status_code\": \"HTTP_301\",\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 frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"redirect\",\n Redirect = new Aws.LB.Inputs.ListenerDefaultActionRedirectArgs\n {\n Port = \"443\",\n Protocol = \"HTTPS\",\n StatusCode = \"HTTP_301\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t\t\tRedirect: \u0026lb.ListenerDefaultActionRedirectArgs{\n\t\t\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"HTTP_301\"),\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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionRedirectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"redirect\")\n .redirect(ListenerDefaultActionRedirectArgs.builder()\n .port(\"443\")\n .protocol(\"HTTPS\")\n .statusCode(\"HTTP_301\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: redirect\n redirect:\n port: '443'\n protocol: HTTPS\n statusCode: HTTP_301\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Fixed-response Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"fixed-response\",\n fixedResponse: {\n contentType: \"text/plain\",\n messageBody: \"Fixed response content\",\n statusCode: \"200\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"fixed-response\",\n \"fixed_response\": {\n \"content_type\": \"text/plain\",\n \"message_body\": \"Fixed response content\",\n \"status_code\": \"200\",\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 frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"fixed-response\",\n FixedResponse = new Aws.LB.Inputs.ListenerDefaultActionFixedResponseArgs\n {\n ContentType = \"text/plain\",\n MessageBody = \"Fixed response content\",\n StatusCode = \"200\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"fixed-response\"),\n\t\t\t\t\tFixedResponse: \u0026lb.ListenerDefaultActionFixedResponseArgs{\n\t\t\t\t\t\tContentType: pulumi.String(\"text/plain\"),\n\t\t\t\t\t\tMessageBody: pulumi.String(\"Fixed response content\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"200\"),\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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionFixedResponseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"fixed-response\")\n .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()\n .contentType(\"text/plain\")\n .messageBody(\"Fixed response content\")\n .statusCode(\"200\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: fixed-response\n fixedResponse:\n contentType: text/plain\n messageBody: Fixed response content\n statusCode: '200'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-cognito Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst pool = new aws.cognito.UserPool(\"pool\", {});\nconst client = new aws.cognito.UserPoolClient(\"client\", {});\nconst domain = new aws.cognito.UserPoolDomain(\"domain\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-cognito\",\n authenticateCognito: {\n userPoolArn: pool.arn,\n userPoolClientId: client.id,\n userPoolDomain: domain.domain,\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\npool = aws.cognito.UserPool(\"pool\")\nclient = aws.cognito.UserPoolClient(\"client\")\ndomain = aws.cognito.UserPoolDomain(\"domain\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-cognito\",\n \"authenticate_cognito\": {\n \"user_pool_arn\": pool.arn,\n \"user_pool_client_id\": client.id,\n \"user_pool_domain\": domain.domain,\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var pool = new Aws.Cognito.UserPool(\"pool\");\n\n var client = new Aws.Cognito.UserPoolClient(\"client\");\n\n var domain = new Aws.Cognito.UserPoolDomain(\"domain\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-cognito\",\n AuthenticateCognito = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateCognitoArgs\n {\n UserPoolArn = pool.Arn,\n UserPoolClientId = client.Id,\n UserPoolDomain = domain.Domain,\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := cognito.NewUserPool(ctx, \"pool\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclient, err := cognito.NewUserPoolClient(ctx, \"client\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomain, err := cognito.NewUserPoolDomain(ctx, \"domain\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-cognito\"),\n\t\t\t\t\tAuthenticateCognito: \u0026lb.ListenerDefaultActionAuthenticateCognitoArgs{\n\t\t\t\t\t\tUserPoolArn: pool.Arn,\n\t\t\t\t\t\tUserPoolClientId: client.ID(),\n\t\t\t\t\t\tUserPoolDomain: domain.Domain,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.cognito.UserPool;\nimport com.pulumi.aws.cognito.UserPoolClient;\nimport com.pulumi.aws.cognito.UserPoolDomain;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateCognitoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var pool = new UserPool(\"pool\");\n\n var client = new UserPoolClient(\"client\");\n\n var domain = new UserPoolDomain(\"domain\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-cognito\")\n .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()\n .userPoolArn(pool.arn())\n .userPoolClientId(client.id())\n .userPoolDomain(domain.domain())\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n pool:\n type: aws:cognito:UserPool\n client:\n type: aws:cognito:UserPoolClient\n domain:\n type: aws:cognito:UserPoolDomain\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-cognito\n authenticateCognito:\n userPoolArn: ${pool.arn}\n userPoolClientId: ${client.id}\n userPoolDomain: ${domain.domain}\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-OIDC Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-oidc\",\n authenticateOidc: {\n authorizationEndpoint: \"https://example.com/authorization_endpoint\",\n clientId: \"client_id\",\n clientSecret: \"client_secret\",\n issuer: \"https://example.com\",\n tokenEndpoint: \"https://example.com/token_endpoint\",\n userInfoEndpoint: \"https://example.com/user_info_endpoint\",\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-oidc\",\n \"authenticate_oidc\": {\n \"authorization_endpoint\": \"https://example.com/authorization_endpoint\",\n \"client_id\": \"client_id\",\n \"client_secret\": \"client_secret\",\n \"issuer\": \"https://example.com\",\n \"token_endpoint\": \"https://example.com/token_endpoint\",\n \"user_info_endpoint\": \"https://example.com/user_info_endpoint\",\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-oidc\",\n AuthenticateOidc = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateOidcArgs\n {\n AuthorizationEndpoint = \"https://example.com/authorization_endpoint\",\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Issuer = \"https://example.com\",\n TokenEndpoint = \"https://example.com/token_endpoint\",\n UserInfoEndpoint = \"https://example.com/user_info_endpoint\",\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-oidc\"),\n\t\t\t\t\tAuthenticateOidc: \u0026lb.ListenerDefaultActionAuthenticateOidcArgs{\n\t\t\t\t\t\tAuthorizationEndpoint: pulumi.String(\"https://example.com/authorization_endpoint\"),\n\t\t\t\t\t\tClientId: pulumi.String(\"client_id\"),\n\t\t\t\t\t\tClientSecret: pulumi.String(\"client_secret\"),\n\t\t\t\t\t\tIssuer: pulumi.String(\"https://example.com\"),\n\t\t\t\t\t\tTokenEndpoint: pulumi.String(\"https://example.com/token_endpoint\"),\n\t\t\t\t\t\tUserInfoEndpoint: pulumi.String(\"https://example.com/user_info_endpoint\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateOidcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-oidc\")\n .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()\n .authorizationEndpoint(\"https://example.com/authorization_endpoint\")\n .clientId(\"client_id\")\n .clientSecret(\"client_secret\")\n .issuer(\"https://example.com\")\n .tokenEndpoint(\"https://example.com/token_endpoint\")\n .userInfoEndpoint(\"https://example.com/user_info_endpoint\")\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-oidc\n authenticateOidc:\n authorizationEndpoint: https://example.com/authorization_endpoint\n clientId: client_id\n clientSecret: client_secret\n issuer: https://example.com\n tokenEndpoint: https://example.com/token_endpoint\n userInfoEndpoint: https://example.com/user_info_endpoint\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Gateway Load Balancer Listener\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.lb.LoadBalancer(\"example\", {\n loadBalancerType: \"gateway\",\n name: \"example\",\n subnetMappings: [{\n subnetId: exampleAwsSubnet.id,\n }],\n});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {\n name: \"example\",\n port: 6081,\n protocol: \"GENEVE\",\n vpcId: exampleAwsVpc.id,\n healthCheck: {\n port: \"80\",\n protocol: \"HTTP\",\n },\n});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\",\n load_balancer_type=\"gateway\",\n name=\"example\",\n subnet_mappings=[{\n \"subnet_id\": example_aws_subnet[\"id\"],\n }])\nexample_target_group = aws.lb.TargetGroup(\"example\",\n name=\"example\",\n port=6081,\n protocol=\"GENEVE\",\n vpc_id=example_aws_vpc[\"id\"],\n health_check={\n \"port\": \"80\",\n \"protocol\": \"HTTP\",\n })\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\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.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"gateway\",\n Name = \"example\",\n SubnetMappings = new[]\n {\n new Aws.LB.Inputs.LoadBalancerSubnetMappingArgs\n {\n SubnetId = exampleAwsSubnet.Id,\n },\n },\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\", new()\n {\n Name = \"example\",\n Port = 6081,\n Protocol = \"GENEVE\",\n VpcId = exampleAwsVpc.Id,\n HealthCheck = new Aws.LB.Inputs.TargetGroupHealthCheckArgs\n {\n Port = \"80\",\n Protocol = \"HTTP\",\n },\n });\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"gateway\"),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tSubnetMappings: lb.LoadBalancerSubnetMappingArray{\n\t\t\t\t\u0026lb.LoadBalancerSubnetMappingArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(exampleAwsSubnet.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\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tPort: pulumi.Int(6081),\n\t\t\tProtocol: pulumi.String(\"GENEVE\"),\n\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t\tHealthCheck: \u0026lb.TargetGroupHealthCheckArgs{\n\t\t\t\tPort: pulumi.String(\"80\"),\n\t\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.inputs.LoadBalancerSubnetMappingArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupHealthCheckArgs;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class 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 LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"gateway\")\n .name(\"example\")\n .subnetMappings(LoadBalancerSubnetMappingArgs.builder()\n .subnetId(exampleAwsSubnet.id())\n .build())\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\", TargetGroupArgs.builder()\n .name(\"example\")\n .port(6081)\n .protocol(\"GENEVE\")\n .vpcId(exampleAwsVpc.id())\n .healthCheck(TargetGroupHealthCheckArgs.builder()\n .port(80)\n .protocol(\"HTTP\")\n .build())\n .build());\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: gateway\n name: example\n subnetMappings:\n - subnetId: ${exampleAwsSubnet.id}\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n properties:\n name: example\n port: 6081\n protocol: GENEVE\n vpcId: ${exampleAwsVpc.id}\n healthCheck:\n port: 80\n protocol: HTTP\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Mutual TLS Authentication\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.lb.LoadBalancer(\"example\", {loadBalancerType: \"application\"});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n mutualAuthentication: {\n mode: \"verify\",\n trustStoreArn: \"...\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\", load_balancer_type=\"application\")\nexample_target_group = aws.lb.TargetGroup(\"example\")\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\n }],\n mutual_authentication={\n \"mode\": \"verify\",\n \"trust_store_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.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"application\",\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\");\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n MutualAuthentication = new Aws.LB.Inputs.ListenerMutualAuthenticationArgs\n {\n Mode = \"verify\",\n TrustStoreArn = \"...\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"application\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMutualAuthentication: \u0026lb.ListenerMutualAuthenticationArgs{\n\t\t\t\tMode: pulumi.String(\"verify\"),\n\t\t\t\tTrustStoreArn: pulumi.String(\"...\"),\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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerMutualAuthenticationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class 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 LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"application\")\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\");\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .mutualAuthentication(ListenerMutualAuthenticationArgs.builder()\n .mode(\"verify\")\n .trustStoreArn(\"...\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: application\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n mutualAuthentication:\n mode: verify\n trustStoreArn: '...'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import listeners using their ARN. For example:\n\n```sh\n$ pulumi import aws:lb/listener:Listener front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96\n```\n", + "description": "Provides a Load Balancer Listener resource.\n\n\u003e **Note:** `aws.alb.Listener` is known as `aws.lb.Listener`. The functionality is identical.\n\n## Example Usage\n\n### Forward Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 443,\n protocol: \"HTTPS\",\n sslPolicy: \"ELBSecurityPolicy-2016-08\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=443,\n protocol=\"HTTPS\",\n ssl_policy=\"ELBSecurityPolicy-2016-08\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.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 frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 443,\n Protocol = \"HTTPS\",\n SslPolicy = \"ELBSecurityPolicy-2016-08\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\tSslPolicy: pulumi.String(\"ELBSecurityPolicy-2016-08\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(443)\n .protocol(\"HTTPS\")\n .sslPolicy(\"ELBSecurityPolicy-2016-08\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '443'\n protocol: HTTPS\n sslPolicy: ELBSecurityPolicy-2016-08\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo a NLB:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEndAwsLb.arn,\n port: 443,\n protocol: \"TLS\",\n sslPolicy: \"ELBSecurityPolicy-2016-08\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpnPolicy: \"HTTP2Preferred\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndAwsLbTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end_aws_lb[\"arn\"],\n port=443,\n protocol=\"TLS\",\n ssl_policy=\"ELBSecurityPolicy-2016-08\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpn_policy=\"HTTP2Preferred\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_aws_lb_target_group[\"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 frontEnd = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEndAwsLb.Arn,\n Port = 443,\n Protocol = \"TLS\",\n SslPolicy = \"ELBSecurityPolicy-2016-08\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n AlpnPolicy = \"HTTP2Preferred\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndAwsLbTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\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 := lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: pulumi.Any(frontEndAwsLb.Arn),\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"TLS\"),\n\t\t\tSslPolicy: pulumi.String(\"ELBSecurityPolicy-2016-08\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tAlpnPolicy: pulumi.String(\"HTTP2Preferred\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: pulumi.Any(frontEndAwsLbTargetGroup.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.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new Listener(\"frontEnd\", ListenerArgs.builder()\n .loadBalancerArn(frontEndAwsLb.arn())\n .port(443)\n .protocol(\"TLS\")\n .sslPolicy(\"ELBSecurityPolicy-2016-08\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .alpnPolicy(\"HTTP2Preferred\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndAwsLbTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEndAwsLb.arn}\n port: '443'\n protocol: TLS\n sslPolicy: ELBSecurityPolicy-2016-08\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n alpnPolicy: HTTP2Preferred\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndAwsLbTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redirect Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"redirect\",\n redirect: {\n port: \"443\",\n protocol: \"HTTPS\",\n statusCode: \"HTTP_301\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"redirect\",\n \"redirect\": {\n \"port\": \"443\",\n \"protocol\": \"HTTPS\",\n \"status_code\": \"HTTP_301\",\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 frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"redirect\",\n Redirect = new Aws.LB.Inputs.ListenerDefaultActionRedirectArgs\n {\n Port = \"443\",\n Protocol = \"HTTPS\",\n StatusCode = \"HTTP_301\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t\t\tRedirect: \u0026lb.ListenerDefaultActionRedirectArgs{\n\t\t\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"HTTP_301\"),\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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionRedirectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(80)\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"redirect\")\n .redirect(ListenerDefaultActionRedirectArgs.builder()\n .port(\"443\")\n .protocol(\"HTTPS\")\n .statusCode(\"HTTP_301\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: redirect\n redirect:\n port: '443'\n protocol: HTTPS\n statusCode: HTTP_301\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Fixed-response Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"fixed-response\",\n fixedResponse: {\n contentType: \"text/plain\",\n messageBody: \"Fixed response content\",\n statusCode: \"200\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"fixed-response\",\n \"fixed_response\": {\n \"content_type\": \"text/plain\",\n \"message_body\": \"Fixed response content\",\n \"status_code\": \"200\",\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 frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"fixed-response\",\n FixedResponse = new Aws.LB.Inputs.ListenerDefaultActionFixedResponseArgs\n {\n ContentType = \"text/plain\",\n MessageBody = \"Fixed response content\",\n StatusCode = \"200\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"fixed-response\"),\n\t\t\t\t\tFixedResponse: \u0026lb.ListenerDefaultActionFixedResponseArgs{\n\t\t\t\t\t\tContentType: pulumi.String(\"text/plain\"),\n\t\t\t\t\t\tMessageBody: pulumi.String(\"Fixed response content\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"200\"),\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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionFixedResponseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(80)\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"fixed-response\")\n .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()\n .contentType(\"text/plain\")\n .messageBody(\"Fixed response content\")\n .statusCode(\"200\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: fixed-response\n fixedResponse:\n contentType: text/plain\n messageBody: Fixed response content\n statusCode: '200'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-cognito Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst pool = new aws.cognito.UserPool(\"pool\", {});\nconst client = new aws.cognito.UserPoolClient(\"client\", {});\nconst domain = new aws.cognito.UserPoolDomain(\"domain\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-cognito\",\n authenticateCognito: {\n userPoolArn: pool.arn,\n userPoolClientId: client.id,\n userPoolDomain: domain.domain,\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\npool = aws.cognito.UserPool(\"pool\")\nclient = aws.cognito.UserPoolClient(\"client\")\ndomain = aws.cognito.UserPoolDomain(\"domain\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-cognito\",\n \"authenticate_cognito\": {\n \"user_pool_arn\": pool.arn,\n \"user_pool_client_id\": client.id,\n \"user_pool_domain\": domain.domain,\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var pool = new Aws.Cognito.UserPool(\"pool\");\n\n var client = new Aws.Cognito.UserPoolClient(\"client\");\n\n var domain = new Aws.Cognito.UserPoolDomain(\"domain\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-cognito\",\n AuthenticateCognito = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateCognitoArgs\n {\n UserPoolArn = pool.Arn,\n UserPoolClientId = client.Id,\n UserPoolDomain = domain.Domain,\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cognito\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := cognito.NewUserPool(ctx, \"pool\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclient, err := cognito.NewUserPoolClient(ctx, \"client\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomain, err := cognito.NewUserPoolDomain(ctx, \"domain\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-cognito\"),\n\t\t\t\t\tAuthenticateCognito: \u0026lb.ListenerDefaultActionAuthenticateCognitoArgs{\n\t\t\t\t\t\tUserPoolArn: pool.Arn,\n\t\t\t\t\t\tUserPoolClientId: client.ID(),\n\t\t\t\t\t\tUserPoolDomain: domain.Domain,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.cognito.UserPool;\nimport com.pulumi.aws.cognito.UserPoolClient;\nimport com.pulumi.aws.cognito.UserPoolDomain;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateCognitoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var pool = new UserPool(\"pool\");\n\n var client = new UserPoolClient(\"client\");\n\n var domain = new UserPoolDomain(\"domain\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(80)\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-cognito\")\n .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()\n .userPoolArn(pool.arn())\n .userPoolClientId(client.id())\n .userPoolDomain(domain.domain())\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n pool:\n type: aws:cognito:UserPool\n client:\n type: aws:cognito:UserPoolClient\n domain:\n type: aws:cognito:UserPoolDomain\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-cognito\n authenticateCognito:\n userPoolArn: ${pool.arn}\n userPoolClientId: ${client.id}\n userPoolDomain: ${domain.domain}\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-OIDC Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-oidc\",\n authenticateOidc: {\n authorizationEndpoint: \"https://example.com/authorization_endpoint\",\n clientId: \"client_id\",\n clientSecret: \"client_secret\",\n issuer: \"https://example.com\",\n tokenEndpoint: \"https://example.com/token_endpoint\",\n userInfoEndpoint: \"https://example.com/user_info_endpoint\",\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-oidc\",\n \"authenticate_oidc\": {\n \"authorization_endpoint\": \"https://example.com/authorization_endpoint\",\n \"client_id\": \"client_id\",\n \"client_secret\": \"client_secret\",\n \"issuer\": \"https://example.com\",\n \"token_endpoint\": \"https://example.com/token_endpoint\",\n \"user_info_endpoint\": \"https://example.com/user_info_endpoint\",\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-oidc\",\n AuthenticateOidc = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateOidcArgs\n {\n AuthorizationEndpoint = \"https://example.com/authorization_endpoint\",\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Issuer = \"https://example.com\",\n TokenEndpoint = \"https://example.com/token_endpoint\",\n UserInfoEndpoint = \"https://example.com/user_info_endpoint\",\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-oidc\"),\n\t\t\t\t\tAuthenticateOidc: \u0026lb.ListenerDefaultActionAuthenticateOidcArgs{\n\t\t\t\t\t\tAuthorizationEndpoint: pulumi.String(\"https://example.com/authorization_endpoint\"),\n\t\t\t\t\t\tClientId: pulumi.String(\"client_id\"),\n\t\t\t\t\t\tClientSecret: pulumi.String(\"client_secret\"),\n\t\t\t\t\t\tIssuer: pulumi.String(\"https://example.com\"),\n\t\t\t\t\t\tTokenEndpoint: pulumi.String(\"https://example.com/token_endpoint\"),\n\t\t\t\t\t\tUserInfoEndpoint: pulumi.String(\"https://example.com/user_info_endpoint\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateOidcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(80)\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-oidc\")\n .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()\n .authorizationEndpoint(\"https://example.com/authorization_endpoint\")\n .clientId(\"client_id\")\n .clientSecret(\"client_secret\")\n .issuer(\"https://example.com\")\n .tokenEndpoint(\"https://example.com/token_endpoint\")\n .userInfoEndpoint(\"https://example.com/user_info_endpoint\")\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-oidc\n authenticateOidc:\n authorizationEndpoint: https://example.com/authorization_endpoint\n clientId: client_id\n clientSecret: client_secret\n issuer: https://example.com\n tokenEndpoint: https://example.com/token_endpoint\n userInfoEndpoint: https://example.com/user_info_endpoint\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Gateway Load Balancer Listener\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.lb.LoadBalancer(\"example\", {\n loadBalancerType: \"gateway\",\n name: \"example\",\n subnetMappings: [{\n subnetId: exampleAwsSubnet.id,\n }],\n});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {\n name: \"example\",\n port: 6081,\n protocol: \"GENEVE\",\n vpcId: exampleAwsVpc.id,\n healthCheck: {\n port: \"80\",\n protocol: \"HTTP\",\n },\n});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\",\n load_balancer_type=\"gateway\",\n name=\"example\",\n subnet_mappings=[{\n \"subnet_id\": example_aws_subnet[\"id\"],\n }])\nexample_target_group = aws.lb.TargetGroup(\"example\",\n name=\"example\",\n port=6081,\n protocol=\"GENEVE\",\n vpc_id=example_aws_vpc[\"id\"],\n health_check={\n \"port\": \"80\",\n \"protocol\": \"HTTP\",\n })\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\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.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"gateway\",\n Name = \"example\",\n SubnetMappings = new[]\n {\n new Aws.LB.Inputs.LoadBalancerSubnetMappingArgs\n {\n SubnetId = exampleAwsSubnet.Id,\n },\n },\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\", new()\n {\n Name = \"example\",\n Port = 6081,\n Protocol = \"GENEVE\",\n VpcId = exampleAwsVpc.Id,\n HealthCheck = new Aws.LB.Inputs.TargetGroupHealthCheckArgs\n {\n Port = \"80\",\n Protocol = \"HTTP\",\n },\n });\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\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 := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"gateway\"),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tSubnetMappings: lb.LoadBalancerSubnetMappingArray{\n\t\t\t\t\u0026lb.LoadBalancerSubnetMappingArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(exampleAwsSubnet.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\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tPort: pulumi.Int(6081),\n\t\t\tProtocol: pulumi.String(\"GENEVE\"),\n\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t\tHealthCheck: \u0026lb.TargetGroupHealthCheckArgs{\n\t\t\t\tPort: pulumi.String(\"80\"),\n\t\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.inputs.LoadBalancerSubnetMappingArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupHealthCheckArgs;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class 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 LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"gateway\")\n .name(\"example\")\n .subnetMappings(LoadBalancerSubnetMappingArgs.builder()\n .subnetId(exampleAwsSubnet.id())\n .build())\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\", TargetGroupArgs.builder()\n .name(\"example\")\n .port(6081)\n .protocol(\"GENEVE\")\n .vpcId(exampleAwsVpc.id())\n .healthCheck(TargetGroupHealthCheckArgs.builder()\n .port(\"80\")\n .protocol(\"HTTP\")\n .build())\n .build());\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: gateway\n name: example\n subnetMappings:\n - subnetId: ${exampleAwsSubnet.id}\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n properties:\n name: example\n port: 6081\n protocol: GENEVE\n vpcId: ${exampleAwsVpc.id}\n healthCheck:\n port: 80\n protocol: HTTP\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Mutual TLS Authentication\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.lb.LoadBalancer(\"example\", {loadBalancerType: \"application\"});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n mutualAuthentication: {\n mode: \"verify\",\n trustStoreArn: \"...\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\", load_balancer_type=\"application\")\nexample_target_group = aws.lb.TargetGroup(\"example\")\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\n }],\n mutual_authentication={\n \"mode\": \"verify\",\n \"trust_store_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.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"application\",\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\");\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n MutualAuthentication = new Aws.LB.Inputs.ListenerMutualAuthenticationArgs\n {\n Mode = \"verify\",\n TrustStoreArn = \"...\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\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 := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"application\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMutualAuthentication: \u0026lb.ListenerMutualAuthenticationArgs{\n\t\t\t\tMode: pulumi.String(\"verify\"),\n\t\t\t\tTrustStoreArn: pulumi.String(\"...\"),\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.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerMutualAuthenticationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class 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 LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"application\")\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\");\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .mutualAuthentication(ListenerMutualAuthenticationArgs.builder()\n .mode(\"verify\")\n .trustStoreArn(\"...\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: application\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n mutualAuthentication:\n mode: verify\n trustStoreArn: '...'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import listeners using their ARN. For example:\n\n```sh\n$ pulumi import aws:lb/listener:Listener front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96\n```\n", "properties": { "alpnPolicy": { "type": "string", @@ -1660,12 +1685,12 @@ "defaultActions": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/ListenerDefaultAction:ListenerDefaultAction" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/ListenerDefaultAction:ListenerDefaultAction" }, "description": "Configuration block for default actions. See below.\n" }, "mutualAuthentication": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/ListenerMutualAuthentication:ListenerMutualAuthentication", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/ListenerMutualAuthentication:ListenerMutualAuthentication", "description": "The mutual authentication configuration information. See below.\n" }, "port": { @@ -1676,6 +1701,86 @@ "type": "string", "description": "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.\n" }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, + "routingHttpRequestXAmznMtlsClientcertHeaderName": { + "type": "string", + "description": "Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers.\n" + }, + "routingHttpRequestXAmznMtlsClientcertIssuerHeaderName": { + "type": "string", + "description": "Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers.\n" + }, + "routingHttpRequestXAmznMtlsClientcertLeafHeaderName": { + "type": "string", + "description": "Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers.\n" + }, + "routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName": { + "type": "string", + "description": "Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers.\n" + }, + "routingHttpRequestXAmznMtlsClientcertSubjectHeaderName": { + "type": "string", + "description": "Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers.\n" + }, + "routingHttpRequestXAmznMtlsClientcertValidityHeaderName": { + "type": "string", + "description": "Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers.\n" + }, + "routingHttpRequestXAmznTlsCipherSuiteHeaderName": { + "type": "string", + "description": "Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers.\n" + }, + "routingHttpRequestXAmznTlsVersionHeaderName": { + "type": "string", + "description": "Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers.\n" + }, + "routingHttpResponseAccessControlAllowCredentialsHeaderValue": { + "type": "string", + "description": "Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`.\n" + }, + "routingHttpResponseAccessControlAllowHeadersHeaderValue": { + "type": "string", + "description": "Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation.\n" + }, + "routingHttpResponseAccessControlAllowMethodsHeaderValue": { + "type": "string", + "description": "Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`.\n" + }, + "routingHttpResponseAccessControlAllowOriginHeaderValue": { + "type": "string", + "description": "Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`.\n" + }, + "routingHttpResponseAccessControlExposeHeadersHeaderValue": { + "type": "string", + "description": "Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation.\n" + }, + "routingHttpResponseAccessControlMaxAgeHeaderValue": { + "type": "string", + "description": "Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation.\n" + }, + "routingHttpResponseContentSecurityPolicyHeaderValue": { + "type": "string", + "description": "Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation.\n" + }, + "routingHttpResponseServerEnabled": { + "type": "boolean", + "description": "Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`.\n" + }, + "routingHttpResponseStrictTransportSecurityHeaderValue": { + "type": "string", + "description": "Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details.\n" + }, + "routingHttpResponseXContentTypeOptionsHeaderValue": { + "type": "string", + "description": "Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`.\n" + }, + "routingHttpResponseXFrameOptionsHeaderValue": { + "type": "string", + "description": "Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`.\n" + }, "sslPolicy": { "type": "string", "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`.\n" @@ -1695,7 +1800,7 @@ "type": "object" }, "awsx:lb:TargetGroup": { - "description": "Provides a Target Group resource for use with Load Balancer resources.\n\n\u003e **Note:** `aws.alb.TargetGroup` is known as `aws.lb.TargetGroup`. The functionality is identical.\n\n## Example Usage\n\n### Instance Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst test = new aws.lb.TargetGroup(\"test\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\ntest = aws.lb.TargetGroup(\"test\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n vpc_id=main.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 main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var test = new TargetGroup(\"test\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### IP Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst ip_example = new aws.lb.TargetGroup(\"ip-example\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n targetType: \"ip\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\nip_example = aws.lb.TargetGroup(\"ip-example\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n target_type=\"ip\",\n vpc_id=main.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 main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var ip_example = new Aws.LB.TargetGroup(\"ip-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n TargetType = \"ip\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"ip-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTargetType: pulumi.String(\"ip\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var ip_example = new TargetGroup(\"ip-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .targetType(\"ip\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ip-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n targetType: ip\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Lambda Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst lambda_example = new aws.lb.TargetGroup(\"lambda-example\", {\n name: \"tf-example-lb-tg\",\n targetType: \"lambda\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nlambda_example = aws.lb.TargetGroup(\"lambda-example\",\n name=\"tf-example-lb-tg\",\n target_type=\"lambda\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var lambda_example = new Aws.LB.TargetGroup(\"lambda-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n TargetType = \"lambda\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewTargetGroup(ctx, \"lambda-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var lambda_example = new TargetGroup(\"lambda-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .targetType(\"lambda\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lambda-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n targetType: lambda\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### ALB Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst alb_example = new aws.lb.TargetGroup(\"alb-example\", {\n name: \"tf-example-lb-alb-tg\",\n targetType: \"alb\",\n port: 80,\n protocol: \"TCP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nalb_example = aws.lb.TargetGroup(\"alb-example\",\n name=\"tf-example-lb-alb-tg\",\n target_type=\"alb\",\n port=80,\n protocol=\"TCP\",\n vpc_id=main[\"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 alb_example = new Aws.LB.TargetGroup(\"alb-example\", new()\n {\n Name = \"tf-example-lb-alb-tg\",\n TargetType = \"alb\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewTargetGroup(ctx, \"alb-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-alb-tg\"),\n\t\t\tTargetType: pulumi.String(\"alb\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var alb_example = new TargetGroup(\"alb-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-alb-tg\")\n .targetType(\"alb\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n alb-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-alb-tg\n targetType: alb\n port: 80\n protocol: TCP\n vpcId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Target group with unhealthy connection termination disabled\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n name: \"tf-example-lb-nlb-tg\",\n port: 25,\n protocol: \"TCP\",\n vpcId: main.id,\n targetHealthStates: [{\n enableUnhealthyConnectionTermination: false,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n name=\"tf-example-lb-nlb-tg\",\n port=25,\n protocol=\"TCP\",\n vpc_id=main[\"id\"],\n target_health_states=[{\n \"enable_unhealthy_connection_termination\": False,\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 tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Name = \"tf-example-lb-nlb-tg\",\n Port = 25,\n Protocol = \"TCP\",\n VpcId = main.Id,\n TargetHealthStates = new[]\n {\n new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs\n {\n EnableUnhealthyConnectionTermination = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-nlb-tg\"),\n\t\t\tPort: pulumi.Int(25),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTargetHealthStates: lb.TargetGroupTargetHealthStateArray{\n\t\t\t\t\u0026lb.TargetGroupTargetHealthStateArgs{\n\t\t\t\t\tEnableUnhealthyConnectionTermination: pulumi.Bool(false),\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.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-nlb-tg\")\n .port(25)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .targetHealthStates(TargetGroupTargetHealthStateArgs.builder()\n .enableUnhealthyConnectionTermination(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-nlb-tg\n port: 25\n protocol: TCP\n vpcId: ${main.id}\n targetHealthStates:\n - enableUnhealthyConnectionTermination: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Target group with health requirements\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n name: \"tf-example-lb-nlb-tg\",\n port: 80,\n protocol: \"TCP\",\n vpcId: main.id,\n targetGroupHealth: {\n dnsFailover: {\n minimumHealthyTargetsCount: \"1\",\n minimumHealthyTargetsPercentage: \"off\",\n },\n unhealthyStateRouting: {\n minimumHealthyTargetsCount: 1,\n minimumHealthyTargetsPercentage: \"off\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n name=\"tf-example-lb-nlb-tg\",\n port=80,\n protocol=\"TCP\",\n vpc_id=main[\"id\"],\n target_group_health={\n \"dns_failover\": {\n \"minimum_healthy_targets_count\": \"1\",\n \"minimum_healthy_targets_percentage\": \"off\",\n },\n \"unhealthy_state_routing\": {\n \"minimum_healthy_targets_count\": 1,\n \"minimum_healthy_targets_percentage\": \"off\",\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 tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Name = \"tf-example-lb-nlb-tg\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = main.Id,\n TargetGroupHealth = new Aws.LB.Inputs.TargetGroupTargetGroupHealthArgs\n {\n DnsFailover = new Aws.LB.Inputs.TargetGroupTargetGroupHealthDnsFailoverArgs\n {\n MinimumHealthyTargetsCount = \"1\",\n MinimumHealthyTargetsPercentage = \"off\",\n },\n UnhealthyStateRouting = new Aws.LB.Inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs\n {\n MinimumHealthyTargetsCount = 1,\n MinimumHealthyTargetsPercentage = \"off\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-nlb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTargetGroupHealth: \u0026lb.TargetGroupTargetGroupHealthArgs{\n\t\t\t\tDnsFailover: \u0026lb.TargetGroupTargetGroupHealthDnsFailoverArgs{\n\t\t\t\t\tMinimumHealthyTargetsCount: pulumi.String(\"1\"),\n\t\t\t\t\tMinimumHealthyTargetsPercentage: pulumi.String(\"off\"),\n\t\t\t\t},\n\t\t\t\tUnhealthyStateRouting: \u0026lb.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{\n\t\t\t\t\tMinimumHealthyTargetsCount: pulumi.Int(1),\n\t\t\t\t\tMinimumHealthyTargetsPercentage: pulumi.String(\"off\"),\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.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthDnsFailoverArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-nlb-tg\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .targetGroupHealth(TargetGroupTargetGroupHealthArgs.builder()\n .dnsFailover(TargetGroupTargetGroupHealthDnsFailoverArgs.builder()\n .minimumHealthyTargetsCount(\"1\")\n .minimumHealthyTargetsPercentage(\"off\")\n .build())\n .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder()\n .minimumHealthyTargetsCount(\"1\")\n .minimumHealthyTargetsPercentage(\"off\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-nlb-tg\n port: 80\n protocol: TCP\n vpcId: ${main.id}\n targetGroupHealth:\n dnsFailover:\n minimumHealthyTargetsCount: '1'\n minimumHealthyTargetsPercentage: off\n unhealthyStateRouting:\n minimumHealthyTargetsCount: '1'\n minimumHealthyTargetsPercentage: off\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Target Groups using their ARN. For example:\n\n```sh\n$ pulumi import aws:lb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314\n```\n", + "description": "Provides a Target Group resource for use with Load Balancer resources.\n\n\u003e **Note:** `aws.alb.TargetGroup` is known as `aws.lb.TargetGroup`. The functionality is identical.\n\n## Example Usage\n\n### Instance Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst test = new aws.lb.TargetGroup(\"test\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\ntest = aws.lb.TargetGroup(\"test\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n vpc_id=main.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 main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var test = new TargetGroup(\"test\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### IP Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst ip_example = new aws.lb.TargetGroup(\"ip-example\", {\n name: \"tf-example-lb-tg\",\n port: 80,\n protocol: \"HTTP\",\n targetType: \"ip\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\nip_example = aws.lb.TargetGroup(\"ip-example\",\n name=\"tf-example-lb-tg\",\n port=80,\n protocol=\"HTTP\",\n target_type=\"ip\",\n vpc_id=main.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 main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var ip_example = new Aws.LB.TargetGroup(\"ip-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n Port = 80,\n Protocol = \"HTTP\",\n TargetType = \"ip\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"ip-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTargetType: pulumi.String(\"ip\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder()\n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var ip_example = new TargetGroup(\"ip-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .port(80)\n .protocol(\"HTTP\")\n .targetType(\"ip\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ip-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n port: 80\n protocol: HTTP\n targetType: ip\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Lambda Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst lambda_example = new aws.lb.TargetGroup(\"lambda-example\", {\n name: \"tf-example-lb-tg\",\n targetType: \"lambda\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nlambda_example = aws.lb.TargetGroup(\"lambda-example\",\n name=\"tf-example-lb-tg\",\n target_type=\"lambda\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var lambda_example = new Aws.LB.TargetGroup(\"lambda-example\", new()\n {\n Name = \"tf-example-lb-tg\",\n TargetType = \"lambda\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\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 := lb.NewTargetGroup(ctx, \"lambda-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-tg\"),\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var lambda_example = new TargetGroup(\"lambda-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-tg\")\n .targetType(\"lambda\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lambda-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-tg\n targetType: lambda\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### ALB Target Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst alb_example = new aws.lb.TargetGroup(\"alb-example\", {\n name: \"tf-example-lb-alb-tg\",\n targetType: \"alb\",\n port: 80,\n protocol: \"TCP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nalb_example = aws.lb.TargetGroup(\"alb-example\",\n name=\"tf-example-lb-alb-tg\",\n target_type=\"alb\",\n port=80,\n protocol=\"TCP\",\n vpc_id=main[\"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 alb_example = new Aws.LB.TargetGroup(\"alb-example\", new()\n {\n Name = \"tf-example-lb-alb-tg\",\n TargetType = \"alb\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\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 := lb.NewTargetGroup(ctx, \"alb-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-alb-tg\"),\n\t\t\tTargetType: pulumi.String(\"alb\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var alb_example = new TargetGroup(\"alb-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-alb-tg\")\n .targetType(\"alb\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n alb-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-alb-tg\n targetType: alb\n port: 80\n protocol: TCP\n vpcId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Target group with unhealthy connection termination disabled\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n name: \"tf-example-lb-nlb-tg\",\n port: 25,\n protocol: \"TCP\",\n vpcId: main.id,\n targetHealthStates: [{\n enableUnhealthyConnectionTermination: false,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n name=\"tf-example-lb-nlb-tg\",\n port=25,\n protocol=\"TCP\",\n vpc_id=main[\"id\"],\n target_health_states=[{\n \"enable_unhealthy_connection_termination\": False,\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 tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Name = \"tf-example-lb-nlb-tg\",\n Port = 25,\n Protocol = \"TCP\",\n VpcId = main.Id,\n TargetHealthStates = new[]\n {\n new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs\n {\n EnableUnhealthyConnectionTermination = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\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 := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-nlb-tg\"),\n\t\t\tPort: pulumi.Int(25),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTargetHealthStates: lb.TargetGroupTargetHealthStateArray{\n\t\t\t\t\u0026lb.TargetGroupTargetHealthStateArgs{\n\t\t\t\t\tEnableUnhealthyConnectionTermination: pulumi.Bool(false),\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.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-nlb-tg\")\n .port(25)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .targetHealthStates(TargetGroupTargetHealthStateArgs.builder()\n .enableUnhealthyConnectionTermination(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-nlb-tg\n port: 25\n protocol: TCP\n vpcId: ${main.id}\n targetHealthStates:\n - enableUnhealthyConnectionTermination: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Target group with health requirements\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n name: \"tf-example-lb-nlb-tg\",\n port: 80,\n protocol: \"TCP\",\n vpcId: main.id,\n targetGroupHealth: {\n dnsFailover: {\n minimumHealthyTargetsCount: \"1\",\n minimumHealthyTargetsPercentage: \"off\",\n },\n unhealthyStateRouting: {\n minimumHealthyTargetsCount: 1,\n minimumHealthyTargetsPercentage: \"off\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n name=\"tf-example-lb-nlb-tg\",\n port=80,\n protocol=\"TCP\",\n vpc_id=main[\"id\"],\n target_group_health={\n \"dns_failover\": {\n \"minimum_healthy_targets_count\": \"1\",\n \"minimum_healthy_targets_percentage\": \"off\",\n },\n \"unhealthy_state_routing\": {\n \"minimum_healthy_targets_count\": 1,\n \"minimum_healthy_targets_percentage\": \"off\",\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 tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Name = \"tf-example-lb-nlb-tg\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = main.Id,\n TargetGroupHealth = new Aws.LB.Inputs.TargetGroupTargetGroupHealthArgs\n {\n DnsFailover = new Aws.LB.Inputs.TargetGroupTargetGroupHealthDnsFailoverArgs\n {\n MinimumHealthyTargetsCount = \"1\",\n MinimumHealthyTargetsPercentage = \"off\",\n },\n UnhealthyStateRouting = new Aws.LB.Inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs\n {\n MinimumHealthyTargetsCount = 1,\n MinimumHealthyTargetsPercentage = \"off\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb\"\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 := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"tf-example-lb-nlb-tg\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTargetGroupHealth: \u0026lb.TargetGroupTargetGroupHealthArgs{\n\t\t\t\tDnsFailover: \u0026lb.TargetGroupTargetGroupHealthDnsFailoverArgs{\n\t\t\t\t\tMinimumHealthyTargetsCount: pulumi.String(\"1\"),\n\t\t\t\t\tMinimumHealthyTargetsPercentage: pulumi.String(\"off\"),\n\t\t\t\t},\n\t\t\t\tUnhealthyStateRouting: \u0026lb.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs{\n\t\t\t\t\tMinimumHealthyTargetsCount: pulumi.Int(1),\n\t\t\t\t\tMinimumHealthyTargetsPercentage: pulumi.String(\"off\"),\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.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthDnsFailoverArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder()\n .name(\"tf-example-lb-nlb-tg\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(main.id())\n .targetGroupHealth(TargetGroupTargetGroupHealthArgs.builder()\n .dnsFailover(TargetGroupTargetGroupHealthDnsFailoverArgs.builder()\n .minimumHealthyTargetsCount(\"1\")\n .minimumHealthyTargetsPercentage(\"off\")\n .build())\n .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder()\n .minimumHealthyTargetsCount(1)\n .minimumHealthyTargetsPercentage(\"off\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n name: tf-example-lb-nlb-tg\n port: 80\n protocol: TCP\n vpcId: ${main.id}\n targetGroupHealth:\n dnsFailover:\n minimumHealthyTargetsCount: '1'\n minimumHealthyTargetsPercentage: off\n unhealthyStateRouting:\n minimumHealthyTargetsCount: '1'\n minimumHealthyTargetsPercentage: off\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Target Groups using their ARN. For example:\n\n```sh\n$ pulumi import aws:lb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314\n```\n", "properties": { "connectionTermination": { "type": "boolean", @@ -1706,7 +1811,7 @@ "description": "Amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds.\n" }, "healthCheck": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/TargetGroupHealthCheck:TargetGroupHealthCheck", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/TargetGroupHealthCheck:TargetGroupHealthCheck", "description": "Health Check configuration block. Detailed below.\n" }, "ipAddressType": { @@ -1763,12 +1868,16 @@ "type": "boolean", "description": "Whether to enable support for proxy protocol v2 on Network Load Balancers. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol) for more information. Default is `false`.\n" }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "slowStart": { "type": "integer", "description": "Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds.\n" }, "stickiness": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/TargetGroupStickiness:TargetGroupStickiness", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/TargetGroupStickiness:TargetGroupStickiness", "description": "Stickiness configuration block. Detailed below.\n" }, "tags": { @@ -1781,18 +1890,18 @@ "targetFailovers": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/TargetGroupTargetFailover:TargetGroupTargetFailover" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/TargetGroupTargetFailover:TargetGroupTargetFailover" }, "description": "Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.\n" }, "targetGroupHealth": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/TargetGroupTargetGroupHealth:TargetGroupTargetGroupHealth", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/TargetGroupTargetGroupHealth:TargetGroupTargetGroupHealth", "description": "Target health requirements block. See target_group_health for more information.\n" }, "targetHealthStates": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/TargetGroupTargetHealthState:TargetGroupTargetHealthState" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/TargetGroupTargetHealthState:TargetGroupTargetHealthState" }, "description": "Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information.\n" }, @@ -1815,15 +1924,15 @@ "awsx:cloudtrail:Trail": { "properties": { "bucket": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:s3%2Fbucket:Bucket", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:s3%2Fbucket:Bucket", "description": "The managed S3 Bucket where the Trail will place its logs." }, "logGroup": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", "description": "The managed Cloudwatch Log Group." }, "trail": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:cloudtrail%2Ftrail:Trail", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:cloudtrail%2Ftrail:Trail", "description": "The CloudTrail Trail.", "language": { "csharp": { @@ -1839,7 +1948,7 @@ "advancedEventSelectors": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:cloudtrail/TrailAdvancedEventSelector:TrailAdvancedEventSelector" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:cloudtrail/TrailAdvancedEventSelector:TrailAdvancedEventSelector" }, "description": "Specifies an advanced event selector for enabling data event logging. Fields documented below. Conflicts with `event_selector`.\n" }, @@ -1859,7 +1968,7 @@ "eventSelectors": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:cloudtrail/TrailEventSelector:TrailEventSelector" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:cloudtrail/TrailEventSelector:TrailEventSelector" }, "description": "Specifies an event selector for enabling data event logging. Fields documented below. Please note the [CloudTrail limits](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html) when configuring these. Conflicts with `advanced_event_selector`.\n" }, @@ -1870,7 +1979,7 @@ "insightSelectors": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:cloudtrail/TrailInsightSelector:TrailInsightSelector" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:cloudtrail/TrailInsightSelector:TrailInsightSelector" }, "description": "Configuration block for identifying unusual operational activity. See details below.\n" }, @@ -1891,6 +2000,10 @@ "description": "Name of the trail.\n", "willReplaceOnChanges": true }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "s3Bucket": { "$ref": "#/types/awsx:awsx:RequiredBucket", "plain": true, @@ -1902,7 +2015,7 @@ }, "snsTopicName": { "type": "string", - "description": "Name of the Amazon SNS topic defined for notification of log file delivery.\n" + "description": "Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region.\n" }, "tags": { "type": "object", @@ -1947,12 +2060,12 @@ "eips": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2feip:Eip" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2feip:Eip" }, "description": "The EIPs for any NAT Gateways for the VPC. If no NAT Gateways are specified, this will be an empty list." }, "internetGateway": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2finternetGateway:InternetGateway", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2finternetGateway:InternetGateway", "description": "The Internet Gateway for the VPC." }, "isolatedSubnetIds": { @@ -1964,7 +2077,7 @@ "natGateways": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2fnatGateway:NatGateway" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2fnatGateway:NatGateway" }, "description": "The NAT Gateways for the VPC. If no NAT Gateways are specified, this will be an empty list." }, @@ -1983,21 +2096,21 @@ "routeTableAssociations": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2frouteTableAssociation:RouteTableAssociation" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2frouteTableAssociation:RouteTableAssociation" }, "description": "The Route Table Associations for the VPC." }, "routeTables": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2frouteTable:RouteTable" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2frouteTable:RouteTable" }, "description": "The Route Tables for the VPC." }, "routes": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2froute:Route" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2froute:Route" }, "description": "The Routes for the VPC." }, @@ -2011,12 +2124,12 @@ "subnets": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2fsubnet:Subnet" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2fsubnet:Subnet" }, "description": "The VPC's subnets." }, "vpc": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2fvpc:Vpc", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2fvpc:Vpc", "description": "The VPC.", "language": { "csharp": { @@ -2027,7 +2140,7 @@ "vpcEndpoints": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2fvpcEndpoint:VpcEndpoint" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2fvpcEndpoint:VpcEndpoint" }, "description": "The VPC Endpoints that are enabled" }, @@ -2127,6 +2240,10 @@ "plain": true, "description": "A number of availability zones to which the subnets defined in subnetSpecs will be deployed. Optional, defaults to the first 3 AZs in the current region." }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "subnetSpecs": { "type": "array", "items": { @@ -2282,11 +2399,11 @@ "description": "A [Repository] represents an [aws.ecr.Repository] along with an associated [LifecyclePolicy] controlling how images are retained in the repo. \n\nDocker images can be built and pushed to the repo using the [buildAndPushImage] method. This will call into the `@pulumi/docker/buildAndPushImage` function using this repo as the appropriate destination registry.", "properties": { "lifecyclePolicy": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ecr%2flifecyclePolicy:LifecyclePolicy", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ecr%2flifecyclePolicy:LifecyclePolicy", "description": "Underlying repository lifecycle policy" }, "repository": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ecr%2frepository:Repository", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ecr%2frepository:Repository", "description": "Underlying Repository resource", "language": { "csharp": { @@ -2308,7 +2425,7 @@ "encryptionConfigurations": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecr/RepositoryEncryptionConfiguration:RepositoryEncryptionConfiguration" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecr/RepositoryEncryptionConfiguration:RepositoryEncryptionConfiguration" }, "description": "Encryption configuration for the repository. See below for schema.\n", "willReplaceOnChanges": true @@ -2318,7 +2435,7 @@ "description": "If `true`, will delete the repository even if it contains images.\nDefaults to `false`.\n" }, "imageScanningConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecr/RepositoryImageScanningConfiguration:RepositoryImageScanningConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecr/RepositoryImageScanningConfiguration:RepositoryImageScanningConfiguration", "description": "Configuration block that defines image scanning configuration for the repository. By default, image scanning must be manually triggered. See the [ECR User Guide](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html) for more information about image scanning.\n" }, "imageTagMutability": { @@ -2335,6 +2452,10 @@ "description": "Name of the repository.\n", "willReplaceOnChanges": true }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "tags": { "type": "object", "additionalProperties": { @@ -2349,11 +2470,11 @@ "description": "Create an ECS Service resource for EC2 with the given unique name, arguments, and options.\nCreates Task definition if `taskDefinitionArgs` is specified.", "properties": { "service": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ecs%2fservice:Service", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ecs%2fservice:Service", "description": "Underlying ECS Service resource" }, "taskDefinition": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", "description": "Underlying EC2 Task definition component resource if created from args" } }, @@ -2362,7 +2483,7 @@ ], "inputProperties": { "alarms": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceAlarms:ServiceAlarms", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceAlarms:ServiceAlarms", "description": "Information about the CloudWatch alarms. See below.\n" }, "availabilityZoneRebalancing": { @@ -2372,7 +2493,7 @@ "capacityProviderStrategies": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceCapacityProviderStrategy:ServiceCapacityProviderStrategy" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceCapacityProviderStrategy:ServiceCapacityProviderStrategy" }, "description": "Capacity provider strategies to use for the service. Can be one or more. These can be updated without destroying and recreating the service only if `force_new_deployment = true` and not changing from 0 `capacity_provider_strategy` blocks to greater than 0, or vice versa. See below. Conflicts with `launch_type`.\n" }, @@ -2386,11 +2507,11 @@ "description": "If `true`, this provider will not wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`." }, "deploymentCircuitBreaker": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceDeploymentCircuitBreaker:ServiceDeploymentCircuitBreaker", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceDeploymentCircuitBreaker:ServiceDeploymentCircuitBreaker", "description": "Configuration block for deployment circuit breaker. See below.\n" }, "deploymentController": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceDeploymentController:ServiceDeploymentController", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceDeploymentController:ServiceDeploymentController", "description": "Configuration block for deployment controller configuration. See below.\n" }, "deploymentMaximumPercent": { @@ -2433,7 +2554,7 @@ "loadBalancers": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceLoadBalancer:ServiceLoadBalancer" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceLoadBalancer:ServiceLoadBalancer" }, "description": "Configuration block for load balancers. See below.\n" }, @@ -2443,20 +2564,20 @@ "willReplaceOnChanges": true }, "networkConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceNetworkConfiguration:ServiceNetworkConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceNetworkConfiguration:ServiceNetworkConfiguration", "description": "Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below.\n" }, "orderedPlacementStrategies": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceOrderedPlacementStrategy:ServiceOrderedPlacementStrategy" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceOrderedPlacementStrategy:ServiceOrderedPlacementStrategy" }, "description": "Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. The maximum number of `ordered_placement_strategy` blocks is `5`. See below.\n" }, "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServicePlacementConstraint:ServicePlacementConstraint" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServicePlacementConstraint:ServicePlacementConstraint" }, "description": "Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below.\n" }, @@ -2468,17 +2589,21 @@ "type": "string", "description": "Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`.\n" }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "schedulingStrategy": { "type": "string", "description": "Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html).\n", "willReplaceOnChanges": true }, "serviceConnectConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceServiceConnectConfiguration:ServiceServiceConnectConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceServiceConnectConfiguration:ServiceServiceConnectConfiguration", "description": "ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below.\n" }, "serviceRegistries": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceServiceRegistries:ServiceServiceRegistries", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceServiceRegistries:ServiceServiceRegistries", "description": "Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below.\n" }, "tags": { @@ -2505,13 +2630,13 @@ "description": "Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `\"plantimestamp()\"`. When using the triggers property you also need to set the forceNewDeployment property to True.\n" }, "volumeConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceVolumeConfiguration:ServiceVolumeConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceVolumeConfiguration:ServiceVolumeConfiguration", "description": "Configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume. See below.\n" }, "vpcLatticeConfigurations": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceVpcLatticeConfiguration:ServiceVpcLatticeConfiguration" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceVpcLatticeConfiguration:ServiceVpcLatticeConfiguration" }, "description": "The VPC Lattice configuration for your service that allows Lattice to connect, secure, and monitor your service across multiple accounts and VPCs. See below.\n" } @@ -2522,26 +2647,26 @@ "description": "Create a TaskDefinition resource with the given unique name, arguments, and options.\nCreates required log-group and task \u0026 execution roles.\nPresents required Service load balancers if target group included in port mappings.", "properties": { "executionRole": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:iam%2Frole:Role", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:iam%2Frole:Role", "description": "Auto-created IAM task execution role that the Amazon ECS container agent and the Docker daemon can assume." }, "loadBalancers": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs%2FServiceLoadBalancer:ServiceLoadBalancer" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs%2FServiceLoadBalancer:ServiceLoadBalancer" }, "description": "Computed load balancers from target groups specified of container port mappings." }, "logGroup": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", "description": "Auto-created Log Group resource for use by containers." }, "taskDefinition": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", "description": "Underlying ECS Task Definition resource" }, "taskRole": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:iam%2Frole:Role", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:iam%2Frole:Role", "description": "Auto-created IAM role that allows your Amazon ECS container task to make calls to other AWS services." } }, @@ -2568,8 +2693,13 @@ "type": "string", "description": "The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions]" }, + "enableFaultInjection": { + "type": "boolean", + "description": "Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`.\n", + "willReplaceOnChanges": true + }, "ephemeralStorage": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", "description": "The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.\n", "willReplaceOnChanges": true }, @@ -2582,14 +2712,6 @@ "type": "string", "description": "An optional unique name for your task definition. If not specified, then a default will be created." }, - "inferenceAccelerators": { - "type": "array", - "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" - }, - "description": "Configuration block(s) with Inference Accelerators settings. Detailed below.\n", - "willReplaceOnChanges": true - }, "ipcMode": { "type": "string", "description": "IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`.\n", @@ -2617,18 +2739,22 @@ "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" }, "description": "Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below.\n", "willReplaceOnChanges": true }, "proxyConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", "description": "Configuration block for the App Mesh proxy. Detailed below.\n", "willReplaceOnChanges": true }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "runtimePlatform": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", "description": "Configuration block for runtime_platform that containers in your task may use.\n", "willReplaceOnChanges": true }, @@ -2655,9 +2781,9 @@ "volumes": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" }, - "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n", + "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n\n\u003e **NOTE:** Proper escaping is required for JSON field values containing quotes (`\"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\\"` in the JSON, e.g., `\"value\": \"I \\\"love\\\" escaped quotes\"`. If using a variable value, they should be escaped as `\\\\\\\"` in the variable, e.g., `value = \"I \\\\\\\"love\\\\\\\" escaped quotes\"` in the variable and `\"value\": \"${var.myvariable}\"` in the JSON.\n\n\u003e **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows.\n", "willReplaceOnChanges": true } }, @@ -2667,11 +2793,11 @@ "description": "Create an ECS Service resource for Fargate with the given unique name, arguments, and options.\nCreates Task definition if `taskDefinitionArgs` is specified.", "properties": { "service": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ecs%2fservice:Service", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ecs%2fservice:Service", "description": "Underlying ECS Service resource" }, "taskDefinition": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", "description": "Underlying Fargate component resource if created from args" } }, @@ -2680,7 +2806,7 @@ ], "inputProperties": { "alarms": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceAlarms:ServiceAlarms", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceAlarms:ServiceAlarms", "description": "Information about the CloudWatch alarms. See below.\n" }, "assignPublicIp": { @@ -2701,11 +2827,11 @@ "description": "If `true`, this provider will not wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`." }, "deploymentCircuitBreaker": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceDeploymentCircuitBreaker:ServiceDeploymentCircuitBreaker", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceDeploymentCircuitBreaker:ServiceDeploymentCircuitBreaker", "description": "Configuration block for deployment circuit breaker. See below.\n" }, "deploymentController": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceDeploymentController:ServiceDeploymentController", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceDeploymentController:ServiceDeploymentController", "description": "Configuration block for deployment controller configuration. See below.\n" }, "deploymentMaximumPercent": { @@ -2748,7 +2874,7 @@ "loadBalancers": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceLoadBalancer:ServiceLoadBalancer" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceLoadBalancer:ServiceLoadBalancer" }, "description": "Configuration block for load balancers. See below.\n" }, @@ -2758,13 +2884,13 @@ "willReplaceOnChanges": true }, "networkConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceNetworkConfiguration:ServiceNetworkConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceNetworkConfiguration:ServiceNetworkConfiguration", "description": "Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below.\n" }, "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServicePlacementConstraint:ServicePlacementConstraint" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServicePlacementConstraint:ServicePlacementConstraint" }, "description": "Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below.\n" }, @@ -2776,17 +2902,21 @@ "type": "string", "description": "Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`.\n" }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "schedulingStrategy": { "type": "string", "description": "Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html).\n", "willReplaceOnChanges": true }, "serviceConnectConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceServiceConnectConfiguration:ServiceServiceConnectConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceServiceConnectConfiguration:ServiceServiceConnectConfiguration", "description": "ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below.\n" }, "serviceRegistries": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceServiceRegistries:ServiceServiceRegistries", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceServiceRegistries:ServiceServiceRegistries", "description": "Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below.\n" }, "tags": { @@ -2813,13 +2943,13 @@ "description": "Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `\"plantimestamp()\"`. When using the triggers property you also need to set the forceNewDeployment property to True.\n" }, "volumeConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceVolumeConfiguration:ServiceVolumeConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceVolumeConfiguration:ServiceVolumeConfiguration", "description": "Configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume. See below.\n" }, "vpcLatticeConfigurations": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/ServiceVpcLatticeConfiguration:ServiceVpcLatticeConfiguration" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/ServiceVpcLatticeConfiguration:ServiceVpcLatticeConfiguration" }, "description": "The VPC Lattice configuration for your service that allows Lattice to connect, secure, and monitor your service across multiple accounts and VPCs. See below.\n" } @@ -2830,26 +2960,26 @@ "description": "Create a TaskDefinition resource with the given unique name, arguments, and options.\nCreates required log-group and task \u0026 execution roles.\nPresents required Service load balancers if target group included in port mappings.", "properties": { "executionRole": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:iam%2Frole:Role", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:iam%2Frole:Role", "description": "Auto-created IAM task execution role that the Amazon ECS container agent and the Docker daemon can assume." }, "loadBalancers": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs%2FServiceLoadBalancer:ServiceLoadBalancer" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs%2FServiceLoadBalancer:ServiceLoadBalancer" }, "description": "Computed load balancers from target groups specified of container port mappings." }, "logGroup": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", "description": "Auto-created Log Group resource for use by containers." }, "taskDefinition": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", "description": "Underlying ECS Task Definition resource" }, "taskRole": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:iam%2Frole:Role", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:iam%2Frole:Role", "description": "Auto-created IAM role that allows your Amazon ECS container task to make calls to other AWS services." } }, @@ -2876,8 +3006,13 @@ "type": "string", "description": "The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions]" }, + "enableFaultInjection": { + "type": "boolean", + "description": "Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`.\n", + "willReplaceOnChanges": true + }, "ephemeralStorage": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", "description": "The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.\n", "willReplaceOnChanges": true }, @@ -2890,14 +3025,6 @@ "type": "string", "description": "An optional unique name for your task definition. If not specified, then a default will be created." }, - "inferenceAccelerators": { - "type": "array", - "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" - }, - "description": "Configuration block(s) with Inference Accelerators settings. Detailed below.\n", - "willReplaceOnChanges": true - }, "ipcMode": { "type": "string", "description": "IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`.\n", @@ -2920,18 +3047,22 @@ "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" }, "description": "Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below.\n", "willReplaceOnChanges": true }, "proxyConfiguration": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", "description": "Configuration block for the App Mesh proxy. Detailed below.\n", "willReplaceOnChanges": true }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "runtimePlatform": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", "description": "Configuration block for runtime_platform that containers in your task may use.\n", "willReplaceOnChanges": true }, @@ -2958,9 +3089,9 @@ "volumes": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" }, - "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n", + "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n\n\u003e **NOTE:** Proper escaping is required for JSON field values containing quotes (`\"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\\"` in the JSON, e.g., `\"value\": \"I \\\"love\\\" escaped quotes\"`. If using a variable value, they should be escaped as `\\\\\\\"` in the variable, e.g., `value = \"I \\\\\\\"love\\\\\\\" escaped quotes\"` in the variable and `\"value\": \"${var.myvariable}\"` in the JSON.\n\n\u003e **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows.\n", "willReplaceOnChanges": true } }, @@ -2970,22 +3101,22 @@ "description": "Provides an Application Load Balancer resource with listeners, default target group and default security group.", "properties": { "defaultSecurityGroup": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2fsecurityGroup:SecurityGroup", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2fsecurityGroup:SecurityGroup", "description": "Default security group, if auto-created" }, "defaultTargetGroup": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", "description": "Default target group, if auto-created" }, "listeners": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lb%2flistener:Listener" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lb%2flistener:Listener" }, "description": "Listeners created as part of this load balancer" }, "loadBalancer": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lb%2floadBalancer:LoadBalancer", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lb%2floadBalancer:LoadBalancer", "description": "Underlying Load Balancer resource" }, "vpcId": { @@ -3000,7 +3131,7 @@ ], "inputProperties": { "accessLogs": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", "description": "Access Logs block. See below.\n" }, "clientKeepAlive": { @@ -3008,7 +3139,7 @@ "description": "Client keep alive value in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n" }, "connectionLogs": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/LoadBalancerConnectionLogs:LoadBalancerConnectionLogs", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/LoadBalancerConnectionLogs:LoadBalancerConnectionLogs", "description": "Connection Logs block. See below. Only valid for Load Balancers of type `application`.\n" }, "customerOwnedIpv4Pool": { @@ -3083,6 +3214,10 @@ "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" }, + "ipamPools": { + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/LoadBalancerIpamPools:LoadBalancerIpamPools", + "description": ". The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information.\n" + }, "listener": { "$ref": "#/types/awsx:lb:Listener", "plain": true, @@ -3097,6 +3232,10 @@ "plain": true, "description": "List of listeners to create. Only one of [listener] and [listeners] can be specified." }, + "minimumLoadBalancerCapacity": { + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/LoadBalancerMinimumLoadBalancerCapacity:LoadBalancerMinimumLoadBalancerCapacity", + "description": "Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`.\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", @@ -3111,6 +3250,10 @@ "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" }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "securityGroups": { "type": "array", "items": { @@ -3128,14 +3271,14 @@ "subnetMappings": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/LoadBalancerSubnetMapping:LoadBalancerSubnetMapping" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/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": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2fsubnet:Subnet" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2fsubnet:Subnet" }, "description": "A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified" }, @@ -3148,7 +3291,7 @@ }, "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" + "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\n\u003e **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled.\n\n\u003e **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required.\n" } }, "isComponent": true @@ -3157,18 +3300,18 @@ "description": "Provides a Network Load Balancer resource with listeners and default target group.", "properties": { "defaultTargetGroup": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", "description": "Default target group, if auto-created" }, "listeners": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lb%2flistener:Listener" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lb%2flistener:Listener" }, "description": "Listeners created as part of this load balancer" }, "loadBalancer": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lb%2floadBalancer:LoadBalancer", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lb%2floadBalancer:LoadBalancer", "description": "Underlying Load Balancer resource" }, "vpcId": { @@ -3183,7 +3326,7 @@ ], "inputProperties": { "accessLogs": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", "description": "Access Logs block. See below.\n" }, "clientKeepAlive": { @@ -3191,7 +3334,7 @@ "description": "Client keep alive value in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n" }, "connectionLogs": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/LoadBalancerConnectionLogs:LoadBalancerConnectionLogs", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/LoadBalancerConnectionLogs:LoadBalancerConnectionLogs", "description": "Connection Logs block. See below. Only valid for Load Balancers of type `application`.\n" }, "customerOwnedIpv4Pool": { @@ -3261,6 +3404,10 @@ "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" }, + "ipamPools": { + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/LoadBalancerIpamPools:LoadBalancerIpamPools", + "description": ". The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information.\n" + }, "listener": { "$ref": "#/types/awsx:lb:Listener", "plain": true, @@ -3275,6 +3422,10 @@ "plain": true, "description": "List of listeners to create. Only one of [listener] and [listeners] can be specified." }, + "minimumLoadBalancerCapacity": { + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/types/aws:lb/LoadBalancerMinimumLoadBalancerCapacity:LoadBalancerMinimumLoadBalancerCapacity", + "description": "Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`.\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", @@ -3289,6 +3440,10 @@ "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" }, + "region": { + "type": "string", + "description": "Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.\n" + }, "securityGroups": { "type": "array", "items": { @@ -3306,14 +3461,14 @@ "subnetMappings": { "type": "array", "items": { - "$ref": "/aws/v6.66.3/schema.json#/types/aws:lb/LoadBalancerSubnetMapping:LoadBalancerSubnetMapping" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/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": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2fsubnet:Subnet" + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2fsubnet:Subnet" }, "description": "A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified" }, @@ -3326,7 +3481,7 @@ }, "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" + "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\n\u003e **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled.\n\n\u003e **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required.\n" } }, "isComponent": true @@ -3335,11 +3490,11 @@ "description": "Attach an EC2 instance or Lambda to a Load Balancer. This will create required permissions if attaching to a Lambda Function.", "properties": { "lambdaPermission": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lambda%2fpermission:Permission", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lambda%2fpermission:Permission", "description": "Auto-created Lambda permission, if targeting a Lambda function" }, "targetGroupAttachment": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lb%2ftargetGroupAttachment:TargetGroupAttachment", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lb%2ftargetGroupAttachment:TargetGroupAttachment", "description": "Underlying Target Group Attachment resource", "language": { "csharp": { @@ -3354,7 +3509,7 @@ ], "inputProperties": { "instance": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:ec2%2finstance:Instance", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:ec2%2finstance:Instance", "description": "EC2 Instance to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided." }, "instanceId": { @@ -3362,7 +3517,7 @@ "description": "ID of an EC2 Instance to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided." }, "lambda": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lambda%2ffunction:Function", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lambda%2ffunction:Function", "description": "Lambda Function to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided.", "language": { "python": { @@ -3375,7 +3530,7 @@ "description": "ARN of a Lambda Function to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided." }, "targetGroup": { - "$ref": "/aws/v6.66.3/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", + "$ref": "/aws/v7.0.0-alpha.2/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", "description": "Target Group to attach to. Exactly one of [targetGroup] or [targetGroupArn] must be specified." }, "targetGroupArn": { @@ -3421,4 +3576,4 @@ } } } -} \ No newline at end of file +} diff --git a/provider/pkg/schemagen/schema.go b/provider/pkg/schemagen/schema.go index a3dd6c5cf..25183b371 100644 --- a/provider/pkg/schemagen/schema.go +++ b/provider/pkg/schemagen/schema.go @@ -57,7 +57,7 @@ func GenerateSchema(packageDir string) schema.PackageSpec { "packageReferences": map[string]string{ // We use .* format rather than [x,y) because then it prefers the maximum satisfiable version "Pulumi": "3.*", - "Pulumi.Aws": "6.*", + "Pulumi.Aws": "7.0.0-alpha.2", "Pulumi.Docker": "4.*", "Pulumi.DockerBuild": "0.*", }, @@ -100,7 +100,7 @@ func GenerateSchema(packageDir string) schema.PackageSpec { }), "python": rawMessage(map[string]interface{}{ "requires": map[string]string{ - "pulumi-aws": ">=6.0.4,<7.0.0", + "pulumi-aws": ">=7.0.0-alpha.2,<8.0.0", "pulumi-docker": fmt.Sprintf(">=%s,<5.0.0", dependencies.Docker), "pulumi-docker-build": fmt.Sprintf(">=%s,<1.0.0", dependencies.DockerBuild), }, diff --git a/sdk/dotnet/Awsx/Inputs/BucketArgs.cs b/sdk/dotnet/Awsx/Inputs/BucketArgs.cs index 13e8d5587..9ff2cb083 100644 --- a/sdk/dotnet/Awsx/Inputs/BucketArgs.cs +++ b/sdk/dotnet/Awsx/Inputs/BucketArgs.cs @@ -16,25 +16,20 @@ namespace Pulumi.Awsx.Awsx.Inputs public sealed class BucketArgs : global::Pulumi.ResourceArgs { /// - /// Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + /// Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + /// Use the resource `aws.s3.BucketAccelerateConfiguration` instead. /// [Input("accelerationStatus")] public Input? AccelerationStatus { get; set; } /// - /// The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + /// The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. /// [Input("acl")] public Input? Acl { get; set; } /// - /// The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. - /// - [Input("arn")] - public Input? Arn { get; set; } - - /// - /// The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + /// Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. /// [Input("bucket")] public Input? BucketName { get; set; } @@ -49,8 +44,9 @@ public sealed class BucketArgs : global::Pulumi.ResourceArgs private InputList? _corsRules; /// - /// A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + /// Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. /// + [Obsolete(@"cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead.")] public InputList CorsRules { get => _corsRules ?? (_corsRules = new InputList()); @@ -58,7 +54,7 @@ public InputList CorsRules } /// - /// A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + /// Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. /// [Input("forceDestroy")] public Input? ForceDestroy { get; set; } @@ -67,75 +63,85 @@ public InputList CorsRules private InputList? _grants; /// - /// An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + /// An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. /// + [Obsolete(@"grant is deprecated. Use the aws.s3.BucketAcl resource instead.")] public InputList Grants { get => _grants ?? (_grants = new InputList()); set => _grants = value; } - /// - /// The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. - /// - [Input("hostedZoneId")] - public Input? HostedZoneId { get; set; } - [Input("lifecycleRules")] private InputList? _lifecycleRules; /// - /// A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + /// Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + /// Use the resource `aws.s3.BucketLifecycleConfiguration` instead. /// + [Obsolete(@"lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead.")] public InputList LifecycleRules { get => _lifecycleRules ?? (_lifecycleRules = new InputList()); set => _lifecycleRules = value; } - [Input("loggings")] - private InputList? _loggings; - /// - /// A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + /// Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + /// Use the resource `aws.s3.BucketLogging` instead. /// - public InputList Loggings - { - get => _loggings ?? (_loggings = new InputList()); - set => _loggings = value; - } + [Input("logging")] + public Input? Logging { get; set; } /// - /// A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) - /// - /// > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` + /// Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + /// The provider wil only perform drift detection if a configuration value is provided. + /// Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. /// [Input("objectLockConfiguration")] public Input? ObjectLockConfiguration { get; set; } /// - /// A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + /// Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + /// + [Input("objectLockEnabled")] + public Input? ObjectLockEnabled { get; set; } + + /// + /// Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + /// The provider will only perform drift detection if a configuration value is provided. + /// Use the resource `aws.s3.BucketPolicy` instead. /// [Input("policy")] public Input? Policy { get; set; } /// - /// A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + /// Use the resource `aws.s3.BucketReplicationConfig` instead. /// [Input("replicationConfiguration")] public Input? ReplicationConfiguration { get; set; } /// /// Specifies who should bear the cost of Amazon S3 data transfer. - /// Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - /// the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - /// developer guide for more information. + /// Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + /// See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + /// The provider will only perform drift detection if a configuration value is provided. + /// Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. /// [Input("requestPayer")] public Input? RequestPayer { get; set; } /// - /// A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + /// Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + /// The provider will only perform drift detection if a configuration value is provided. + /// Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. /// [Input("serverSideEncryptionConfiguration")] public Input? ServerSideEncryptionConfiguration { get; set; } @@ -144,7 +150,9 @@ public InputList Loggings private InputMap? _tags; /// - /// A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + /// The following arguments are deprecated, and will be removed in a future major version: /// public InputMap Tags { @@ -153,29 +161,18 @@ public InputMap Tags } /// - /// A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + /// Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. /// [Input("versioning")] public Input? Versioning { get; set; } /// - /// A website object (documented below). + /// Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + /// Use the resource `aws.s3.BucketWebsiteConfiguration` instead. /// [Input("website")] public Input? Website { get; set; } - /// - /// The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - /// - [Input("websiteDomain")] - public Input? WebsiteDomain { get; set; } - - /// - /// The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. - /// - [Input("websiteEndpoint")] - public Input? WebsiteEndpoint { get; set; } - public BucketArgs() { } diff --git a/sdk/dotnet/Awsx/Inputs/LogGroupArgs.cs b/sdk/dotnet/Awsx/Inputs/LogGroupArgs.cs index 56677dc1d..b7461cfc4 100644 --- a/sdk/dotnet/Awsx/Inputs/LogGroupArgs.cs +++ b/sdk/dotnet/Awsx/Inputs/LogGroupArgs.cs @@ -41,6 +41,12 @@ public sealed class LogGroupArgs : global::Pulumi.ResourceArgs [Input("namePrefix")] public Input? NamePrefix { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + /// /// Specifies the number of days /// you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. diff --git a/sdk/dotnet/Awsx/Inputs/SecurityGroupArgs.cs b/sdk/dotnet/Awsx/Inputs/SecurityGroupArgs.cs index 6bd1831f3..1726a2265 100644 --- a/sdk/dotnet/Awsx/Inputs/SecurityGroupArgs.cs +++ b/sdk/dotnet/Awsx/Inputs/SecurityGroupArgs.cs @@ -57,6 +57,12 @@ public InputList Ingress [Input("namePrefix")] public Input? NamePrefix { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + /// /// Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. /// diff --git a/sdk/dotnet/Cloudtrail/Trail.cs b/sdk/dotnet/Cloudtrail/Trail.cs index ccbfe002d..d0779f5ef 100644 --- a/sdk/dotnet/Cloudtrail/Trail.cs +++ b/sdk/dotnet/Cloudtrail/Trail.cs @@ -142,6 +142,12 @@ public InputList InsightS [Input("name")] public Input? Name { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + /// /// S3 bucket designated for publishing log files. /// @@ -155,7 +161,7 @@ public InputList InsightS public Input? S3KeyPrefix { get; set; } /// - /// Name of the Amazon SNS topic defined for notification of log file delivery. + /// Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. /// [Input("snsTopicName")] public Input? SnsTopicName { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/VpcEndpointSpecArgs.cs b/sdk/dotnet/Ec2/Inputs/VpcEndpointSpecArgs.cs index 6a7d9c2bd..074d4a343 100644 --- a/sdk/dotnet/Ec2/Inputs/VpcEndpointSpecArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/VpcEndpointSpecArgs.cs @@ -63,7 +63,7 @@ namespace Pulumi.Awsx.Ec2.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -169,7 +169,7 @@ namespace Pulumi.Awsx.Ec2.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -283,7 +283,7 @@ namespace Pulumi.Awsx.Ec2.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -440,7 +440,7 @@ namespace Pulumi.Awsx.Ec2.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -609,8 +609,8 @@ namespace Pulumi.Awsx.Ec2.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -672,11 +672,12 @@ namespace Pulumi.Awsx.Ec2.Inputs /// } /// /// public static void stack(Context ctx) { - /// final var current = AwsFunctions.getCallerIdentity(); + /// final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() + /// .build()); /// /// var example = new VpcEndpointService("example", VpcEndpointServiceArgs.builder() /// .acceptanceRequired(false) - /// .allowedPrincipals(current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.arn())) + /// .allowedPrincipals(current.arn()) /// .gatewayLoadBalancerArns(exampleAwsLb.arn()) /// .build()); /// @@ -717,6 +718,234 @@ namespace Pulumi.Awsx.Ec2.Inputs /// ``` /// <!--End PulumiCodeChooser --> /// + /// ### VPC Lattice Resource Configuration Endpoint Type + /// + /// <!--Start PulumiCodeChooser --> + /// ```typescript + /// import * as pulumi from "@pulumi/pulumi"; + /// import * as aws from "@pulumi/aws"; + /// + /// const example = new aws.ec2.VpcEndpoint("example", { + /// resourceConfigurationArn: exampleAwsVpclatticeResourceConfiguration.arn, + /// subnetIds: [exampleAwsSubnet.id], + /// vpcEndpointType: "Resource", + /// vpcId: exampleAwsVpc.id, + /// }); + /// ``` + /// ```python + /// import pulumi + /// import pulumi_aws as aws + /// + /// example = aws.ec2.VpcEndpoint("example", + /// resource_configuration_arn=example_aws_vpclattice_resource_configuration["arn"], + /// subnet_ids=[example_aws_subnet["id"]], + /// vpc_endpoint_type="Resource", + /// vpc_id=example_aws_vpc["id"]) + /// ``` + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Ec2.VpcEndpoint("example", new() + /// { + /// ResourceConfigurationArn = exampleAwsVpclatticeResourceConfiguration.Arn, + /// SubnetIds = new[] + /// { + /// exampleAwsSubnet.Id, + /// }, + /// VpcEndpointType = "Resource", + /// VpcId = exampleAwsVpc.Id, + /// }); + /// + /// }); + /// ``` + /// ```go + /// package main + /// + /// import ( + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + /// ) + /// + /// func main() { + /// pulumi.Run(func(ctx *pulumi.Context) error { + /// _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ + /// ResourceConfigurationArn: pulumi.Any(exampleAwsVpclatticeResourceConfiguration.Arn), + /// SubnetIds: pulumi.StringArray{ + /// exampleAwsSubnet.Id, + /// }, + /// VpcEndpointType: pulumi.String("Resource"), + /// VpcId: pulumi.Any(exampleAwsVpc.Id), + /// }) + /// if err != nil { + /// return err + /// } + /// return nil + /// }) + /// } + /// ``` + /// ```java + /// package generated_program; + /// + /// import com.pulumi.Context; + /// import com.pulumi.Pulumi; + /// import com.pulumi.core.Output; + /// import com.pulumi.aws.ec2.VpcEndpoint; + /// import com.pulumi.aws.ec2.VpcEndpointArgs; + /// 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 VpcEndpoint("example", VpcEndpointArgs.builder() + /// .resourceConfigurationArn(exampleAwsVpclatticeResourceConfiguration.arn()) + /// .subnetIds(exampleAwsSubnet.id()) + /// .vpcEndpointType("Resource") + /// .vpcId(exampleAwsVpc.id()) + /// .build()); + /// + /// } + /// } + /// ``` + /// ```yaml + /// resources: + /// example: + /// type: aws:ec2:VpcEndpoint + /// properties: + /// resourceConfigurationArn: ${exampleAwsVpclatticeResourceConfiguration.arn} + /// subnetIds: + /// - ${exampleAwsSubnet.id} + /// vpcEndpointType: Resource + /// vpcId: ${exampleAwsVpc.id} + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ### VPC Lattice Service Network Endpoint Type + /// + /// <!--Start PulumiCodeChooser --> + /// ```typescript + /// import * as pulumi from "@pulumi/pulumi"; + /// import * as aws from "@pulumi/aws"; + /// + /// const example = new aws.ec2.VpcEndpoint("example", { + /// serviceNetworkArn: exampleAwsVpclatticeServiceNetwork.arn, + /// subnetIds: [exampleAwsSubnet.id], + /// vpcEndpointType: "ServiceNetwork", + /// vpcId: exampleAwsVpc.id, + /// }); + /// ``` + /// ```python + /// import pulumi + /// import pulumi_aws as aws + /// + /// example = aws.ec2.VpcEndpoint("example", + /// service_network_arn=example_aws_vpclattice_service_network["arn"], + /// subnet_ids=[example_aws_subnet["id"]], + /// vpc_endpoint_type="ServiceNetwork", + /// vpc_id=example_aws_vpc["id"]) + /// ``` + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Ec2.VpcEndpoint("example", new() + /// { + /// ServiceNetworkArn = exampleAwsVpclatticeServiceNetwork.Arn, + /// SubnetIds = new[] + /// { + /// exampleAwsSubnet.Id, + /// }, + /// VpcEndpointType = "ServiceNetwork", + /// VpcId = exampleAwsVpc.Id, + /// }); + /// + /// }); + /// ``` + /// ```go + /// package main + /// + /// import ( + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + /// ) + /// + /// func main() { + /// pulumi.Run(func(ctx *pulumi.Context) error { + /// _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ + /// ServiceNetworkArn: pulumi.Any(exampleAwsVpclatticeServiceNetwork.Arn), + /// SubnetIds: pulumi.StringArray{ + /// exampleAwsSubnet.Id, + /// }, + /// VpcEndpointType: pulumi.String("ServiceNetwork"), + /// VpcId: pulumi.Any(exampleAwsVpc.Id), + /// }) + /// if err != nil { + /// return err + /// } + /// return nil + /// }) + /// } + /// ``` + /// ```java + /// package generated_program; + /// + /// import com.pulumi.Context; + /// import com.pulumi.Pulumi; + /// import com.pulumi.core.Output; + /// import com.pulumi.aws.ec2.VpcEndpoint; + /// import com.pulumi.aws.ec2.VpcEndpointArgs; + /// 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 VpcEndpoint("example", VpcEndpointArgs.builder() + /// .serviceNetworkArn(exampleAwsVpclatticeServiceNetwork.arn()) + /// .subnetIds(exampleAwsSubnet.id()) + /// .vpcEndpointType("ServiceNetwork") + /// .vpcId(exampleAwsVpc.id()) + /// .build()); + /// + /// } + /// } + /// ``` + /// ```yaml + /// resources: + /// example: + /// type: aws:ec2:VpcEndpoint + /// properties: + /// serviceNetworkArn: ${exampleAwsVpclatticeServiceNetwork.arn} + /// subnetIds: + /// - ${exampleAwsSubnet.id} + /// vpcEndpointType: ServiceNetwork + /// vpcId: ${exampleAwsVpc.id} + /// ``` + /// <!--End PulumiCodeChooser --> + /// /// ## Import /// /// Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example: @@ -757,6 +986,18 @@ public sealed class VpcEndpointSpecArgs : global::Pulumi.ResourceArgs [Input("privateDnsEnabled")] public bool? PrivateDnsEnabled { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + /// + [Input("resourceConfigurationArn")] + public Input? ResourceConfigurationArn { get; set; } + [Input("routeTableIds")] private InputList? _routeTableIds; @@ -788,6 +1029,12 @@ public InputList SecurityGroupIds [Input("serviceName", required: true)] public string ServiceName { get; set; } = null!; + /// + /// The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + /// + [Input("serviceNetworkArn")] + public Input? ServiceNetworkArn { get; set; } + /// /// The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. /// @@ -831,7 +1078,7 @@ public InputMap Tags } /// - /// The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + /// The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. /// [Input("vpcEndpointType")] public Input? VpcEndpointType { get; set; } diff --git a/sdk/dotnet/Ec2/Vpc.cs b/sdk/dotnet/Ec2/Vpc.cs index 6f27acc81..a2a18f088 100644 --- a/sdk/dotnet/Ec2/Vpc.cs +++ b/sdk/dotnet/Ec2/Vpc.cs @@ -264,6 +264,12 @@ public List AvailabilityZoneNames [Input("numberOfAvailabilityZones")] public int? NumberOfAvailabilityZones { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + [Input("subnetSpecs")] private List? _subnetSpecs; diff --git a/sdk/dotnet/Ecr/Repository.cs b/sdk/dotnet/Ecr/Repository.cs index a840ba033..0e936d98f 100644 --- a/sdk/dotnet/Ecr/Repository.cs +++ b/sdk/dotnet/Ecr/Repository.cs @@ -106,6 +106,12 @@ public InputList En [Input("name")] public Input? Name { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + [Input("tags")] private InputMap? _tags; diff --git a/sdk/dotnet/Ecs/EC2Service.cs b/sdk/dotnet/Ecs/EC2Service.cs index 6ce2c3e06..aa7efebb7 100644 --- a/sdk/dotnet/Ecs/EC2Service.cs +++ b/sdk/dotnet/Ecs/EC2Service.cs @@ -221,6 +221,12 @@ public InputList Placement [Input("propagateTags")] public Input? PropagateTags { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + /// /// Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). /// diff --git a/sdk/dotnet/Ecs/EC2TaskDefinition.cs b/sdk/dotnet/Ecs/EC2TaskDefinition.cs index e96aa1148..91e26d253 100644 --- a/sdk/dotnet/Ecs/EC2TaskDefinition.cs +++ b/sdk/dotnet/Ecs/EC2TaskDefinition.cs @@ -105,6 +105,12 @@ public sealed class EC2TaskDefinitionArgs : global::Pulumi.ResourceArgs [Input("cpu")] public Input? Cpu { get; set; } + /// + /// Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + /// + [Input("enableFaultInjection")] + public Input? EnableFaultInjection { get; set; } + /// /// The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. /// @@ -124,18 +130,6 @@ public sealed class EC2TaskDefinitionArgs : global::Pulumi.ResourceArgs [Input("family")] public Input? Family { get; set; } - [Input("inferenceAccelerators")] - private InputList? _inferenceAccelerators; - - /// - /// Configuration block(s) with Inference Accelerators settings. Detailed below. - /// - public InputList InferenceAccelerators - { - get => _inferenceAccelerators ?? (_inferenceAccelerators = new InputList()); - set => _inferenceAccelerators = value; - } - /// /// IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. /// @@ -185,6 +179,12 @@ public InputList Pl [Input("proxyConfiguration")] public Input? ProxyConfiguration { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + /// /// Configuration block for runtime_platform that containers in your task may use. /// @@ -227,6 +227,10 @@ public InputMap Tags /// /// Configuration block for volumes that containers in your task may use. Detailed below. + /// + /// > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + /// + /// > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. /// public InputList Volumes { diff --git a/sdk/dotnet/Ecs/FargateService.cs b/sdk/dotnet/Ecs/FargateService.cs index b72bee358..a948ca88c 100644 --- a/sdk/dotnet/Ecs/FargateService.cs +++ b/sdk/dotnet/Ecs/FargateService.cs @@ -203,6 +203,12 @@ public InputList Placement [Input("propagateTags")] public Input? PropagateTags { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + /// /// Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). /// diff --git a/sdk/dotnet/Ecs/FargateTaskDefinition.cs b/sdk/dotnet/Ecs/FargateTaskDefinition.cs index 53f39add0..55b4c76bc 100644 --- a/sdk/dotnet/Ecs/FargateTaskDefinition.cs +++ b/sdk/dotnet/Ecs/FargateTaskDefinition.cs @@ -105,6 +105,12 @@ public sealed class FargateTaskDefinitionArgs : global::Pulumi.ResourceArgs [Input("cpu")] public Input? Cpu { get; set; } + /// + /// Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + /// + [Input("enableFaultInjection")] + public Input? EnableFaultInjection { get; set; } + /// /// The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. /// @@ -124,18 +130,6 @@ public sealed class FargateTaskDefinitionArgs : global::Pulumi.ResourceArgs [Input("family")] public Input? Family { get; set; } - [Input("inferenceAccelerators")] - private InputList? _inferenceAccelerators; - - /// - /// Configuration block(s) with Inference Accelerators settings. Detailed below. - /// - public InputList InferenceAccelerators - { - get => _inferenceAccelerators ?? (_inferenceAccelerators = new InputList()); - set => _inferenceAccelerators = value; - } - /// /// IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. /// @@ -179,6 +173,12 @@ public InputList Pl [Input("proxyConfiguration")] public Input? ProxyConfiguration { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + /// /// Configuration block for runtime_platform that containers in your task may use. /// @@ -221,6 +221,10 @@ public InputMap Tags /// /// Configuration block for volumes that containers in your task may use. Detailed below. + /// + /// > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + /// + /// > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. /// public InputList Volumes { diff --git a/sdk/dotnet/Ecs/Inputs/EC2ServiceTaskDefinitionArgs.cs b/sdk/dotnet/Ecs/Inputs/EC2ServiceTaskDefinitionArgs.cs index 3589644fe..6f7760380 100644 --- a/sdk/dotnet/Ecs/Inputs/EC2ServiceTaskDefinitionArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/EC2ServiceTaskDefinitionArgs.cs @@ -47,6 +47,12 @@ public sealed class EC2ServiceTaskDefinitionArgs : global::Pulumi.ResourceArgs [Input("cpu")] public Input? Cpu { get; set; } + /// + /// Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + /// + [Input("enableFaultInjection")] + public Input? EnableFaultInjection { get; set; } + /// /// The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. /// @@ -66,18 +72,6 @@ public sealed class EC2ServiceTaskDefinitionArgs : global::Pulumi.ResourceArgs [Input("family")] public Input? Family { get; set; } - [Input("inferenceAccelerators")] - private InputList? _inferenceAccelerators; - - /// - /// Configuration block(s) with Inference Accelerators settings. Detailed below. - /// - public InputList InferenceAccelerators - { - get => _inferenceAccelerators ?? (_inferenceAccelerators = new InputList()); - set => _inferenceAccelerators = value; - } - /// /// IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. /// @@ -127,6 +121,12 @@ public InputList Pl [Input("proxyConfiguration")] public Input? ProxyConfiguration { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + /// /// Configuration block for runtime_platform that containers in your task may use. /// @@ -169,6 +169,10 @@ public InputMap Tags /// /// Configuration block for volumes that containers in your task may use. Detailed below. + /// + /// > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + /// + /// > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. /// public InputList Volumes { diff --git a/sdk/dotnet/Ecs/Inputs/FargateServiceTaskDefinitionArgs.cs b/sdk/dotnet/Ecs/Inputs/FargateServiceTaskDefinitionArgs.cs index 2de8b8ced..5100e7368 100644 --- a/sdk/dotnet/Ecs/Inputs/FargateServiceTaskDefinitionArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/FargateServiceTaskDefinitionArgs.cs @@ -47,6 +47,12 @@ public sealed class FargateServiceTaskDefinitionArgs : global::Pulumi.ResourceAr [Input("cpu")] public Input? Cpu { get; set; } + /// + /// Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + /// + [Input("enableFaultInjection")] + public Input? EnableFaultInjection { get; set; } + /// /// The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. /// @@ -66,18 +72,6 @@ public sealed class FargateServiceTaskDefinitionArgs : global::Pulumi.ResourceAr [Input("family")] public Input? Family { get; set; } - [Input("inferenceAccelerators")] - private InputList? _inferenceAccelerators; - - /// - /// Configuration block(s) with Inference Accelerators settings. Detailed below. - /// - public InputList InferenceAccelerators - { - get => _inferenceAccelerators ?? (_inferenceAccelerators = new InputList()); - set => _inferenceAccelerators = value; - } - /// /// IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. /// @@ -121,6 +115,12 @@ public InputList Pl [Input("proxyConfiguration")] public Input? ProxyConfiguration { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + /// /// Configuration block for runtime_platform that containers in your task may use. /// @@ -163,6 +163,10 @@ public InputMap Tags /// /// Configuration block for volumes that containers in your task may use. Detailed below. + /// + /// > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + /// + /// > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. /// public InputList Volumes { diff --git a/sdk/dotnet/Lb/ApplicationLoadBalancer.cs b/sdk/dotnet/Lb/ApplicationLoadBalancer.cs index 52e5a9416..22cb13d84 100644 --- a/sdk/dotnet/Lb/ApplicationLoadBalancer.cs +++ b/sdk/dotnet/Lb/ApplicationLoadBalancer.cs @@ -193,6 +193,12 @@ public sealed class ApplicationLoadBalancerArgs : global::Pulumi.ResourceArgs [Input("ipAddressType")] public Input? IpAddressType { get; set; } + /// + /// . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + /// + [Input("ipamPools")] + public Input? IpamPools { get; set; } + /// /// A listener to create. Only one of [listener] and [listeners] can be specified. /// @@ -211,6 +217,12 @@ public List Listeners set => _listeners = value; } + /// + /// Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + /// + [Input("minimumLoadBalancerCapacity")] + public Input? MinimumLoadBalancerCapacity { get; set; } + /// /// 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`. /// @@ -229,6 +241,12 @@ public List Listeners [Input("preserveHostHeader")] public Input? PreserveHostHeader { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + [Input("securityGroups")] private InputList? _securityGroups; @@ -291,6 +309,10 @@ public InputMap Tags /// /// 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`. + /// + /// > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + /// + /// > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. /// [Input("xffHeaderProcessingMode")] public Input? XffHeaderProcessingMode { get; set; } diff --git a/sdk/dotnet/Lb/Inputs/ListenerArgs.cs b/sdk/dotnet/Lb/Inputs/ListenerArgs.cs index d395f4397..1aec8b76b 100644 --- a/sdk/dotnet/Lb/Inputs/ListenerArgs.cs +++ b/sdk/dotnet/Lb/Inputs/ListenerArgs.cs @@ -90,7 +90,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -154,7 +154,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// /// var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() /// .loadBalancerArn(frontEnd.arn()) - /// .port("443") + /// .port(443) /// .protocol("HTTPS") /// .sslPolicy("ELBSecurityPolicy-2016-08") /// .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") @@ -258,7 +258,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -309,7 +309,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// public static void stack(Context ctx) { /// var frontEnd = new Listener("frontEnd", ListenerArgs.builder() /// .loadBalancerArn(frontEndAwsLb.arn()) - /// .port("443") + /// .port(443) /// .protocol("TLS") /// .sslPolicy("ELBSecurityPolicy-2016-08") /// .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") @@ -417,7 +417,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -477,7 +477,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// /// var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() /// .loadBalancerArn(frontEnd.arn()) - /// .port("80") + /// .port(80) /// .protocol("HTTP") /// .defaultActions(ListenerDefaultActionArgs.builder() /// .type("redirect") @@ -589,7 +589,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -649,7 +649,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// /// var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() /// .loadBalancerArn(frontEnd.arn()) - /// .port("80") + /// .port(80) /// .protocol("HTTP") /// .defaultActions(ListenerDefaultActionArgs.builder() /// .type("fixed-response") @@ -794,8 +794,8 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito" - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cognito" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -887,7 +887,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// /// var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() /// .loadBalancerArn(frontEnd.arn()) - /// .port("80") + /// .port(80) /// .protocol("HTTP") /// .defaultActions( /// ListenerDefaultActionArgs.builder() @@ -1045,7 +1045,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -1119,7 +1119,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// /// var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() /// .loadBalancerArn(frontEnd.arn()) - /// .port("80") + /// .port(80) /// .protocol("HTTP") /// .defaultActions( /// ListenerDefaultActionArgs.builder() @@ -1282,7 +1282,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -1371,7 +1371,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// .protocol("GENEVE") /// .vpcId(exampleAwsVpc.id()) /// .healthCheck(TargetGroupHealthCheckArgs.builder() - /// .port(80) + /// .port("80") /// .protocol("HTTP") /// .build()) /// .build()); @@ -1495,7 +1495,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -1653,6 +1653,126 @@ public InputList DefaultActions [Input("protocol")] public Input? Protocol { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + /// + [Input("routingHttpRequestXAmznMtlsClientcertHeaderName")] + public Input? RoutingHttpRequestXAmznMtlsClientcertHeaderName { get; set; } + + /// + /// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + /// + [Input("routingHttpRequestXAmznMtlsClientcertIssuerHeaderName")] + public Input? RoutingHttpRequestXAmznMtlsClientcertIssuerHeaderName { get; set; } + + /// + /// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + /// + [Input("routingHttpRequestXAmznMtlsClientcertLeafHeaderName")] + public Input? RoutingHttpRequestXAmznMtlsClientcertLeafHeaderName { get; set; } + + /// + /// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + /// + [Input("routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName")] + public Input? RoutingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName { get; set; } + + /// + /// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + /// + [Input("routingHttpRequestXAmznMtlsClientcertSubjectHeaderName")] + public Input? RoutingHttpRequestXAmznMtlsClientcertSubjectHeaderName { get; set; } + + /// + /// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + /// + [Input("routingHttpRequestXAmznMtlsClientcertValidityHeaderName")] + public Input? RoutingHttpRequestXAmznMtlsClientcertValidityHeaderName { get; set; } + + /// + /// Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + /// + [Input("routingHttpRequestXAmznTlsCipherSuiteHeaderName")] + public Input? RoutingHttpRequestXAmznTlsCipherSuiteHeaderName { get; set; } + + /// + /// Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + /// + [Input("routingHttpRequestXAmznTlsVersionHeaderName")] + public Input? RoutingHttpRequestXAmznTlsVersionHeaderName { get; set; } + + /// + /// Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + /// + [Input("routingHttpResponseAccessControlAllowCredentialsHeaderValue")] + public Input? RoutingHttpResponseAccessControlAllowCredentialsHeaderValue { get; set; } + + /// + /// Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + /// + [Input("routingHttpResponseAccessControlAllowHeadersHeaderValue")] + public Input? RoutingHttpResponseAccessControlAllowHeadersHeaderValue { get; set; } + + /// + /// Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + /// + [Input("routingHttpResponseAccessControlAllowMethodsHeaderValue")] + public Input? RoutingHttpResponseAccessControlAllowMethodsHeaderValue { get; set; } + + /// + /// Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + /// + [Input("routingHttpResponseAccessControlAllowOriginHeaderValue")] + public Input? RoutingHttpResponseAccessControlAllowOriginHeaderValue { get; set; } + + /// + /// Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + /// + [Input("routingHttpResponseAccessControlExposeHeadersHeaderValue")] + public Input? RoutingHttpResponseAccessControlExposeHeadersHeaderValue { get; set; } + + /// + /// Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + /// + [Input("routingHttpResponseAccessControlMaxAgeHeaderValue")] + public Input? RoutingHttpResponseAccessControlMaxAgeHeaderValue { get; set; } + + /// + /// Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + /// + [Input("routingHttpResponseContentSecurityPolicyHeaderValue")] + public Input? RoutingHttpResponseContentSecurityPolicyHeaderValue { get; set; } + + /// + /// Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + /// + [Input("routingHttpResponseServerEnabled")] + public Input? RoutingHttpResponseServerEnabled { get; set; } + + /// + /// Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + /// + [Input("routingHttpResponseStrictTransportSecurityHeaderValue")] + public Input? RoutingHttpResponseStrictTransportSecurityHeaderValue { get; set; } + + /// + /// Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + /// + [Input("routingHttpResponseXContentTypeOptionsHeaderValue")] + public Input? RoutingHttpResponseXContentTypeOptionsHeaderValue { get; set; } + + /// + /// Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. + /// + [Input("routingHttpResponseXFrameOptionsHeaderValue")] + public Input? RoutingHttpResponseXFrameOptionsHeaderValue { get; set; } + /// /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. /// diff --git a/sdk/dotnet/Lb/Inputs/TargetGroupArgs.cs b/sdk/dotnet/Lb/Inputs/TargetGroupArgs.cs index 01c1b1a55..035b8990e 100644 --- a/sdk/dotnet/Lb/Inputs/TargetGroupArgs.cs +++ b/sdk/dotnet/Lb/Inputs/TargetGroupArgs.cs @@ -70,8 +70,8 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -205,8 +205,8 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -327,7 +327,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -432,7 +432,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -556,7 +556,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -708,7 +708,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// package main /// /// import ( - /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" /// ) /// @@ -772,7 +772,7 @@ namespace Pulumi.Awsx.Lb.Inputs /// .minimumHealthyTargetsPercentage("off") /// .build()) /// .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder() - /// .minimumHealthyTargetsCount("1") + /// .minimumHealthyTargetsCount(1) /// .minimumHealthyTargetsPercentage("off") /// .build()) /// .build()) @@ -903,6 +903,12 @@ public sealed class TargetGroupArgs : global::Pulumi.ResourceArgs [Input("proxyProtocolV2")] public Input? ProxyProtocolV2 { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + /// /// Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. /// diff --git a/sdk/dotnet/Lb/NetworkLoadBalancer.cs b/sdk/dotnet/Lb/NetworkLoadBalancer.cs index dda8012c5..e3885aad2 100644 --- a/sdk/dotnet/Lb/NetworkLoadBalancer.cs +++ b/sdk/dotnet/Lb/NetworkLoadBalancer.cs @@ -181,6 +181,12 @@ public sealed class NetworkLoadBalancerArgs : global::Pulumi.ResourceArgs [Input("ipAddressType")] public Input? IpAddressType { get; set; } + /// + /// . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + /// + [Input("ipamPools")] + public Input? IpamPools { get; set; } + /// /// A listener to create. Only one of [listener] and [listeners] can be specified. /// @@ -199,6 +205,12 @@ public List Listeners set => _listeners = value; } + /// + /// Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + /// + [Input("minimumLoadBalancerCapacity")] + public Input? MinimumLoadBalancerCapacity { get; set; } + /// /// 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`. /// @@ -217,6 +229,12 @@ public List Listeners [Input("preserveHostHeader")] public Input? PreserveHostHeader { get; set; } + /// + /// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + /// + [Input("region")] + public Input? Region { get; set; } + [Input("securityGroups")] private InputList? _securityGroups; @@ -279,6 +297,10 @@ public InputMap Tags /// /// 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`. + /// + /// > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + /// + /// > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. /// [Input("xffHeaderProcessingMode")] public Input? XffHeaderProcessingMode { get; set; } diff --git a/sdk/dotnet/Pulumi.Awsx.csproj b/sdk/dotnet/Pulumi.Awsx.csproj index 173acca16..3a69053f0 100644 --- a/sdk/dotnet/Pulumi.Awsx.csproj +++ b/sdk/dotnet/Pulumi.Awsx.csproj @@ -46,7 +46,7 @@ - + diff --git a/sdk/dotnet/go.sum b/sdk/dotnet/go.sum deleted file mode 100644 index e69de29bb..000000000 diff --git a/sdk/go.mod b/sdk/go.mod index cd639feac..9dc843622 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -6,10 +6,10 @@ toolchain go1.22.4 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi-aws/sdk/v6 v6.66.2 + github.com/pulumi/pulumi-aws/sdk/v7 v7.0.0-alpha.2 github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.3 github.com/pulumi/pulumi-docker/sdk/v4 v4.5.8 - github.com/pulumi/pulumi/sdk/v3 v3.160.0 + github.com/pulumi/pulumi/sdk/v3 v3.163.0 ) require ( @@ -62,7 +62,7 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect - github.com/pulumi/esc v0.10.0 // indirect + github.com/pulumi/esc v0.13.0 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect diff --git a/sdk/go.sum b/sdk/go.sum index beac8b20f..7ec1c5873 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -144,16 +144,16 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0= github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= -github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE= -github.com/pulumi/esc v0.10.0/go.mod h1:2Bfa+FWj/xl8CKqRTWbWgDX0SOD4opdQgvYSURTGK2c= -github.com/pulumi/pulumi-aws/sdk/v6 v6.66.2 h1:mHiPVwdSQp5VjpvCdPy52FeMiNcscKvJP+len/mfqdU= -github.com/pulumi/pulumi-aws/sdk/v6 v6.66.2/go.mod h1:C+L8LtajPSwGsZiGgknkCwClUzXk+ZXzSGkOZTQMp3U= +github.com/pulumi/esc v0.13.0 h1:O2MPR2koScaQ2fXwyer8Q3Dd7z+DCnaDfsgNl5mVNMk= +github.com/pulumi/esc v0.13.0/go.mod h1:IIQo6W6Uzajt6f1RW4QvNxIRDlbK3TNQysnrwBHNo3U= +github.com/pulumi/pulumi-aws/sdk/v7 v7.0.0-alpha.2 h1:Y7fUesJDhwIzPyaCROgGFfP/kWUxOi0KroaHSaxIfYE= +github.com/pulumi/pulumi-aws/sdk/v7 v7.0.0-alpha.2/go.mod h1:wmOtVulu9SdwqHJ0X9g7AYHQ6DpRRchDKesuMHKCyec= github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.3 h1:NxCXxRvzhUJP9dIvlpNlZKt/A3NHu3i9pC5XO+i8bR0= github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.3/go.mod h1:jw9NcyRXjv5V2HHHJlqUBdXFCFiLfZoCChWEn38LR2A= github.com/pulumi/pulumi-docker/sdk/v4 v4.5.8 h1:rik9L2SIpsoDenY51MkogR6GWgu/0Sy/XmyQmKWNUqU= github.com/pulumi/pulumi-docker/sdk/v4 v4.5.8/go.mod h1:eph7BPNPkEIIK882/Ll4dbeHl5wZEc/UvTcUW0CK1UY= -github.com/pulumi/pulumi/sdk/v3 v3.160.0 h1:OxeATnIEqWyu3KpTeLUmyJdZaSEE6yX7ECvfGhByb9w= -github.com/pulumi/pulumi/sdk/v3 v3.160.0/go.mod h1:YEbbl0N7eVsgfsL7h5215dDf8GBSe4AnRon7Ya/KIVc= +github.com/pulumi/pulumi/sdk/v3 v3.163.0 h1:yiT1nPelxXILVrN0yRn0I3NO8Yybba2IvWArYBstZJ8= +github.com/pulumi/pulumi/sdk/v3 v3.163.0/go.mod h1:GAaHrdv3kWJHbzkFFFflGbTBQXUYu6SF1ZCo+O9jo44= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= diff --git a/sdk/go/awsx/awsx/pulumiTypes.go b/sdk/go/awsx/awsx/pulumiTypes.go index 5d747a193..b11c39220 100644 --- a/sdk/go/awsx/awsx/pulumiTypes.go +++ b/sdk/go/awsx/awsx/pulumiTypes.go @@ -7,9 +7,9 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -18,53 +18,83 @@ var _ = internal.GetEnvOrDefault // The set of arguments for constructing a Bucket resource. type Bucket struct { - // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketAccelerateConfiguration` instead. + // + // Deprecated: acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. AccelerationStatus *string `pulumi:"accelerationStatus"` - // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. Acl *string `pulumi:"acl"` - // The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. - Arn *string `pulumi:"arn"` - // The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + // Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. Bucket *string `pulumi:"bucket"` // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). BucketPrefix *string `pulumi:"bucketPrefix"` - // A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + // Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. + // + // Deprecated: cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. CorsRules []s3.BucketCorsRule `pulumi:"corsRules"` - // A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + // Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. ForceDestroy *bool `pulumi:"forceDestroy"` - // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. + // + // Deprecated: grant is deprecated. Use the aws.s3.BucketAcl resource instead. Grants []s3.BucketGrant `pulumi:"grants"` - // The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. - HostedZoneId *string `pulumi:"hostedZoneId"` - // A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + // Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketLifecycleConfiguration` instead. + // + // Deprecated: lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. LifecycleRules []s3.BucketLifecycleRule `pulumi:"lifecycleRules"` - // A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). - Loggings []s3.BucketLogging `pulumi:"loggings"` - // A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + // Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketLogging` instead. // - // > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` - ObjectLockConfiguration *s3.BucketObjectLockConfiguration `pulumi:"objectLockConfiguration"` - // A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + // Deprecated: logging is deprecated. Use the aws.s3.BucketLogging resource instead. + Logging *s3.BucketLoggingType `pulumi:"logging"` + // Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + // The provider wil only perform drift detection if a configuration value is provided. + // Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. + // + // Deprecated: object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. + ObjectLockConfiguration *s3.BucketObjectLockConfigurationType `pulumi:"objectLockConfiguration"` + // Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + ObjectLockEnabled *bool `pulumi:"objectLockEnabled"` + // Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketPolicy` instead. Policy *string `pulumi:"policy"` - // A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` + // Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketReplicationConfig` instead. + // + // Deprecated: replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. ReplicationConfiguration *s3.BucketReplicationConfiguration `pulumi:"replicationConfiguration"` // Specifies who should bear the cost of Amazon S3 data transfer. - // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - // the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - // developer guide for more information. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + // See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. + // + // Deprecated: request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. RequestPayer *string `pulumi:"requestPayer"` - // A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) - ServerSideEncryptionConfiguration *s3.BucketServerSideEncryptionConfiguration `pulumi:"serverSideEncryptionConfiguration"` - // A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. + // + // Deprecated: server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. + ServerSideEncryptionConfiguration *s3.BucketServerSideEncryptionConfigurationType `pulumi:"serverSideEncryptionConfiguration"` + // Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // The following arguments are deprecated, and will be removed in a future major version: Tags map[string]string `pulumi:"tags"` - // A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) - Versioning *s3.BucketVersioning `pulumi:"versioning"` - // A website object (documented below). + // Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. + // + // Deprecated: versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. + Versioning *s3.BucketVersioningType `pulumi:"versioning"` + // Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketWebsiteConfiguration` instead. + // + // Deprecated: website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. Website *s3.BucketWebsite `pulumi:"website"` - // The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - WebsiteDomain *string `pulumi:"websiteDomain"` - // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. - WebsiteEndpoint *string `pulumi:"websiteEndpoint"` } // BucketInput is an input type that accepts BucketArgs and BucketOutput values. @@ -80,53 +110,83 @@ type BucketInput interface { // The set of arguments for constructing a Bucket resource. type BucketArgs struct { - // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketAccelerateConfiguration` instead. + // + // Deprecated: acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. AccelerationStatus pulumi.StringPtrInput `pulumi:"accelerationStatus"` - // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. Acl pulumi.StringPtrInput `pulumi:"acl"` - // The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. - Arn pulumi.StringPtrInput `pulumi:"arn"` - // The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + // Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. Bucket pulumi.StringPtrInput `pulumi:"bucket"` // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). BucketPrefix pulumi.StringPtrInput `pulumi:"bucketPrefix"` - // A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + // Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. + // + // Deprecated: cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. CorsRules s3.BucketCorsRuleArrayInput `pulumi:"corsRules"` - // A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + // Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. ForceDestroy pulumi.BoolPtrInput `pulumi:"forceDestroy"` - // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. + // + // Deprecated: grant is deprecated. Use the aws.s3.BucketAcl resource instead. Grants s3.BucketGrantArrayInput `pulumi:"grants"` - // The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. - HostedZoneId pulumi.StringPtrInput `pulumi:"hostedZoneId"` - // A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + // Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketLifecycleConfiguration` instead. + // + // Deprecated: lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. LifecycleRules s3.BucketLifecycleRuleArrayInput `pulumi:"lifecycleRules"` - // A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). - Loggings s3.BucketLoggingArrayInput `pulumi:"loggings"` - // A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + // Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketLogging` instead. + // + // Deprecated: logging is deprecated. Use the aws.s3.BucketLogging resource instead. + Logging s3.BucketLoggingTypePtrInput `pulumi:"logging"` + // Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + // The provider wil only perform drift detection if a configuration value is provided. + // Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. // - // > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` - ObjectLockConfiguration s3.BucketObjectLockConfigurationPtrInput `pulumi:"objectLockConfiguration"` - // A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + // Deprecated: object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. + ObjectLockConfiguration s3.BucketObjectLockConfigurationTypePtrInput `pulumi:"objectLockConfiguration"` + // Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + ObjectLockEnabled pulumi.BoolPtrInput `pulumi:"objectLockEnabled"` + // Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketPolicy` instead. Policy pulumi.StringPtrInput `pulumi:"policy"` - // A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput `pulumi:"region"` + // Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketReplicationConfig` instead. + // + // Deprecated: replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. ReplicationConfiguration s3.BucketReplicationConfigurationPtrInput `pulumi:"replicationConfiguration"` // Specifies who should bear the cost of Amazon S3 data transfer. - // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - // the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - // developer guide for more information. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + // See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. + // + // Deprecated: request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. RequestPayer pulumi.StringPtrInput `pulumi:"requestPayer"` - // A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) - ServerSideEncryptionConfiguration s3.BucketServerSideEncryptionConfigurationPtrInput `pulumi:"serverSideEncryptionConfiguration"` - // A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. + // + // Deprecated: server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. + ServerSideEncryptionConfiguration s3.BucketServerSideEncryptionConfigurationTypePtrInput `pulumi:"serverSideEncryptionConfiguration"` + // Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // The following arguments are deprecated, and will be removed in a future major version: Tags pulumi.StringMapInput `pulumi:"tags"` - // A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) - Versioning s3.BucketVersioningPtrInput `pulumi:"versioning"` - // A website object (documented below). + // Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. + // + // Deprecated: versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. + Versioning s3.BucketVersioningTypePtrInput `pulumi:"versioning"` + // Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `aws.s3.BucketWebsiteConfiguration` instead. + // + // Deprecated: website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. Website s3.BucketWebsitePtrInput `pulumi:"website"` - // The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - WebsiteDomain pulumi.StringPtrInput `pulumi:"websiteDomain"` - // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. - WebsiteEndpoint pulumi.StringPtrInput `pulumi:"websiteEndpoint"` } func (BucketArgs) ElementType() reflect.Type { @@ -207,22 +267,20 @@ func (o BucketOutput) ToBucketPtrOutputWithContext(ctx context.Context) BucketPt }).(BucketPtrOutput) } -// Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. +// Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketAccelerateConfiguration` instead. +// +// Deprecated: acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. func (o BucketOutput) AccelerationStatus() pulumi.StringPtrOutput { return o.ApplyT(func(v Bucket) *string { return v.AccelerationStatus }).(pulumi.StringPtrOutput) } -// The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. +// The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. func (o BucketOutput) Acl() pulumi.StringPtrOutput { return o.ApplyT(func(v Bucket) *string { return v.Acl }).(pulumi.StringPtrOutput) } -// The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. -func (o BucketOutput) Arn() pulumi.StringPtrOutput { - return o.ApplyT(func(v Bucket) *string { return v.Arn }).(pulumi.StringPtrOutput) -} - -// The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). +// Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. func (o BucketOutput) Bucket() pulumi.StringPtrOutput { return o.ApplyT(func(v Bucket) *string { return v.Bucket }).(pulumi.StringPtrOutput) } @@ -232,91 +290,119 @@ func (o BucketOutput) BucketPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v Bucket) *string { return v.BucketPrefix }).(pulumi.StringPtrOutput) } -// A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). +// Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. +// +// Deprecated: cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. func (o BucketOutput) CorsRules() s3.BucketCorsRuleArrayOutput { return o.ApplyT(func(v Bucket) []s3.BucketCorsRule { return v.CorsRules }).(s3.BucketCorsRuleArrayOutput) } -// A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. +// Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. func (o BucketOutput) ForceDestroy() pulumi.BoolPtrOutput { return o.ApplyT(func(v Bucket) *bool { return v.ForceDestroy }).(pulumi.BoolPtrOutput) } -// An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. +// An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. +// +// Deprecated: grant is deprecated. Use the aws.s3.BucketAcl resource instead. func (o BucketOutput) Grants() s3.BucketGrantArrayOutput { return o.ApplyT(func(v Bucket) []s3.BucketGrant { return v.Grants }).(s3.BucketGrantArrayOutput) } -// The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. -func (o BucketOutput) HostedZoneId() pulumi.StringPtrOutput { - return o.ApplyT(func(v Bucket) *string { return v.HostedZoneId }).(pulumi.StringPtrOutput) -} - -// A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). +// Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketLifecycleConfiguration` instead. +// +// Deprecated: lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. func (o BucketOutput) LifecycleRules() s3.BucketLifecycleRuleArrayOutput { return o.ApplyT(func(v Bucket) []s3.BucketLifecycleRule { return v.LifecycleRules }).(s3.BucketLifecycleRuleArrayOutput) } -// A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). -func (o BucketOutput) Loggings() s3.BucketLoggingArrayOutput { - return o.ApplyT(func(v Bucket) []s3.BucketLogging { return v.Loggings }).(s3.BucketLoggingArrayOutput) +// Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketLogging` instead. +// +// Deprecated: logging is deprecated. Use the aws.s3.BucketLogging resource instead. +func (o BucketOutput) Logging() s3.BucketLoggingTypePtrOutput { + return o.ApplyT(func(v Bucket) *s3.BucketLoggingType { return v.Logging }).(s3.BucketLoggingTypePtrOutput) } -// A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) +// Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. +// The provider wil only perform drift detection if a configuration value is provided. +// Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. // -// > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` -func (o BucketOutput) ObjectLockConfiguration() s3.BucketObjectLockConfigurationPtrOutput { - return o.ApplyT(func(v Bucket) *s3.BucketObjectLockConfiguration { return v.ObjectLockConfiguration }).(s3.BucketObjectLockConfigurationPtrOutput) +// Deprecated: object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. +func (o BucketOutput) ObjectLockConfiguration() s3.BucketObjectLockConfigurationTypePtrOutput { + return o.ApplyT(func(v Bucket) *s3.BucketObjectLockConfigurationType { return v.ObjectLockConfiguration }).(s3.BucketObjectLockConfigurationTypePtrOutput) +} + +// Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. +func (o BucketOutput) ObjectLockEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v Bucket) *bool { return v.ObjectLockEnabled }).(pulumi.BoolPtrOutput) } -// A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. +// Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. +// The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketPolicy` instead. func (o BucketOutput) Policy() pulumi.StringPtrOutput { return o.ApplyT(func(v Bucket) *string { return v.Policy }).(pulumi.StringPtrOutput) } -// A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o BucketOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +// Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketReplicationConfig` instead. +// +// Deprecated: replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. func (o BucketOutput) ReplicationConfiguration() s3.BucketReplicationConfigurationPtrOutput { return o.ApplyT(func(v Bucket) *s3.BucketReplicationConfiguration { return v.ReplicationConfiguration }).(s3.BucketReplicationConfigurationPtrOutput) } // Specifies who should bear the cost of Amazon S3 data transfer. -// Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur -// the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) -// developer guide for more information. +// Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. +// See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. +// The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. +// +// Deprecated: request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. func (o BucketOutput) RequestPayer() pulumi.StringPtrOutput { return o.ApplyT(func(v Bucket) *string { return v.RequestPayer }).(pulumi.StringPtrOutput) } -// A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) -func (o BucketOutput) ServerSideEncryptionConfiguration() s3.BucketServerSideEncryptionConfigurationPtrOutput { - return o.ApplyT(func(v Bucket) *s3.BucketServerSideEncryptionConfiguration { return v.ServerSideEncryptionConfiguration }).(s3.BucketServerSideEncryptionConfigurationPtrOutput) +// Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. +// The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. +// +// Deprecated: server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. +func (o BucketOutput) ServerSideEncryptionConfiguration() s3.BucketServerSideEncryptionConfigurationTypePtrOutput { + return o.ApplyT(func(v Bucket) *s3.BucketServerSideEncryptionConfigurationType { + return v.ServerSideEncryptionConfiguration + }).(s3.BucketServerSideEncryptionConfigurationTypePtrOutput) } -// A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +// The following arguments are deprecated, and will be removed in a future major version: func (o BucketOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v Bucket) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -// A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) -func (o BucketOutput) Versioning() s3.BucketVersioningPtrOutput { - return o.ApplyT(func(v Bucket) *s3.BucketVersioning { return v.Versioning }).(s3.BucketVersioningPtrOutput) +// Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. +// +// Deprecated: versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. +func (o BucketOutput) Versioning() s3.BucketVersioningTypePtrOutput { + return o.ApplyT(func(v Bucket) *s3.BucketVersioningType { return v.Versioning }).(s3.BucketVersioningTypePtrOutput) } -// A website object (documented below). +// Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketWebsiteConfiguration` instead. +// +// Deprecated: website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. func (o BucketOutput) Website() s3.BucketWebsitePtrOutput { return o.ApplyT(func(v Bucket) *s3.BucketWebsite { return v.Website }).(s3.BucketWebsitePtrOutput) } -// The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. -func (o BucketOutput) WebsiteDomain() pulumi.StringPtrOutput { - return o.ApplyT(func(v Bucket) *string { return v.WebsiteDomain }).(pulumi.StringPtrOutput) -} - -// The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. -func (o BucketOutput) WebsiteEndpoint() pulumi.StringPtrOutput { - return o.ApplyT(func(v Bucket) *string { return v.WebsiteEndpoint }).(pulumi.StringPtrOutput) -} - type BucketPtrOutput struct{ *pulumi.OutputState } func (BucketPtrOutput) ElementType() reflect.Type { @@ -341,7 +427,10 @@ func (o BucketPtrOutput) Elem() BucketOutput { }).(BucketOutput) } -// Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. +// Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketAccelerateConfiguration` instead. +// +// Deprecated: acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. func (o BucketPtrOutput) AccelerationStatus() pulumi.StringPtrOutput { return o.ApplyT(func(v *Bucket) *string { if v == nil { @@ -351,7 +440,7 @@ func (o BucketPtrOutput) AccelerationStatus() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. +// The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. func (o BucketPtrOutput) Acl() pulumi.StringPtrOutput { return o.ApplyT(func(v *Bucket) *string { if v == nil { @@ -361,17 +450,7 @@ func (o BucketPtrOutput) Acl() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. -func (o BucketPtrOutput) Arn() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Bucket) *string { - if v == nil { - return nil - } - return v.Arn - }).(pulumi.StringPtrOutput) -} - -// The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). +// Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. func (o BucketPtrOutput) Bucket() pulumi.StringPtrOutput { return o.ApplyT(func(v *Bucket) *string { if v == nil { @@ -391,7 +470,9 @@ func (o BucketPtrOutput) BucketPrefix() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). +// Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. +// +// Deprecated: cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. func (o BucketPtrOutput) CorsRules() s3.BucketCorsRuleArrayOutput { return o.ApplyT(func(v *Bucket) []s3.BucketCorsRule { if v == nil { @@ -401,7 +482,7 @@ func (o BucketPtrOutput) CorsRules() s3.BucketCorsRuleArrayOutput { }).(s3.BucketCorsRuleArrayOutput) } -// A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. +// Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. func (o BucketPtrOutput) ForceDestroy() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Bucket) *bool { if v == nil { @@ -411,7 +492,9 @@ func (o BucketPtrOutput) ForceDestroy() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. +// An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. +// +// Deprecated: grant is deprecated. Use the aws.s3.BucketAcl resource instead. func (o BucketPtrOutput) Grants() s3.BucketGrantArrayOutput { return o.ApplyT(func(v *Bucket) []s3.BucketGrant { if v == nil { @@ -421,17 +504,10 @@ func (o BucketPtrOutput) Grants() s3.BucketGrantArrayOutput { }).(s3.BucketGrantArrayOutput) } -// The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. -func (o BucketPtrOutput) HostedZoneId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Bucket) *string { - if v == nil { - return nil - } - return v.HostedZoneId - }).(pulumi.StringPtrOutput) -} - -// A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). +// Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketLifecycleConfiguration` instead. +// +// Deprecated: lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. func (o BucketPtrOutput) LifecycleRules() s3.BucketLifecycleRuleArrayOutput { return o.ApplyT(func(v *Bucket) []s3.BucketLifecycleRule { if v == nil { @@ -441,29 +517,46 @@ func (o BucketPtrOutput) LifecycleRules() s3.BucketLifecycleRuleArrayOutput { }).(s3.BucketLifecycleRuleArrayOutput) } -// A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). -func (o BucketPtrOutput) Loggings() s3.BucketLoggingArrayOutput { - return o.ApplyT(func(v *Bucket) []s3.BucketLogging { +// Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketLogging` instead. +// +// Deprecated: logging is deprecated. Use the aws.s3.BucketLogging resource instead. +func (o BucketPtrOutput) Logging() s3.BucketLoggingTypePtrOutput { + return o.ApplyT(func(v *Bucket) *s3.BucketLoggingType { if v == nil { return nil } - return v.Loggings - }).(s3.BucketLoggingArrayOutput) + return v.Logging + }).(s3.BucketLoggingTypePtrOutput) } -// A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) +// Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. +// The provider wil only perform drift detection if a configuration value is provided. +// Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. // -// > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` -func (o BucketPtrOutput) ObjectLockConfiguration() s3.BucketObjectLockConfigurationPtrOutput { - return o.ApplyT(func(v *Bucket) *s3.BucketObjectLockConfiguration { +// Deprecated: object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. +func (o BucketPtrOutput) ObjectLockConfiguration() s3.BucketObjectLockConfigurationTypePtrOutput { + return o.ApplyT(func(v *Bucket) *s3.BucketObjectLockConfigurationType { if v == nil { return nil } return v.ObjectLockConfiguration - }).(s3.BucketObjectLockConfigurationPtrOutput) + }).(s3.BucketObjectLockConfigurationTypePtrOutput) +} + +// Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. +func (o BucketPtrOutput) ObjectLockEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Bucket) *bool { + if v == nil { + return nil + } + return v.ObjectLockEnabled + }).(pulumi.BoolPtrOutput) } -// A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. +// Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. +// The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketPolicy` instead. func (o BucketPtrOutput) Policy() pulumi.StringPtrOutput { return o.ApplyT(func(v *Bucket) *string { if v == nil { @@ -473,7 +566,20 @@ func (o BucketPtrOutput) Policy() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o BucketPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.Region + }).(pulumi.StringPtrOutput) +} + +// Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketReplicationConfig` instead. +// +// Deprecated: replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. func (o BucketPtrOutput) ReplicationConfiguration() s3.BucketReplicationConfigurationPtrOutput { return o.ApplyT(func(v *Bucket) *s3.BucketReplicationConfiguration { if v == nil { @@ -484,9 +590,12 @@ func (o BucketPtrOutput) ReplicationConfiguration() s3.BucketReplicationConfigur } // Specifies who should bear the cost of Amazon S3 data transfer. -// Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur -// the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) -// developer guide for more information. +// Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. +// See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. +// The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. +// +// Deprecated: request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. func (o BucketPtrOutput) RequestPayer() pulumi.StringPtrOutput { return o.ApplyT(func(v *Bucket) *string { if v == nil { @@ -496,17 +605,23 @@ func (o BucketPtrOutput) RequestPayer() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) -func (o BucketPtrOutput) ServerSideEncryptionConfiguration() s3.BucketServerSideEncryptionConfigurationPtrOutput { - return o.ApplyT(func(v *Bucket) *s3.BucketServerSideEncryptionConfiguration { +// Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. +// The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. +// +// Deprecated: server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. +func (o BucketPtrOutput) ServerSideEncryptionConfiguration() s3.BucketServerSideEncryptionConfigurationTypePtrOutput { + return o.ApplyT(func(v *Bucket) *s3.BucketServerSideEncryptionConfigurationType { if v == nil { return nil } return v.ServerSideEncryptionConfiguration - }).(s3.BucketServerSideEncryptionConfigurationPtrOutput) + }).(s3.BucketServerSideEncryptionConfigurationTypePtrOutput) } -// A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +// The following arguments are deprecated, and will be removed in a future major version: func (o BucketPtrOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *Bucket) map[string]string { if v == nil { @@ -516,17 +631,22 @@ func (o BucketPtrOutput) Tags() pulumi.StringMapOutput { }).(pulumi.StringMapOutput) } -// A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) -func (o BucketPtrOutput) Versioning() s3.BucketVersioningPtrOutput { - return o.ApplyT(func(v *Bucket) *s3.BucketVersioning { +// Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. +// +// Deprecated: versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. +func (o BucketPtrOutput) Versioning() s3.BucketVersioningTypePtrOutput { + return o.ApplyT(func(v *Bucket) *s3.BucketVersioningType { if v == nil { return nil } return v.Versioning - }).(s3.BucketVersioningPtrOutput) + }).(s3.BucketVersioningTypePtrOutput) } -// A website object (documented below). +// Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `aws.s3.BucketWebsiteConfiguration` instead. +// +// Deprecated: website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. func (o BucketPtrOutput) Website() s3.BucketWebsitePtrOutput { return o.ApplyT(func(v *Bucket) *s3.BucketWebsite { if v == nil { @@ -536,26 +656,6 @@ func (o BucketPtrOutput) Website() s3.BucketWebsitePtrOutput { }).(s3.BucketWebsitePtrOutput) } -// The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. -func (o BucketPtrOutput) WebsiteDomain() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Bucket) *string { - if v == nil { - return nil - } - return v.WebsiteDomain - }).(pulumi.StringPtrOutput) -} - -// The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. -func (o BucketPtrOutput) WebsiteEndpoint() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Bucket) *string { - if v == nil { - return nil - } - return v.WebsiteEndpoint - }).(pulumi.StringPtrOutput) -} - // Bucket with default setup unless explicitly skipped. type DefaultBucket struct { // Arguments to use instead of the default values during creation. @@ -1470,6 +1570,8 @@ type LogGroup struct { Name *string `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix *string `pulumi:"namePrefix"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // Specifies the number of days // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. // If you select 0, the events in the log group are always retained and never expire. @@ -1503,6 +1605,8 @@ type LogGroupArgs struct { Name pulumi.StringPtrInput `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix pulumi.StringPtrInput `pulumi:"namePrefix"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput `pulumi:"region"` // Specifies the number of days // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. // If you select 0, the events in the log group are always retained and never expire. @@ -1613,6 +1717,11 @@ func (o LogGroupOutput) NamePrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v LogGroup) *string { return v.NamePrefix }).(pulumi.StringPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o LogGroupOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogGroup) *string { return v.Region }).(pulumi.StringPtrOutput) +} + // Specifies the number of days // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. // If you select 0, the events in the log group are always retained and never expire. @@ -1696,6 +1805,16 @@ func (o LogGroupPtrOutput) NamePrefix() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o LogGroupPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogGroup) *string { + if v == nil { + return nil + } + return v.Region + }).(pulumi.StringPtrOutput) +} + // Specifies the number of days // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. // If you select 0, the events in the log group are always retained and never expire. @@ -2415,6 +2534,8 @@ type SecurityGroup struct { Name *string `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix *string `pulumi:"namePrefix"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. RevokeRulesOnDelete *bool `pulumi:"revokeRulesOnDelete"` // 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. @@ -2459,6 +2580,8 @@ type SecurityGroupArgs struct { Name pulumi.StringPtrInput `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix pulumi.StringPtrInput `pulumi:"namePrefix"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput `pulumi:"region"` // Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. RevokeRulesOnDelete pulumi.BoolPtrInput `pulumi:"revokeRulesOnDelete"` // 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. @@ -2581,6 +2704,11 @@ func (o SecurityGroupOutput) NamePrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityGroup) *string { return v.NamePrefix }).(pulumi.StringPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o SecurityGroupOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityGroup) *string { return v.Region }).(pulumi.StringPtrOutput) +} + // Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. func (o SecurityGroupOutput) RevokeRulesOnDelete() pulumi.BoolPtrOutput { return o.ApplyT(func(v SecurityGroup) *bool { return v.RevokeRulesOnDelete }).(pulumi.BoolPtrOutput) @@ -2670,6 +2798,16 @@ func (o SecurityGroupPtrOutput) NamePrefix() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o SecurityGroupPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityGroup) *string { + if v == nil { + return nil + } + return v.Region + }).(pulumi.StringPtrOutput) +} + // Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. func (o SecurityGroupPtrOutput) RevokeRulesOnDelete() pulumi.BoolPtrOutput { return o.ApplyT(func(v *SecurityGroup) *bool { diff --git a/sdk/go/awsx/cloudtrail/trail.go b/sdk/go/awsx/cloudtrail/trail.go index 7fe8b9316..8f2bef184 100644 --- a/sdk/go/awsx/cloudtrail/trail.go +++ b/sdk/go/awsx/cloudtrail/trail.go @@ -7,9 +7,9 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudtrail" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" @@ -65,11 +65,13 @@ type trailArgs struct { KmsKeyId *string `pulumi:"kmsKeyId"` // Name of the trail. Name *string `pulumi:"name"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // S3 bucket designated for publishing log files. S3Bucket *awsx.RequiredBucket `pulumi:"s3Bucket"` // S3 key prefix that follows the name of the bucket you have designated for log file delivery. S3KeyPrefix *string `pulumi:"s3KeyPrefix"` - // Name of the Amazon SNS topic defined for notification of log file delivery. + // Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. SnsTopicName *string `pulumi:"snsTopicName"` // Map of tags to assign to the trail. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags map[string]string `pulumi:"tags"` @@ -99,11 +101,13 @@ type TrailArgs struct { KmsKeyId pulumi.StringPtrInput // Name of the trail. Name pulumi.StringPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput // S3 bucket designated for publishing log files. S3Bucket *awsx.RequiredBucketArgs // S3 key prefix that follows the name of the bucket you have designated for log file delivery. S3KeyPrefix pulumi.StringPtrInput - // Name of the Amazon SNS topic defined for notification of log file delivery. + // Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. SnsTopicName pulumi.StringPtrInput // Map of tags to assign to the trail. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput diff --git a/sdk/go/awsx/ec2/pulumiTypes.go b/sdk/go/awsx/ec2/pulumiTypes.go index 7c684f868..5b6e8e179 100644 --- a/sdk/go/awsx/ec2/pulumiTypes.go +++ b/sdk/go/awsx/ec2/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -412,7 +412,7 @@ func (o SubnetSpecArrayOutput) Index(i pulumi.IntInput) SubnetSpecOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -441,7 +441,7 @@ func (o SubnetSpecArrayOutput) Index(i pulumi.IntInput) SubnetSpecOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -473,7 +473,7 @@ func (o SubnetSpecArrayOutput) Index(i pulumi.IntInput) SubnetSpecOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -507,7 +507,7 @@ func (o SubnetSpecArrayOutput) Index(i pulumi.IntInput) SubnetSpecOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -551,8 +551,8 @@ func (o SubnetSpecArrayOutput) Index(i pulumi.IntInput) SubnetSpecOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -593,6 +593,72 @@ func (o SubnetSpecArrayOutput) Index(i pulumi.IntInput) SubnetSpecOutput { // ``` // // +// ### VPC Lattice Resource Configuration Endpoint Type +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ +// ResourceConfigurationArn: pulumi.Any(exampleAwsVpclatticeResourceConfiguration.Arn), +// SubnetIds: pulumi.StringArray{ +// exampleAwsSubnet.Id, +// }, +// VpcEndpointType: pulumi.String("Resource"), +// VpcId: pulumi.Any(exampleAwsVpc.Id), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ### VPC Lattice Service Network Endpoint Type +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ +// ServiceNetworkArn: pulumi.Any(exampleAwsVpclatticeServiceNetwork.Arn), +// SubnetIds: pulumi.StringArray{ +// exampleAwsSubnet.Id, +// }, +// VpcEndpointType: pulumi.String("ServiceNetwork"), +// VpcId: pulumi.Any(exampleAwsVpc.Id), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// // ## Import // // Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example: @@ -611,6 +677,10 @@ type VpcEndpointSpec struct { Policy *string `pulumi:"policy"` // Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. Defaults to `false`. PrivateDnsEnabled *bool `pulumi:"privateDnsEnabled"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` + // The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + ResourceConfigurationArn *string `pulumi:"resourceConfigurationArn"` // One or more route table IDs. Applicable for endpoints of type `Gateway`. RouteTableIds []string `pulumi:"routeTableIds"` // The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`. @@ -618,6 +688,8 @@ type VpcEndpointSpec struct { SecurityGroupIds []string `pulumi:"securityGroupIds"` // The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). ServiceName string `pulumi:"serviceName"` + // The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + ServiceNetworkArn *string `pulumi:"serviceNetworkArn"` // The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. ServiceRegion *string `pulumi:"serviceRegion"` // Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnet_configuration below. @@ -626,7 +698,7 @@ type VpcEndpointSpec struct { SubnetIds []string `pulumi:"subnetIds"` // 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. Tags map[string]string `pulumi:"tags"` - // The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + // The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. VpcEndpointType *string `pulumi:"vpcEndpointType"` } @@ -661,7 +733,7 @@ type VpcEndpointSpecInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -690,7 +762,7 @@ type VpcEndpointSpecInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -722,7 +794,7 @@ type VpcEndpointSpecInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -756,7 +828,7 @@ type VpcEndpointSpecInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -800,8 +872,8 @@ type VpcEndpointSpecInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -842,6 +914,72 @@ type VpcEndpointSpecInput interface { // ``` // // +// ### VPC Lattice Resource Configuration Endpoint Type +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ +// ResourceConfigurationArn: pulumi.Any(exampleAwsVpclatticeResourceConfiguration.Arn), +// SubnetIds: pulumi.StringArray{ +// exampleAwsSubnet.Id, +// }, +// VpcEndpointType: pulumi.String("Resource"), +// VpcId: pulumi.Any(exampleAwsVpc.Id), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ### VPC Lattice Service Network Endpoint Type +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ +// ServiceNetworkArn: pulumi.Any(exampleAwsVpclatticeServiceNetwork.Arn), +// SubnetIds: pulumi.StringArray{ +// exampleAwsSubnet.Id, +// }, +// VpcEndpointType: pulumi.String("ServiceNetwork"), +// VpcId: pulumi.Any(exampleAwsVpc.Id), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// // ## Import // // Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example: @@ -860,6 +998,10 @@ type VpcEndpointSpecArgs struct { Policy pulumi.StringPtrInput `pulumi:"policy"` // Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. Defaults to `false`. PrivateDnsEnabled *bool `pulumi:"privateDnsEnabled"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput `pulumi:"region"` + // The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + ResourceConfigurationArn pulumi.StringPtrInput `pulumi:"resourceConfigurationArn"` // One or more route table IDs. Applicable for endpoints of type `Gateway`. RouteTableIds pulumi.StringArrayInput `pulumi:"routeTableIds"` // The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`. @@ -867,6 +1009,8 @@ type VpcEndpointSpecArgs struct { SecurityGroupIds pulumi.StringArrayInput `pulumi:"securityGroupIds"` // The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). ServiceName string `pulumi:"serviceName"` + // The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + ServiceNetworkArn pulumi.StringPtrInput `pulumi:"serviceNetworkArn"` // The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. ServiceRegion pulumi.StringPtrInput `pulumi:"serviceRegion"` // Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnet_configuration below. @@ -875,7 +1019,7 @@ type VpcEndpointSpecArgs struct { SubnetIds pulumi.StringArrayInput `pulumi:"subnetIds"` // 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. Tags pulumi.StringMapInput `pulumi:"tags"` - // The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + // The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. VpcEndpointType pulumi.StringPtrInput `pulumi:"vpcEndpointType"` } @@ -936,7 +1080,7 @@ func (i VpcEndpointSpecArray) ToVpcEndpointSpecArrayOutputWithContext(ctx contex // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -965,7 +1109,7 @@ func (i VpcEndpointSpecArray) ToVpcEndpointSpecArrayOutputWithContext(ctx contex // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -997,7 +1141,7 @@ func (i VpcEndpointSpecArray) ToVpcEndpointSpecArrayOutputWithContext(ctx contex // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1031,7 +1175,7 @@ func (i VpcEndpointSpecArray) ToVpcEndpointSpecArrayOutputWithContext(ctx contex // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1075,8 +1219,8 @@ func (i VpcEndpointSpecArray) ToVpcEndpointSpecArrayOutputWithContext(ctx contex // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1117,6 +1261,72 @@ func (i VpcEndpointSpecArray) ToVpcEndpointSpecArrayOutputWithContext(ctx contex // ``` // // +// ### VPC Lattice Resource Configuration Endpoint Type +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ +// ResourceConfigurationArn: pulumi.Any(exampleAwsVpclatticeResourceConfiguration.Arn), +// SubnetIds: pulumi.StringArray{ +// exampleAwsSubnet.Id, +// }, +// VpcEndpointType: pulumi.String("Resource"), +// VpcId: pulumi.Any(exampleAwsVpc.Id), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ### VPC Lattice Service Network Endpoint Type +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ +// ServiceNetworkArn: pulumi.Any(exampleAwsVpclatticeServiceNetwork.Arn), +// SubnetIds: pulumi.StringArray{ +// exampleAwsSubnet.Id, +// }, +// VpcEndpointType: pulumi.String("ServiceNetwork"), +// VpcId: pulumi.Any(exampleAwsVpc.Id), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// // ## Import // // Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example: @@ -1163,6 +1373,16 @@ func (o VpcEndpointSpecOutput) PrivateDnsEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v VpcEndpointSpec) *bool { return v.PrivateDnsEnabled }).(pulumi.BoolPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o VpcEndpointSpecOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpcEndpointSpec) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +// The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. +func (o VpcEndpointSpecOutput) ResourceConfigurationArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpcEndpointSpec) *string { return v.ResourceConfigurationArn }).(pulumi.StringPtrOutput) +} + // One or more route table IDs. Applicable for endpoints of type `Gateway`. func (o VpcEndpointSpecOutput) RouteTableIds() pulumi.StringArrayOutput { return o.ApplyT(func(v VpcEndpointSpec) []string { return v.RouteTableIds }).(pulumi.StringArrayOutput) @@ -1179,6 +1399,11 @@ func (o VpcEndpointSpecOutput) ServiceName() pulumi.StringOutput { return o.ApplyT(func(v VpcEndpointSpec) string { return v.ServiceName }).(pulumi.StringOutput) } +// The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. +func (o VpcEndpointSpecOutput) ServiceNetworkArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpcEndpointSpec) *string { return v.ServiceNetworkArn }).(pulumi.StringPtrOutput) +} + // The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. func (o VpcEndpointSpecOutput) ServiceRegion() pulumi.StringPtrOutput { return o.ApplyT(func(v VpcEndpointSpec) *string { return v.ServiceRegion }).(pulumi.StringPtrOutput) @@ -1199,7 +1424,7 @@ func (o VpcEndpointSpecOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v VpcEndpointSpec) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -// The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. +// The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. func (o VpcEndpointSpecOutput) VpcEndpointType() pulumi.StringPtrOutput { return o.ApplyT(func(v VpcEndpointSpec) *string { return v.VpcEndpointType }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/awsx/ec2/vpc.go b/sdk/go/awsx/ec2/vpc.go index febdb968a..cf945a514 100644 --- a/sdk/go/awsx/ec2/vpc.go +++ b/sdk/go/awsx/ec2/vpc.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -144,6 +144,8 @@ type vpcArgs struct { NatGateways *NatGatewayConfiguration `pulumi:"natGateways"` // A number of availability zones to which the subnets defined in subnetSpecs will be deployed. Optional, defaults to the first 3 AZs in the current region. NumberOfAvailabilityZones *int `pulumi:"numberOfAvailabilityZones"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // A list of subnet specs that should be deployed to each AZ specified in availabilityZoneNames. Optional. Defaults to a (smaller) public subnet and a (larger) private subnet based on the size of the CIDR block for the VPC. Private subnets are allocated CIDR block ranges first, followed by Public subnets, and Isolated subnets are allocated last. SubnetSpecs []SubnetSpec `pulumi:"subnetSpecs"` // The strategy to use when allocating subnets for the VPC. Optional. Defaults to `Legacy`. @@ -188,6 +190,8 @@ type VpcArgs struct { NatGateways *NatGatewayConfigurationArgs // A number of availability zones to which the subnets defined in subnetSpecs will be deployed. Optional, defaults to the first 3 AZs in the current region. NumberOfAvailabilityZones *int + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput // A list of subnet specs that should be deployed to each AZ specified in availabilityZoneNames. Optional. Defaults to a (smaller) public subnet and a (larger) private subnet based on the size of the CIDR block for the VPC. Private subnets are allocated CIDR block ranges first, followed by Public subnets, and Isolated subnets are allocated last. SubnetSpecs []SubnetSpecArgs // The strategy to use when allocating subnets for the VPC. Optional. Defaults to `Legacy`. diff --git a/sdk/go/awsx/ecr/repository.go b/sdk/go/awsx/ecr/repository.go index 138bf8832..93be726c6 100644 --- a/sdk/go/awsx/ecr/repository.go +++ b/sdk/go/awsx/ecr/repository.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecr" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -56,6 +56,8 @@ type repositoryArgs struct { LifecyclePolicy *LifecyclePolicy `pulumi:"lifecyclePolicy"` // Name of the repository. Name *string `pulumi:"name"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // 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. Tags map[string]string `pulumi:"tags"` } @@ -75,6 +77,8 @@ type RepositoryArgs struct { LifecyclePolicy *LifecyclePolicyArgs // Name of the repository. Name pulumi.StringPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput // 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. Tags pulumi.StringMapInput } diff --git a/sdk/go/awsx/ecs/ec2service.go b/sdk/go/awsx/ecs/ec2service.go index ba1e2d198..6f7512560 100644 --- a/sdk/go/awsx/ecs/ec2service.go +++ b/sdk/go/awsx/ecs/ec2service.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -89,6 +89,8 @@ type ec2serviceArgs struct { PlatformVersion *string `pulumi:"platformVersion"` // Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. PropagateTags *string `pulumi:"propagateTags"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). SchedulingStrategy *string `pulumi:"schedulingStrategy"` // ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. @@ -160,6 +162,8 @@ type EC2ServiceArgs struct { PlatformVersion pulumi.StringPtrInput // Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. PropagateTags pulumi.StringPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). SchedulingStrategy pulumi.StringPtrInput // ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. diff --git a/sdk/go/awsx/ecs/ec2taskDefinition.go b/sdk/go/awsx/ecs/ec2taskDefinition.go index 784319c9c..40c9e9da8 100644 --- a/sdk/go/awsx/ecs/ec2taskDefinition.go +++ b/sdk/go/awsx/ecs/ec2taskDefinition.go @@ -7,9 +7,9 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" @@ -62,6 +62,8 @@ type ec2taskDefinitionArgs struct { Containers map[string]TaskDefinitionContainerDefinition `pulumi:"containers"` // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] Cpu *string `pulumi:"cpu"` + // Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + EnableFaultInjection *bool `pulumi:"enableFaultInjection"` // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. EphemeralStorage *ecs.TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` // The execution role that the Amazon ECS container agent and the Docker daemon can assume. @@ -69,8 +71,6 @@ type ec2taskDefinitionArgs struct { ExecutionRole *awsx.DefaultRoleWithPolicy `pulumi:"executionRole"` // An optional unique name for your task definition. If not specified, then a default will be created. Family *string `pulumi:"family"` - // Configuration block(s) with Inference Accelerators settings. Detailed below. - InferenceAccelerators []ecs.TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. IpcMode *string `pulumi:"ipcMode"` // A set of volume blocks that containers in your task may use. @@ -86,6 +86,8 @@ type ec2taskDefinitionArgs struct { PlacementConstraints []ecs.TaskDefinitionPlacementConstraint `pulumi:"placementConstraints"` // Configuration block for the App Mesh proxy. Detailed below. ProxyConfiguration *ecs.TaskDefinitionProxyConfiguration `pulumi:"proxyConfiguration"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // Configuration block for runtime_platform that containers in your task may use. RuntimePlatform *ecs.TaskDefinitionRuntimePlatform `pulumi:"runtimePlatform"` // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. @@ -98,6 +100,10 @@ type ec2taskDefinitionArgs struct { // Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. TrackLatest *bool `pulumi:"trackLatest"` // Configuration block for volumes that containers in your task may use. Detailed below. + // + // > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + // + // > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. Volumes []ecs.TaskDefinitionVolume `pulumi:"volumes"` } @@ -115,6 +121,8 @@ type EC2TaskDefinitionArgs struct { Containers map[string]TaskDefinitionContainerDefinitionArgs // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] Cpu pulumi.StringPtrInput + // Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + EnableFaultInjection pulumi.BoolPtrInput // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. EphemeralStorage ecs.TaskDefinitionEphemeralStoragePtrInput // The execution role that the Amazon ECS container agent and the Docker daemon can assume. @@ -122,8 +130,6 @@ type EC2TaskDefinitionArgs struct { ExecutionRole *awsx.DefaultRoleWithPolicyArgs // An optional unique name for your task definition. If not specified, then a default will be created. Family pulumi.StringPtrInput - // Configuration block(s) with Inference Accelerators settings. Detailed below. - InferenceAccelerators ecs.TaskDefinitionInferenceAcceleratorArrayInput // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. IpcMode pulumi.StringPtrInput // A set of volume blocks that containers in your task may use. @@ -139,6 +145,8 @@ type EC2TaskDefinitionArgs struct { PlacementConstraints ecs.TaskDefinitionPlacementConstraintArrayInput // Configuration block for the App Mesh proxy. Detailed below. ProxyConfiguration ecs.TaskDefinitionProxyConfigurationPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput // Configuration block for runtime_platform that containers in your task may use. RuntimePlatform ecs.TaskDefinitionRuntimePlatformPtrInput // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. @@ -151,6 +159,10 @@ type EC2TaskDefinitionArgs struct { // Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. TrackLatest pulumi.BoolPtrInput // Configuration block for volumes that containers in your task may use. Detailed below. + // + // > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + // + // > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. Volumes ecs.TaskDefinitionVolumeArrayInput } diff --git a/sdk/go/awsx/ecs/fargateService.go b/sdk/go/awsx/ecs/fargateService.go index 660dfa714..5292483c1 100644 --- a/sdk/go/awsx/ecs/fargateService.go +++ b/sdk/go/awsx/ecs/fargateService.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -87,6 +87,8 @@ type fargateServiceArgs struct { PlatformVersion *string `pulumi:"platformVersion"` // Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. PropagateTags *string `pulumi:"propagateTags"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). SchedulingStrategy *string `pulumi:"schedulingStrategy"` // ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. @@ -156,6 +158,8 @@ type FargateServiceArgs struct { PlatformVersion pulumi.StringPtrInput // Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. PropagateTags pulumi.StringPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). SchedulingStrategy pulumi.StringPtrInput // ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. diff --git a/sdk/go/awsx/ecs/fargateTaskDefinition.go b/sdk/go/awsx/ecs/fargateTaskDefinition.go index 9e67de926..eaf521fa6 100644 --- a/sdk/go/awsx/ecs/fargateTaskDefinition.go +++ b/sdk/go/awsx/ecs/fargateTaskDefinition.go @@ -7,9 +7,9 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" @@ -62,6 +62,8 @@ type fargateTaskDefinitionArgs struct { Containers map[string]TaskDefinitionContainerDefinition `pulumi:"containers"` // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] Cpu *string `pulumi:"cpu"` + // Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + EnableFaultInjection *bool `pulumi:"enableFaultInjection"` // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. EphemeralStorage *ecs.TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` // The execution role that the Amazon ECS container agent and the Docker daemon can assume. @@ -69,8 +71,6 @@ type fargateTaskDefinitionArgs struct { ExecutionRole *awsx.DefaultRoleWithPolicy `pulumi:"executionRole"` // An optional unique name for your task definition. If not specified, then a default will be created. Family *string `pulumi:"family"` - // Configuration block(s) with Inference Accelerators settings. Detailed below. - InferenceAccelerators []ecs.TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. IpcMode *string `pulumi:"ipcMode"` // A set of volume blocks that containers in your task may use. @@ -84,6 +84,8 @@ type fargateTaskDefinitionArgs struct { PlacementConstraints []ecs.TaskDefinitionPlacementConstraint `pulumi:"placementConstraints"` // Configuration block for the App Mesh proxy. Detailed below. ProxyConfiguration *ecs.TaskDefinitionProxyConfiguration `pulumi:"proxyConfiguration"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // Configuration block for runtime_platform that containers in your task may use. RuntimePlatform *ecs.TaskDefinitionRuntimePlatform `pulumi:"runtimePlatform"` // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. @@ -96,6 +98,10 @@ type fargateTaskDefinitionArgs struct { // Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. TrackLatest *bool `pulumi:"trackLatest"` // Configuration block for volumes that containers in your task may use. Detailed below. + // + // > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + // + // > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. Volumes []ecs.TaskDefinitionVolume `pulumi:"volumes"` } @@ -113,6 +119,8 @@ type FargateTaskDefinitionArgs struct { Containers map[string]TaskDefinitionContainerDefinitionArgs // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] Cpu pulumi.StringPtrInput + // Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + EnableFaultInjection pulumi.BoolPtrInput // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. EphemeralStorage ecs.TaskDefinitionEphemeralStoragePtrInput // The execution role that the Amazon ECS container agent and the Docker daemon can assume. @@ -120,8 +128,6 @@ type FargateTaskDefinitionArgs struct { ExecutionRole *awsx.DefaultRoleWithPolicyArgs // An optional unique name for your task definition. If not specified, then a default will be created. Family pulumi.StringPtrInput - // Configuration block(s) with Inference Accelerators settings. Detailed below. - InferenceAccelerators ecs.TaskDefinitionInferenceAcceleratorArrayInput // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. IpcMode pulumi.StringPtrInput // A set of volume blocks that containers in your task may use. @@ -135,6 +141,8 @@ type FargateTaskDefinitionArgs struct { PlacementConstraints ecs.TaskDefinitionPlacementConstraintArrayInput // Configuration block for the App Mesh proxy. Detailed below. ProxyConfiguration ecs.TaskDefinitionProxyConfigurationPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput // Configuration block for runtime_platform that containers in your task may use. RuntimePlatform ecs.TaskDefinitionRuntimePlatformPtrInput // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. @@ -147,6 +155,10 @@ type FargateTaskDefinitionArgs struct { // Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. TrackLatest pulumi.BoolPtrInput // Configuration block for volumes that containers in your task may use. Detailed below. + // + // > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + // + // > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. Volumes ecs.TaskDefinitionVolumeArrayInput } diff --git a/sdk/go/awsx/ecs/pulumiTypes.go b/sdk/go/awsx/ecs/pulumiTypes.go index c2357ff3c..c794fe45a 100644 --- a/sdk/go/awsx/ecs/pulumiTypes.go +++ b/sdk/go/awsx/ecs/pulumiTypes.go @@ -7,8 +7,8 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" @@ -32,6 +32,8 @@ type EC2ServiceTaskDefinition struct { Containers map[string]TaskDefinitionContainerDefinition `pulumi:"containers"` // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] Cpu *string `pulumi:"cpu"` + // Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + EnableFaultInjection *bool `pulumi:"enableFaultInjection"` // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. EphemeralStorage *ecs.TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` // The execution role that the Amazon ECS container agent and the Docker daemon can assume. @@ -39,8 +41,6 @@ type EC2ServiceTaskDefinition struct { ExecutionRole *awsx.DefaultRoleWithPolicy `pulumi:"executionRole"` // An optional unique name for your task definition. If not specified, then a default will be created. Family *string `pulumi:"family"` - // Configuration block(s) with Inference Accelerators settings. Detailed below. - InferenceAccelerators []ecs.TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. IpcMode *string `pulumi:"ipcMode"` // A set of volume blocks that containers in your task may use. @@ -56,6 +56,8 @@ type EC2ServiceTaskDefinition struct { PlacementConstraints []ecs.TaskDefinitionPlacementConstraint `pulumi:"placementConstraints"` // Configuration block for the App Mesh proxy. Detailed below. ProxyConfiguration *ecs.TaskDefinitionProxyConfiguration `pulumi:"proxyConfiguration"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // Configuration block for runtime_platform that containers in your task may use. RuntimePlatform *ecs.TaskDefinitionRuntimePlatform `pulumi:"runtimePlatform"` // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. @@ -68,6 +70,10 @@ type EC2ServiceTaskDefinition struct { // Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. TrackLatest *bool `pulumi:"trackLatest"` // Configuration block for volumes that containers in your task may use. Detailed below. + // + // > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + // + // > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. Volumes []ecs.TaskDefinitionVolume `pulumi:"volumes"` } @@ -98,6 +104,8 @@ type EC2ServiceTaskDefinitionArgs struct { Containers map[string]TaskDefinitionContainerDefinitionArgs `pulumi:"containers"` // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] Cpu pulumi.StringPtrInput `pulumi:"cpu"` + // Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + EnableFaultInjection pulumi.BoolPtrInput `pulumi:"enableFaultInjection"` // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. EphemeralStorage ecs.TaskDefinitionEphemeralStoragePtrInput `pulumi:"ephemeralStorage"` // The execution role that the Amazon ECS container agent and the Docker daemon can assume. @@ -105,8 +113,6 @@ type EC2ServiceTaskDefinitionArgs struct { ExecutionRole *awsx.DefaultRoleWithPolicyArgs `pulumi:"executionRole"` // An optional unique name for your task definition. If not specified, then a default will be created. Family pulumi.StringPtrInput `pulumi:"family"` - // Configuration block(s) with Inference Accelerators settings. Detailed below. - InferenceAccelerators ecs.TaskDefinitionInferenceAcceleratorArrayInput `pulumi:"inferenceAccelerators"` // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. IpcMode pulumi.StringPtrInput `pulumi:"ipcMode"` // A set of volume blocks that containers in your task may use. @@ -122,6 +128,8 @@ type EC2ServiceTaskDefinitionArgs struct { PlacementConstraints ecs.TaskDefinitionPlacementConstraintArrayInput `pulumi:"placementConstraints"` // Configuration block for the App Mesh proxy. Detailed below. ProxyConfiguration ecs.TaskDefinitionProxyConfigurationPtrInput `pulumi:"proxyConfiguration"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput `pulumi:"region"` // Configuration block for runtime_platform that containers in your task may use. RuntimePlatform ecs.TaskDefinitionRuntimePlatformPtrInput `pulumi:"runtimePlatform"` // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. @@ -134,6 +142,10 @@ type EC2ServiceTaskDefinitionArgs struct { // Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. TrackLatest pulumi.BoolPtrInput `pulumi:"trackLatest"` // Configuration block for volumes that containers in your task may use. Detailed below. + // + // > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + // + // > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. Volumes ecs.TaskDefinitionVolumeArrayInput `pulumi:"volumes"` } @@ -238,6 +250,11 @@ func (o EC2ServiceTaskDefinitionOutput) Cpu() pulumi.StringPtrOutput { return o.ApplyT(func(v EC2ServiceTaskDefinition) *string { return v.Cpu }).(pulumi.StringPtrOutput) } +// Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. +func (o EC2ServiceTaskDefinitionOutput) EnableFaultInjection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *bool { return v.EnableFaultInjection }).(pulumi.BoolPtrOutput) +} + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. func (o EC2ServiceTaskDefinitionOutput) EphemeralStorage() ecs.TaskDefinitionEphemeralStoragePtrOutput { return o.ApplyT(func(v EC2ServiceTaskDefinition) *ecs.TaskDefinitionEphemeralStorage { return v.EphemeralStorage }).(ecs.TaskDefinitionEphemeralStoragePtrOutput) @@ -254,13 +271,6 @@ func (o EC2ServiceTaskDefinitionOutput) Family() pulumi.StringPtrOutput { return o.ApplyT(func(v EC2ServiceTaskDefinition) *string { return v.Family }).(pulumi.StringPtrOutput) } -// Configuration block(s) with Inference Accelerators settings. Detailed below. -func (o EC2ServiceTaskDefinitionOutput) InferenceAccelerators() ecs.TaskDefinitionInferenceAcceleratorArrayOutput { - return o.ApplyT(func(v EC2ServiceTaskDefinition) []ecs.TaskDefinitionInferenceAccelerator { - return v.InferenceAccelerators - }).(ecs.TaskDefinitionInferenceAcceleratorArrayOutput) -} - // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. func (o EC2ServiceTaskDefinitionOutput) IpcMode() pulumi.StringPtrOutput { return o.ApplyT(func(v EC2ServiceTaskDefinition) *string { return v.IpcMode }).(pulumi.StringPtrOutput) @@ -299,6 +309,11 @@ func (o EC2ServiceTaskDefinitionOutput) ProxyConfiguration() ecs.TaskDefinitionP return o.ApplyT(func(v EC2ServiceTaskDefinition) *ecs.TaskDefinitionProxyConfiguration { return v.ProxyConfiguration }).(ecs.TaskDefinitionProxyConfigurationPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o EC2ServiceTaskDefinitionOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *string { return v.Region }).(pulumi.StringPtrOutput) +} + // Configuration block for runtime_platform that containers in your task may use. func (o EC2ServiceTaskDefinitionOutput) RuntimePlatform() ecs.TaskDefinitionRuntimePlatformPtrOutput { return o.ApplyT(func(v EC2ServiceTaskDefinition) *ecs.TaskDefinitionRuntimePlatform { return v.RuntimePlatform }).(ecs.TaskDefinitionRuntimePlatformPtrOutput) @@ -326,6 +341,10 @@ func (o EC2ServiceTaskDefinitionOutput) TrackLatest() pulumi.BoolPtrOutput { } // Configuration block for volumes that containers in your task may use. Detailed below. +// +// > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. +// +// > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. func (o EC2ServiceTaskDefinitionOutput) Volumes() ecs.TaskDefinitionVolumeArrayOutput { return o.ApplyT(func(v EC2ServiceTaskDefinition) []ecs.TaskDefinitionVolume { return v.Volumes }).(ecs.TaskDefinitionVolumeArrayOutput) } @@ -390,6 +409,16 @@ func (o EC2ServiceTaskDefinitionPtrOutput) Cpu() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. +func (o EC2ServiceTaskDefinitionPtrOutput) EnableFaultInjection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *bool { + if v == nil { + return nil + } + return v.EnableFaultInjection + }).(pulumi.BoolPtrOutput) +} + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. func (o EC2ServiceTaskDefinitionPtrOutput) EphemeralStorage() ecs.TaskDefinitionEphemeralStoragePtrOutput { return o.ApplyT(func(v *EC2ServiceTaskDefinition) *ecs.TaskDefinitionEphemeralStorage { @@ -421,16 +450,6 @@ func (o EC2ServiceTaskDefinitionPtrOutput) Family() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Configuration block(s) with Inference Accelerators settings. Detailed below. -func (o EC2ServiceTaskDefinitionPtrOutput) InferenceAccelerators() ecs.TaskDefinitionInferenceAcceleratorArrayOutput { - return o.ApplyT(func(v *EC2ServiceTaskDefinition) []ecs.TaskDefinitionInferenceAccelerator { - if v == nil { - return nil - } - return v.InferenceAccelerators - }).(ecs.TaskDefinitionInferenceAcceleratorArrayOutput) -} - // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. func (o EC2ServiceTaskDefinitionPtrOutput) IpcMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *EC2ServiceTaskDefinition) *string { @@ -502,6 +521,16 @@ func (o EC2ServiceTaskDefinitionPtrOutput) ProxyConfiguration() ecs.TaskDefiniti }).(ecs.TaskDefinitionProxyConfigurationPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o EC2ServiceTaskDefinitionPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.Region + }).(pulumi.StringPtrOutput) +} + // Configuration block for runtime_platform that containers in your task may use. func (o EC2ServiceTaskDefinitionPtrOutput) RuntimePlatform() ecs.TaskDefinitionRuntimePlatformPtrOutput { return o.ApplyT(func(v *EC2ServiceTaskDefinition) *ecs.TaskDefinitionRuntimePlatform { @@ -554,6 +583,10 @@ func (o EC2ServiceTaskDefinitionPtrOutput) TrackLatest() pulumi.BoolPtrOutput { } // Configuration block for volumes that containers in your task may use. Detailed below. +// +// > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. +// +// > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. func (o EC2ServiceTaskDefinitionPtrOutput) Volumes() ecs.TaskDefinitionVolumeArrayOutput { return o.ApplyT(func(v *EC2ServiceTaskDefinition) []ecs.TaskDefinitionVolume { if v == nil { @@ -579,6 +612,8 @@ type FargateServiceTaskDefinition struct { Containers map[string]TaskDefinitionContainerDefinition `pulumi:"containers"` // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] Cpu *string `pulumi:"cpu"` + // Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + EnableFaultInjection *bool `pulumi:"enableFaultInjection"` // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. EphemeralStorage *ecs.TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` // The execution role that the Amazon ECS container agent and the Docker daemon can assume. @@ -586,8 +621,6 @@ type FargateServiceTaskDefinition struct { ExecutionRole *awsx.DefaultRoleWithPolicy `pulumi:"executionRole"` // An optional unique name for your task definition. If not specified, then a default will be created. Family *string `pulumi:"family"` - // Configuration block(s) with Inference Accelerators settings. Detailed below. - InferenceAccelerators []ecs.TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. IpcMode *string `pulumi:"ipcMode"` // A set of volume blocks that containers in your task may use. @@ -601,6 +634,8 @@ type FargateServiceTaskDefinition struct { PlacementConstraints []ecs.TaskDefinitionPlacementConstraint `pulumi:"placementConstraints"` // Configuration block for the App Mesh proxy. Detailed below. ProxyConfiguration *ecs.TaskDefinitionProxyConfiguration `pulumi:"proxyConfiguration"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // Configuration block for runtime_platform that containers in your task may use. RuntimePlatform *ecs.TaskDefinitionRuntimePlatform `pulumi:"runtimePlatform"` // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. @@ -613,6 +648,10 @@ type FargateServiceTaskDefinition struct { // Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. TrackLatest *bool `pulumi:"trackLatest"` // Configuration block for volumes that containers in your task may use. Detailed below. + // + // > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + // + // > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. Volumes []ecs.TaskDefinitionVolume `pulumi:"volumes"` } @@ -643,6 +682,8 @@ type FargateServiceTaskDefinitionArgs struct { Containers map[string]TaskDefinitionContainerDefinitionArgs `pulumi:"containers"` // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] Cpu pulumi.StringPtrInput `pulumi:"cpu"` + // Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + EnableFaultInjection pulumi.BoolPtrInput `pulumi:"enableFaultInjection"` // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. EphemeralStorage ecs.TaskDefinitionEphemeralStoragePtrInput `pulumi:"ephemeralStorage"` // The execution role that the Amazon ECS container agent and the Docker daemon can assume. @@ -650,8 +691,6 @@ type FargateServiceTaskDefinitionArgs struct { ExecutionRole *awsx.DefaultRoleWithPolicyArgs `pulumi:"executionRole"` // An optional unique name for your task definition. If not specified, then a default will be created. Family pulumi.StringPtrInput `pulumi:"family"` - // Configuration block(s) with Inference Accelerators settings. Detailed below. - InferenceAccelerators ecs.TaskDefinitionInferenceAcceleratorArrayInput `pulumi:"inferenceAccelerators"` // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. IpcMode pulumi.StringPtrInput `pulumi:"ipcMode"` // A set of volume blocks that containers in your task may use. @@ -665,6 +704,8 @@ type FargateServiceTaskDefinitionArgs struct { PlacementConstraints ecs.TaskDefinitionPlacementConstraintArrayInput `pulumi:"placementConstraints"` // Configuration block for the App Mesh proxy. Detailed below. ProxyConfiguration ecs.TaskDefinitionProxyConfigurationPtrInput `pulumi:"proxyConfiguration"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput `pulumi:"region"` // Configuration block for runtime_platform that containers in your task may use. RuntimePlatform ecs.TaskDefinitionRuntimePlatformPtrInput `pulumi:"runtimePlatform"` // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. @@ -677,6 +718,10 @@ type FargateServiceTaskDefinitionArgs struct { // Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. TrackLatest pulumi.BoolPtrInput `pulumi:"trackLatest"` // Configuration block for volumes that containers in your task may use. Detailed below. + // + // > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + // + // > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. Volumes ecs.TaskDefinitionVolumeArrayInput `pulumi:"volumes"` } @@ -781,6 +826,11 @@ func (o FargateServiceTaskDefinitionOutput) Cpu() pulumi.StringPtrOutput { return o.ApplyT(func(v FargateServiceTaskDefinition) *string { return v.Cpu }).(pulumi.StringPtrOutput) } +// Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. +func (o FargateServiceTaskDefinitionOutput) EnableFaultInjection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *bool { return v.EnableFaultInjection }).(pulumi.BoolPtrOutput) +} + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. func (o FargateServiceTaskDefinitionOutput) EphemeralStorage() ecs.TaskDefinitionEphemeralStoragePtrOutput { return o.ApplyT(func(v FargateServiceTaskDefinition) *ecs.TaskDefinitionEphemeralStorage { return v.EphemeralStorage }).(ecs.TaskDefinitionEphemeralStoragePtrOutput) @@ -797,13 +847,6 @@ func (o FargateServiceTaskDefinitionOutput) Family() pulumi.StringPtrOutput { return o.ApplyT(func(v FargateServiceTaskDefinition) *string { return v.Family }).(pulumi.StringPtrOutput) } -// Configuration block(s) with Inference Accelerators settings. Detailed below. -func (o FargateServiceTaskDefinitionOutput) InferenceAccelerators() ecs.TaskDefinitionInferenceAcceleratorArrayOutput { - return o.ApplyT(func(v FargateServiceTaskDefinition) []ecs.TaskDefinitionInferenceAccelerator { - return v.InferenceAccelerators - }).(ecs.TaskDefinitionInferenceAcceleratorArrayOutput) -} - // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. func (o FargateServiceTaskDefinitionOutput) IpcMode() pulumi.StringPtrOutput { return o.ApplyT(func(v FargateServiceTaskDefinition) *string { return v.IpcMode }).(pulumi.StringPtrOutput) @@ -839,6 +882,11 @@ func (o FargateServiceTaskDefinitionOutput) ProxyConfiguration() ecs.TaskDefinit }).(ecs.TaskDefinitionProxyConfigurationPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o FargateServiceTaskDefinitionOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *string { return v.Region }).(pulumi.StringPtrOutput) +} + // Configuration block for runtime_platform that containers in your task may use. func (o FargateServiceTaskDefinitionOutput) RuntimePlatform() ecs.TaskDefinitionRuntimePlatformPtrOutput { return o.ApplyT(func(v FargateServiceTaskDefinition) *ecs.TaskDefinitionRuntimePlatform { return v.RuntimePlatform }).(ecs.TaskDefinitionRuntimePlatformPtrOutput) @@ -866,6 +914,10 @@ func (o FargateServiceTaskDefinitionOutput) TrackLatest() pulumi.BoolPtrOutput { } // Configuration block for volumes that containers in your task may use. Detailed below. +// +// > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. +// +// > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. func (o FargateServiceTaskDefinitionOutput) Volumes() ecs.TaskDefinitionVolumeArrayOutput { return o.ApplyT(func(v FargateServiceTaskDefinition) []ecs.TaskDefinitionVolume { return v.Volumes }).(ecs.TaskDefinitionVolumeArrayOutput) } @@ -930,6 +982,16 @@ func (o FargateServiceTaskDefinitionPtrOutput) Cpu() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. +func (o FargateServiceTaskDefinitionPtrOutput) EnableFaultInjection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *bool { + if v == nil { + return nil + } + return v.EnableFaultInjection + }).(pulumi.BoolPtrOutput) +} + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. func (o FargateServiceTaskDefinitionPtrOutput) EphemeralStorage() ecs.TaskDefinitionEphemeralStoragePtrOutput { return o.ApplyT(func(v *FargateServiceTaskDefinition) *ecs.TaskDefinitionEphemeralStorage { @@ -961,16 +1023,6 @@ func (o FargateServiceTaskDefinitionPtrOutput) Family() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Configuration block(s) with Inference Accelerators settings. Detailed below. -func (o FargateServiceTaskDefinitionPtrOutput) InferenceAccelerators() ecs.TaskDefinitionInferenceAcceleratorArrayOutput { - return o.ApplyT(func(v *FargateServiceTaskDefinition) []ecs.TaskDefinitionInferenceAccelerator { - if v == nil { - return nil - } - return v.InferenceAccelerators - }).(ecs.TaskDefinitionInferenceAcceleratorArrayOutput) -} - // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. func (o FargateServiceTaskDefinitionPtrOutput) IpcMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *FargateServiceTaskDefinition) *string { @@ -1032,6 +1084,16 @@ func (o FargateServiceTaskDefinitionPtrOutput) ProxyConfiguration() ecs.TaskDefi }).(ecs.TaskDefinitionProxyConfigurationPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o FargateServiceTaskDefinitionPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.Region + }).(pulumi.StringPtrOutput) +} + // Configuration block for runtime_platform that containers in your task may use. func (o FargateServiceTaskDefinitionPtrOutput) RuntimePlatform() ecs.TaskDefinitionRuntimePlatformPtrOutput { return o.ApplyT(func(v *FargateServiceTaskDefinition) *ecs.TaskDefinitionRuntimePlatform { @@ -1084,6 +1146,10 @@ func (o FargateServiceTaskDefinitionPtrOutput) TrackLatest() pulumi.BoolPtrOutpu } // Configuration block for volumes that containers in your task may use. Detailed below. +// +// > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. +// +// > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. func (o FargateServiceTaskDefinitionPtrOutput) Volumes() ecs.TaskDefinitionVolumeArrayOutput { return o.ApplyT(func(v *FargateServiceTaskDefinition) []ecs.TaskDefinitionVolume { if v == nil { diff --git a/sdk/go/awsx/lb/applicationLoadBalancer.go b/sdk/go/awsx/lb/applicationLoadBalancer.go index 8ee1d6c3d..e4a6955b9 100644 --- a/sdk/go/awsx/lb/applicationLoadBalancer.go +++ b/sdk/go/awsx/lb/applicationLoadBalancer.go @@ -7,8 +7,8 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" @@ -90,16 +90,22 @@ type applicationLoadBalancerArgs struct { Internal *bool `pulumi:"internal"` // 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). IpAddressType *string `pulumi:"ipAddressType"` + // . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + IpamPools *lb.LoadBalancerIpamPools `pulumi:"ipamPools"` // A listener to create. Only one of [listener] and [listeners] can be specified. Listener *Listener `pulumi:"listener"` // List of listeners to create. Only one of [listener] and [listeners] can be specified. Listeners []Listener `pulumi:"listeners"` + // Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + MinimumLoadBalancerCapacity *lb.LoadBalancerMinimumLoadBalancerCapacity `pulumi:"minimumLoadBalancerCapacity"` // 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`. Name *string `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix *string `pulumi:"namePrefix"` // 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`. PreserveHostHeader *bool `pulumi:"preserveHostHeader"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // 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. SecurityGroups []string `pulumi:"securityGroups"` // 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. @@ -111,6 +117,10 @@ type applicationLoadBalancerArgs struct { // 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. Tags map[string]string `pulumi:"tags"` // 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`. + // + // > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + // + // > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. XffHeaderProcessingMode *string `pulumi:"xffHeaderProcessingMode"` } @@ -156,16 +166,22 @@ type ApplicationLoadBalancerArgs struct { Internal pulumi.BoolPtrInput // 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). IpAddressType pulumi.StringPtrInput + // . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + IpamPools lb.LoadBalancerIpamPoolsPtrInput // A listener to create. Only one of [listener] and [listeners] can be specified. Listener *ListenerArgs // List of listeners to create. Only one of [listener] and [listeners] can be specified. Listeners []ListenerArgs + // Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + MinimumLoadBalancerCapacity lb.LoadBalancerMinimumLoadBalancerCapacityPtrInput // 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`. Name pulumi.StringPtrInput // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix pulumi.StringPtrInput // 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`. PreserveHostHeader pulumi.BoolPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput // 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. SecurityGroups pulumi.StringArrayInput // 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. @@ -177,6 +193,10 @@ type ApplicationLoadBalancerArgs struct { // 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. Tags pulumi.StringMapInput // 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`. + // + // > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + // + // > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. XffHeaderProcessingMode pulumi.StringPtrInput } diff --git a/sdk/go/awsx/lb/networkLoadBalancer.go b/sdk/go/awsx/lb/networkLoadBalancer.go index 0bbc8d543..1d006a95b 100644 --- a/sdk/go/awsx/lb/networkLoadBalancer.go +++ b/sdk/go/awsx/lb/networkLoadBalancer.go @@ -7,8 +7,8 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -82,16 +82,22 @@ type networkLoadBalancerArgs struct { Internal *bool `pulumi:"internal"` // 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). IpAddressType *string `pulumi:"ipAddressType"` + // . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + IpamPools *lb.LoadBalancerIpamPools `pulumi:"ipamPools"` // A listener to create. Only one of [listener] and [listeners] can be specified. Listener *Listener `pulumi:"listener"` // List of listeners to create. Only one of [listener] and [listeners] can be specified. Listeners []Listener `pulumi:"listeners"` + // Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + MinimumLoadBalancerCapacity *lb.LoadBalancerMinimumLoadBalancerCapacity `pulumi:"minimumLoadBalancerCapacity"` // 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`. Name *string `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix *string `pulumi:"namePrefix"` // 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`. PreserveHostHeader *bool `pulumi:"preserveHostHeader"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // 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. SecurityGroups []string `pulumi:"securityGroups"` // 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. @@ -103,6 +109,10 @@ type networkLoadBalancerArgs struct { // 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. Tags map[string]string `pulumi:"tags"` // 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`. + // + // > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + // + // > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. XffHeaderProcessingMode *string `pulumi:"xffHeaderProcessingMode"` } @@ -146,16 +156,22 @@ type NetworkLoadBalancerArgs struct { Internal pulumi.BoolPtrInput // 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). IpAddressType pulumi.StringPtrInput + // . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + IpamPools lb.LoadBalancerIpamPoolsPtrInput // A listener to create. Only one of [listener] and [listeners] can be specified. Listener *ListenerArgs // List of listeners to create. Only one of [listener] and [listeners] can be specified. Listeners []ListenerArgs + // Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + MinimumLoadBalancerCapacity lb.LoadBalancerMinimumLoadBalancerCapacityPtrInput // 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`. Name pulumi.StringPtrInput // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix pulumi.StringPtrInput // 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`. PreserveHostHeader pulumi.BoolPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput // 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. SecurityGroups pulumi.StringArrayInput // 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. @@ -167,6 +183,10 @@ type NetworkLoadBalancerArgs struct { // 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. Tags pulumi.StringMapInput // 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`. + // + // > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + // + // > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. XffHeaderProcessingMode pulumi.StringPtrInput } diff --git a/sdk/go/awsx/lb/pulumiTypes.go b/sdk/go/awsx/lb/pulumiTypes.go index f395e680b..64607b220 100644 --- a/sdk/go/awsx/lb/pulumiTypes.go +++ b/sdk/go/awsx/lb/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -28,7 +28,7 @@ var _ = internal.GetEnvOrDefault // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -74,7 +74,7 @@ var _ = internal.GetEnvOrDefault // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -113,7 +113,7 @@ var _ = internal.GetEnvOrDefault // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -157,7 +157,7 @@ var _ = internal.GetEnvOrDefault // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -201,8 +201,8 @@ var _ = internal.GetEnvOrDefault // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cognito" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -266,7 +266,7 @@ var _ = internal.GetEnvOrDefault // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -321,7 +321,7 @@ var _ = internal.GetEnvOrDefault // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -380,7 +380,7 @@ var _ = internal.GetEnvOrDefault // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -440,6 +440,46 @@ type Listener struct { Port *int `pulumi:"port"` // 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. Protocol *string `pulumi:"protocol"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertHeaderName *string `pulumi:"routingHttpRequestXAmznMtlsClientcertHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertIssuerHeaderName *string `pulumi:"routingHttpRequestXAmznMtlsClientcertIssuerHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertLeafHeaderName *string `pulumi:"routingHttpRequestXAmznMtlsClientcertLeafHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName *string `pulumi:"routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertSubjectHeaderName *string `pulumi:"routingHttpRequestXAmznMtlsClientcertSubjectHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertValidityHeaderName *string `pulumi:"routingHttpRequestXAmznMtlsClientcertValidityHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznTlsCipherSuiteHeaderName *string `pulumi:"routingHttpRequestXAmznTlsCipherSuiteHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznTlsVersionHeaderName *string `pulumi:"routingHttpRequestXAmznTlsVersionHeaderName"` + // Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + RoutingHttpResponseAccessControlAllowCredentialsHeaderValue *string `pulumi:"routingHttpResponseAccessControlAllowCredentialsHeaderValue"` + // Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + RoutingHttpResponseAccessControlAllowHeadersHeaderValue *string `pulumi:"routingHttpResponseAccessControlAllowHeadersHeaderValue"` + // Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + RoutingHttpResponseAccessControlAllowMethodsHeaderValue *string `pulumi:"routingHttpResponseAccessControlAllowMethodsHeaderValue"` + // Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + RoutingHttpResponseAccessControlAllowOriginHeaderValue *string `pulumi:"routingHttpResponseAccessControlAllowOriginHeaderValue"` + // Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + RoutingHttpResponseAccessControlExposeHeadersHeaderValue *string `pulumi:"routingHttpResponseAccessControlExposeHeadersHeaderValue"` + // Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + RoutingHttpResponseAccessControlMaxAgeHeaderValue *string `pulumi:"routingHttpResponseAccessControlMaxAgeHeaderValue"` + // Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + RoutingHttpResponseContentSecurityPolicyHeaderValue *string `pulumi:"routingHttpResponseContentSecurityPolicyHeaderValue"` + // Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + RoutingHttpResponseServerEnabled *bool `pulumi:"routingHttpResponseServerEnabled"` + // Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + RoutingHttpResponseStrictTransportSecurityHeaderValue *string `pulumi:"routingHttpResponseStrictTransportSecurityHeaderValue"` + // Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + RoutingHttpResponseXContentTypeOptionsHeaderValue *string `pulumi:"routingHttpResponseXContentTypeOptionsHeaderValue"` + // Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. + RoutingHttpResponseXFrameOptionsHeaderValue *string `pulumi:"routingHttpResponseXFrameOptionsHeaderValue"` // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy *string `pulumi:"sslPolicy"` // 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. @@ -475,7 +515,7 @@ type ListenerInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -521,7 +561,7 @@ type ListenerInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -560,7 +600,7 @@ type ListenerInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -604,7 +644,7 @@ type ListenerInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -648,8 +688,8 @@ type ListenerInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cognito" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -713,7 +753,7 @@ type ListenerInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -768,7 +808,7 @@ type ListenerInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -827,7 +867,7 @@ type ListenerInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -887,6 +927,46 @@ type ListenerArgs struct { Port pulumi.IntPtrInput `pulumi:"port"` // 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. Protocol pulumi.StringPtrInput `pulumi:"protocol"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput `pulumi:"region"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertHeaderName pulumi.StringPtrInput `pulumi:"routingHttpRequestXAmznMtlsClientcertHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertIssuerHeaderName pulumi.StringPtrInput `pulumi:"routingHttpRequestXAmznMtlsClientcertIssuerHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertLeafHeaderName pulumi.StringPtrInput `pulumi:"routingHttpRequestXAmznMtlsClientcertLeafHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName pulumi.StringPtrInput `pulumi:"routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertSubjectHeaderName pulumi.StringPtrInput `pulumi:"routingHttpRequestXAmznMtlsClientcertSubjectHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznMtlsClientcertValidityHeaderName pulumi.StringPtrInput `pulumi:"routingHttpRequestXAmznMtlsClientcertValidityHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznTlsCipherSuiteHeaderName pulumi.StringPtrInput `pulumi:"routingHttpRequestXAmznTlsCipherSuiteHeaderName"` + // Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + RoutingHttpRequestXAmznTlsVersionHeaderName pulumi.StringPtrInput `pulumi:"routingHttpRequestXAmznTlsVersionHeaderName"` + // Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + RoutingHttpResponseAccessControlAllowCredentialsHeaderValue pulumi.StringPtrInput `pulumi:"routingHttpResponseAccessControlAllowCredentialsHeaderValue"` + // Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + RoutingHttpResponseAccessControlAllowHeadersHeaderValue pulumi.StringPtrInput `pulumi:"routingHttpResponseAccessControlAllowHeadersHeaderValue"` + // Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + RoutingHttpResponseAccessControlAllowMethodsHeaderValue pulumi.StringPtrInput `pulumi:"routingHttpResponseAccessControlAllowMethodsHeaderValue"` + // Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + RoutingHttpResponseAccessControlAllowOriginHeaderValue pulumi.StringPtrInput `pulumi:"routingHttpResponseAccessControlAllowOriginHeaderValue"` + // Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + RoutingHttpResponseAccessControlExposeHeadersHeaderValue pulumi.StringPtrInput `pulumi:"routingHttpResponseAccessControlExposeHeadersHeaderValue"` + // Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + RoutingHttpResponseAccessControlMaxAgeHeaderValue pulumi.StringPtrInput `pulumi:"routingHttpResponseAccessControlMaxAgeHeaderValue"` + // Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + RoutingHttpResponseContentSecurityPolicyHeaderValue pulumi.StringPtrInput `pulumi:"routingHttpResponseContentSecurityPolicyHeaderValue"` + // Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + RoutingHttpResponseServerEnabled pulumi.BoolPtrInput `pulumi:"routingHttpResponseServerEnabled"` + // Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + RoutingHttpResponseStrictTransportSecurityHeaderValue pulumi.StringPtrInput `pulumi:"routingHttpResponseStrictTransportSecurityHeaderValue"` + // Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + RoutingHttpResponseXContentTypeOptionsHeaderValue pulumi.StringPtrInput `pulumi:"routingHttpResponseXContentTypeOptionsHeaderValue"` + // Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. + RoutingHttpResponseXFrameOptionsHeaderValue pulumi.StringPtrInput `pulumi:"routingHttpResponseXFrameOptionsHeaderValue"` // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy pulumi.StringPtrInput `pulumi:"sslPolicy"` // 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. @@ -989,7 +1069,7 @@ func (i ListenerArray) ToListenerArrayOutputWithContext(ctx context.Context) Lis // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1035,7 +1115,7 @@ func (i ListenerArray) ToListenerArrayOutputWithContext(ctx context.Context) Lis // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1074,7 +1154,7 @@ func (i ListenerArray) ToListenerArrayOutputWithContext(ctx context.Context) Lis // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1118,7 +1198,7 @@ func (i ListenerArray) ToListenerArrayOutputWithContext(ctx context.Context) Lis // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1162,8 +1242,8 @@ func (i ListenerArray) ToListenerArrayOutputWithContext(ctx context.Context) Lis // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cognito" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1227,7 +1307,7 @@ func (i ListenerArray) ToListenerArrayOutputWithContext(ctx context.Context) Lis // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1282,7 +1362,7 @@ func (i ListenerArray) ToListenerArrayOutputWithContext(ctx context.Context) Lis // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1341,7 +1421,7 @@ func (i ListenerArray) ToListenerArrayOutputWithContext(ctx context.Context) Lis // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1442,6 +1522,106 @@ func (o ListenerOutput) Protocol() pulumi.StringPtrOutput { return o.ApplyT(func(v Listener) *string { return v.Protocol }).(pulumi.StringPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o ListenerOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerOutput) RoutingHttpRequestXAmznMtlsClientcertHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpRequestXAmznMtlsClientcertHeaderName }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerOutput) RoutingHttpRequestXAmznMtlsClientcertIssuerHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpRequestXAmznMtlsClientcertIssuerHeaderName }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerOutput) RoutingHttpRequestXAmznMtlsClientcertLeafHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpRequestXAmznMtlsClientcertLeafHeaderName }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerOutput) RoutingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerOutput) RoutingHttpRequestXAmznMtlsClientcertSubjectHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpRequestXAmznMtlsClientcertSubjectHeaderName }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerOutput) RoutingHttpRequestXAmznMtlsClientcertValidityHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpRequestXAmznMtlsClientcertValidityHeaderName }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerOutput) RoutingHttpRequestXAmznTlsCipherSuiteHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpRequestXAmznTlsCipherSuiteHeaderName }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerOutput) RoutingHttpRequestXAmznTlsVersionHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpRequestXAmznTlsVersionHeaderName }).(pulumi.StringPtrOutput) +} + +// Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. +func (o ListenerOutput) RoutingHttpResponseAccessControlAllowCredentialsHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpResponseAccessControlAllowCredentialsHeaderValue }).(pulumi.StringPtrOutput) +} + +// Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. +func (o ListenerOutput) RoutingHttpResponseAccessControlAllowHeadersHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpResponseAccessControlAllowHeadersHeaderValue }).(pulumi.StringPtrOutput) +} + +// Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. +func (o ListenerOutput) RoutingHttpResponseAccessControlAllowMethodsHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpResponseAccessControlAllowMethodsHeaderValue }).(pulumi.StringPtrOutput) +} + +// Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. +func (o ListenerOutput) RoutingHttpResponseAccessControlAllowOriginHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpResponseAccessControlAllowOriginHeaderValue }).(pulumi.StringPtrOutput) +} + +// Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. +func (o ListenerOutput) RoutingHttpResponseAccessControlExposeHeadersHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpResponseAccessControlExposeHeadersHeaderValue }).(pulumi.StringPtrOutput) +} + +// Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. +func (o ListenerOutput) RoutingHttpResponseAccessControlMaxAgeHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpResponseAccessControlMaxAgeHeaderValue }).(pulumi.StringPtrOutput) +} + +// Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. +func (o ListenerOutput) RoutingHttpResponseContentSecurityPolicyHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpResponseContentSecurityPolicyHeaderValue }).(pulumi.StringPtrOutput) +} + +// Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. +func (o ListenerOutput) RoutingHttpResponseServerEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v Listener) *bool { return v.RoutingHttpResponseServerEnabled }).(pulumi.BoolPtrOutput) +} + +// Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. +func (o ListenerOutput) RoutingHttpResponseStrictTransportSecurityHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpResponseStrictTransportSecurityHeaderValue }).(pulumi.StringPtrOutput) +} + +// Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. +func (o ListenerOutput) RoutingHttpResponseXContentTypeOptionsHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpResponseXContentTypeOptionsHeaderValue }).(pulumi.StringPtrOutput) +} + +// Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. +func (o ListenerOutput) RoutingHttpResponseXFrameOptionsHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v Listener) *string { return v.RoutingHttpResponseXFrameOptionsHeaderValue }).(pulumi.StringPtrOutput) +} + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. func (o ListenerOutput) SslPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v Listener) *string { return v.SslPolicy }).(pulumi.StringPtrOutput) @@ -1543,6 +1723,206 @@ func (o ListenerPtrOutput) Protocol() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o ListenerPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.Region + }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerPtrOutput) RoutingHttpRequestXAmznMtlsClientcertHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpRequestXAmznMtlsClientcertHeaderName + }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerPtrOutput) RoutingHttpRequestXAmznMtlsClientcertIssuerHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpRequestXAmznMtlsClientcertIssuerHeaderName + }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerPtrOutput) RoutingHttpRequestXAmznMtlsClientcertLeafHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpRequestXAmznMtlsClientcertLeafHeaderName + }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerPtrOutput) RoutingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName + }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerPtrOutput) RoutingHttpRequestXAmznMtlsClientcertSubjectHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpRequestXAmznMtlsClientcertSubjectHeaderName + }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerPtrOutput) RoutingHttpRequestXAmznMtlsClientcertValidityHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpRequestXAmznMtlsClientcertValidityHeaderName + }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerPtrOutput) RoutingHttpRequestXAmznTlsCipherSuiteHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpRequestXAmznTlsCipherSuiteHeaderName + }).(pulumi.StringPtrOutput) +} + +// Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. +func (o ListenerPtrOutput) RoutingHttpRequestXAmznTlsVersionHeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpRequestXAmznTlsVersionHeaderName + }).(pulumi.StringPtrOutput) +} + +// Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. +func (o ListenerPtrOutput) RoutingHttpResponseAccessControlAllowCredentialsHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpResponseAccessControlAllowCredentialsHeaderValue + }).(pulumi.StringPtrOutput) +} + +// Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. +func (o ListenerPtrOutput) RoutingHttpResponseAccessControlAllowHeadersHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpResponseAccessControlAllowHeadersHeaderValue + }).(pulumi.StringPtrOutput) +} + +// Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. +func (o ListenerPtrOutput) RoutingHttpResponseAccessControlAllowMethodsHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpResponseAccessControlAllowMethodsHeaderValue + }).(pulumi.StringPtrOutput) +} + +// Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. +func (o ListenerPtrOutput) RoutingHttpResponseAccessControlAllowOriginHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpResponseAccessControlAllowOriginHeaderValue + }).(pulumi.StringPtrOutput) +} + +// Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. +func (o ListenerPtrOutput) RoutingHttpResponseAccessControlExposeHeadersHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpResponseAccessControlExposeHeadersHeaderValue + }).(pulumi.StringPtrOutput) +} + +// Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. +func (o ListenerPtrOutput) RoutingHttpResponseAccessControlMaxAgeHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpResponseAccessControlMaxAgeHeaderValue + }).(pulumi.StringPtrOutput) +} + +// Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. +func (o ListenerPtrOutput) RoutingHttpResponseContentSecurityPolicyHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpResponseContentSecurityPolicyHeaderValue + }).(pulumi.StringPtrOutput) +} + +// Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. +func (o ListenerPtrOutput) RoutingHttpResponseServerEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Listener) *bool { + if v == nil { + return nil + } + return v.RoutingHttpResponseServerEnabled + }).(pulumi.BoolPtrOutput) +} + +// Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. +func (o ListenerPtrOutput) RoutingHttpResponseStrictTransportSecurityHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpResponseStrictTransportSecurityHeaderValue + }).(pulumi.StringPtrOutput) +} + +// Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. +func (o ListenerPtrOutput) RoutingHttpResponseXContentTypeOptionsHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpResponseXContentTypeOptionsHeaderValue + }).(pulumi.StringPtrOutput) +} + +// Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. +func (o ListenerPtrOutput) RoutingHttpResponseXFrameOptionsHeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Listener) *string { + if v == nil { + return nil + } + return v.RoutingHttpResponseXFrameOptionsHeaderValue + }).(pulumi.StringPtrOutput) +} + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. func (o ListenerPtrOutput) SslPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *Listener) *string { @@ -1609,8 +1989,8 @@ func (o ListenerArrayOutput) Index(i pulumi.IntInput) ListenerOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1647,8 +2027,8 @@ func (o ListenerArrayOutput) Index(i pulumi.IntInput) ListenerOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1686,7 +2066,7 @@ func (o ListenerArrayOutput) Index(i pulumi.IntInput) ListenerOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1715,7 +2095,7 @@ func (o ListenerArrayOutput) Index(i pulumi.IntInput) ListenerOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1747,7 +2127,7 @@ func (o ListenerArrayOutput) Index(i pulumi.IntInput) ListenerOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1783,7 +2163,7 @@ func (o ListenerArrayOutput) Index(i pulumi.IntInput) ListenerOutput { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1857,6 +2237,8 @@ type TargetGroup struct { ProtocolVersion *string `pulumi:"protocolVersion"` // Whether to enable support for proxy protocol v2 on Network Load Balancers. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol) for more information. Default is `false`. ProxyProtocolV2 *bool `pulumi:"proxyProtocolV2"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` // Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. SlowStart *int `pulumi:"slowStart"` // Stickiness configuration block. Detailed below. @@ -1910,8 +2292,8 @@ type TargetGroupInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1948,8 +2330,8 @@ type TargetGroupInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -1987,7 +2369,7 @@ type TargetGroupInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -2016,7 +2398,7 @@ type TargetGroupInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -2048,7 +2430,7 @@ type TargetGroupInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -2084,7 +2466,7 @@ type TargetGroupInput interface { // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -2158,6 +2540,8 @@ type TargetGroupArgs struct { ProtocolVersion pulumi.StringPtrInput `pulumi:"protocolVersion"` // Whether to enable support for proxy protocol v2 on Network Load Balancers. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol) for more information. Default is `false`. ProxyProtocolV2 pulumi.BoolPtrInput `pulumi:"proxyProtocolV2"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput `pulumi:"region"` // Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. SlowStart pulumi.IntPtrInput `pulumi:"slowStart"` // Stickiness configuration block. Detailed below. @@ -2253,8 +2637,8 @@ func (i *targetGroupPtrType) ToTargetGroupPtrOutputWithContext(ctx context.Conte // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -2291,8 +2675,8 @@ func (i *targetGroupPtrType) ToTargetGroupPtrOutputWithContext(ctx context.Conte // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -2330,7 +2714,7 @@ func (i *targetGroupPtrType) ToTargetGroupPtrOutputWithContext(ctx context.Conte // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -2359,7 +2743,7 @@ func (i *targetGroupPtrType) ToTargetGroupPtrOutputWithContext(ctx context.Conte // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -2391,7 +2775,7 @@ func (i *targetGroupPtrType) ToTargetGroupPtrOutputWithContext(ctx context.Conte // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -2427,7 +2811,7 @@ func (i *targetGroupPtrType) ToTargetGroupPtrOutputWithContext(ctx context.Conte // // import ( // -// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -2569,6 +2953,11 @@ func (o TargetGroupOutput) ProxyProtocolV2() pulumi.BoolPtrOutput { return o.ApplyT(func(v TargetGroup) *bool { return v.ProxyProtocolV2 }).(pulumi.BoolPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o TargetGroupOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v TargetGroup) *string { return v.Region }).(pulumi.StringPtrOutput) +} + // Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. func (o TargetGroupOutput) SlowStart() pulumi.IntPtrOutput { return o.ApplyT(func(v TargetGroup) *int { return v.SlowStart }).(pulumi.IntPtrOutput) @@ -2796,6 +3185,16 @@ func (o TargetGroupPtrOutput) ProxyProtocolV2() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o TargetGroupPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TargetGroup) *string { + if v == nil { + return nil + } + return v.Region + }).(pulumi.StringPtrOutput) +} + // Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. func (o TargetGroupPtrOutput) SlowStart() pulumi.IntPtrOutput { return o.ApplyT(func(v *TargetGroup) *int { diff --git a/sdk/go/awsx/lb/targetGroupAttachment.go b/sdk/go/awsx/lb/targetGroupAttachment.go index 27f74e2a9..5ac482d8a 100644 --- a/sdk/go/awsx/lb/targetGroupAttachment.go +++ b/sdk/go/awsx/lb/targetGroupAttachment.go @@ -7,9 +7,9 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lambda" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/java/build.gradle b/sdk/java/build.gradle index 2a64a46d6..a077ae102 100644 --- a/sdk/java/build.gradle +++ b/sdk/java/build.gradle @@ -43,7 +43,7 @@ repositories { dependencies { implementation("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.gson:gson:2.8.9") - implementation("com.pulumi:aws:6.66.3") + implementation("com.pulumi:aws:7.0.0-alpha.2") implementation("com.pulumi:docker:4.6.0") implementation("com.pulumi:docker-build:0.0.8") implementation("com.pulumi:pulumi:0.9.7") diff --git a/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/BucketArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/BucketArgs.java index 864292cc6..00a40b5dd 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/BucketArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/BucketArgs.java @@ -32,29 +32,39 @@ public final class BucketArgs extends com.pulumi.resources.ResourceArgs { public static final BucketArgs Empty = new BucketArgs(); /** - * Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + * Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketAccelerateConfiguration` instead. + * + * @deprecated + * acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. * */ + @Deprecated /* acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. */ @Import(name="accelerationStatus") private @Nullable Output accelerationStatus; /** - * @return Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + * @return Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketAccelerateConfiguration` instead. + * + * @deprecated + * acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. * */ + @Deprecated /* acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. */ public Optional> accelerationStatus() { return Optional.ofNullable(this.accelerationStatus); } /** - * The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + * The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. * */ @Import(name="acl") private @Nullable Output acl; /** - * @return The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + * @return The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. * */ public Optional> acl() { @@ -62,29 +72,14 @@ public Optional> acl() { } /** - * The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. - * - */ - @Import(name="arn") - private @Nullable Output arn; - - /** - * @return The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. - * - */ - public Optional> arn() { - return Optional.ofNullable(this.arn); - } - - /** - * The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + * Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. * */ @Import(name="bucket") private @Nullable Output bucket; /** - * @return The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + * @return Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. * */ public Optional> bucket() { @@ -107,29 +102,37 @@ public Optional> bucketPrefix() { } /** - * A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + * Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. + * + * @deprecated + * cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. * */ + @Deprecated /* cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. */ @Import(name="corsRules") private @Nullable Output> corsRules; /** - * @return A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + * @return Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. + * + * @deprecated + * cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. * */ + @Deprecated /* cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. */ public Optional>> corsRules() { return Optional.ofNullable(this.corsRules); } /** - * A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + * Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. * */ @Import(name="forceDestroy") private @Nullable Output forceDestroy; /** - * @return A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + * @return Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. * */ public Optional> forceDestroy() { @@ -137,93 +140,133 @@ public Optional> forceDestroy() { } /** - * An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + * An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. + * + * @deprecated + * grant is deprecated. Use the aws.s3.BucketAcl resource instead. * */ + @Deprecated /* grant is deprecated. Use the aws.s3.BucketAcl resource instead. */ @Import(name="grants") private @Nullable Output> grants; /** - * @return An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + * @return An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. + * + * @deprecated + * grant is deprecated. Use the aws.s3.BucketAcl resource instead. * */ + @Deprecated /* grant is deprecated. Use the aws.s3.BucketAcl resource instead. */ public Optional>> grants() { return Optional.ofNullable(this.grants); } /** - * The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + * Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLifecycleConfiguration` instead. * - */ - @Import(name="hostedZoneId") - private @Nullable Output hostedZoneId; - - /** - * @return The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. - * - */ - public Optional> hostedZoneId() { - return Optional.ofNullable(this.hostedZoneId); - } - - /** - * A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + * @deprecated + * lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. * */ + @Deprecated /* lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. */ @Import(name="lifecycleRules") private @Nullable Output> lifecycleRules; /** - * @return A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + * @return Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLifecycleConfiguration` instead. + * + * @deprecated + * lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. * */ + @Deprecated /* lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. */ public Optional>> lifecycleRules() { return Optional.ofNullable(this.lifecycleRules); } /** - * A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + * Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLogging` instead. + * + * @deprecated + * logging is deprecated. Use the aws.s3.BucketLogging resource instead. * */ - @Import(name="loggings") - private @Nullable Output> loggings; + @Deprecated /* logging is deprecated. Use the aws.s3.BucketLogging resource instead. */ + @Import(name="logging") + private @Nullable Output logging; /** - * @return A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + * @return Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLogging` instead. + * + * @deprecated + * logging is deprecated. Use the aws.s3.BucketLogging resource instead. * */ - public Optional>> loggings() { - return Optional.ofNullable(this.loggings); + @Deprecated /* logging is deprecated. Use the aws.s3.BucketLogging resource instead. */ + public Optional> logging() { + return Optional.ofNullable(this.logging); } /** - * A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + * Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + * The provider wil only perform drift detection if a configuration value is provided. + * Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. * - * > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` + * @deprecated + * object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. * */ + @Deprecated /* object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. */ @Import(name="objectLockConfiguration") private @Nullable Output objectLockConfiguration; /** - * @return A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + * @return Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + * The provider wil only perform drift detection if a configuration value is provided. + * Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. * - * > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` + * @deprecated + * object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. * */ + @Deprecated /* object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. */ public Optional> objectLockConfiguration() { return Optional.ofNullable(this.objectLockConfiguration); } /** - * A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + * Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + * + */ + @Import(name="objectLockEnabled") + private @Nullable Output objectLockEnabled; + + /** + * @return Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + * + */ + public Optional> objectLockEnabled() { + return Optional.ofNullable(this.objectLockEnabled); + } + + /** + * Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketPolicy` instead. * */ @Import(name="policy") private @Nullable Output policy; /** - * @return A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + * @return Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketPolicy` instead. * */ public Optional> policy() { @@ -231,65 +274,116 @@ public Optional> policy() { } /** - * A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. * */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + + /** + * Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketReplicationConfig` instead. + * + * @deprecated + * replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. + * + */ + @Deprecated /* replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. */ @Import(name="replicationConfiguration") private @Nullable Output replicationConfiguration; /** - * @return A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + * @return Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketReplicationConfig` instead. + * + * @deprecated + * replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. * */ + @Deprecated /* replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. */ public Optional> replicationConfiguration() { return Optional.ofNullable(this.replicationConfiguration); } /** * Specifies who should bear the cost of Amazon S3 data transfer. - * Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - * the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - * developer guide for more information. + * Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + * See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. + * + * @deprecated + * request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. * */ + @Deprecated /* request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. */ @Import(name="requestPayer") private @Nullable Output requestPayer; /** * @return Specifies who should bear the cost of Amazon S3 data transfer. - * Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - * the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - * developer guide for more information. + * Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + * See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. + * + * @deprecated + * request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. * */ + @Deprecated /* request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. */ public Optional> requestPayer() { return Optional.ofNullable(this.requestPayer); } /** - * A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + * Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. + * + * @deprecated + * server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. * */ + @Deprecated /* server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. */ @Import(name="serverSideEncryptionConfiguration") private @Nullable Output serverSideEncryptionConfiguration; /** - * @return A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + * @return Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. + * + * @deprecated + * server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. * */ + @Deprecated /* server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. */ public Optional> serverSideEncryptionConfiguration() { return Optional.ofNullable(this.serverSideEncryptionConfiguration); } /** - * A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * The following arguments are deprecated, and will be removed in a future major version: * */ @Import(name="tags") private @Nullable Output> tags; /** - * @return A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * @return Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * The following arguments are deprecated, and will be removed in a future major version: * */ public Optional>> tags() { @@ -297,89 +391,75 @@ public Optional>> tags() { } /** - * A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + * Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. + * + * @deprecated + * versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. * */ + @Deprecated /* versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. */ @Import(name="versioning") private @Nullable Output versioning; /** - * @return A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + * @return Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. + * + * @deprecated + * versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. * */ + @Deprecated /* versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. */ public Optional> versioning() { return Optional.ofNullable(this.versioning); } /** - * A website object (documented below). + * Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketWebsiteConfiguration` instead. + * + * @deprecated + * website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. * */ + @Deprecated /* website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. */ @Import(name="website") private @Nullable Output website; /** - * @return A website object (documented below). + * @return Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketWebsiteConfiguration` instead. + * + * @deprecated + * website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. * */ + @Deprecated /* website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. */ public Optional> website() { return Optional.ofNullable(this.website); } - /** - * The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - * - */ - @Import(name="websiteDomain") - private @Nullable Output websiteDomain; - - /** - * @return The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - * - */ - public Optional> websiteDomain() { - return Optional.ofNullable(this.websiteDomain); - } - - /** - * The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. - * - */ - @Import(name="websiteEndpoint") - private @Nullable Output websiteEndpoint; - - /** - * @return The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. - * - */ - public Optional> websiteEndpoint() { - return Optional.ofNullable(this.websiteEndpoint); - } - private BucketArgs() {} private BucketArgs(BucketArgs $) { this.accelerationStatus = $.accelerationStatus; this.acl = $.acl; - this.arn = $.arn; this.bucket = $.bucket; this.bucketPrefix = $.bucketPrefix; this.corsRules = $.corsRules; this.forceDestroy = $.forceDestroy; this.grants = $.grants; - this.hostedZoneId = $.hostedZoneId; this.lifecycleRules = $.lifecycleRules; - this.loggings = $.loggings; + this.logging = $.logging; this.objectLockConfiguration = $.objectLockConfiguration; + this.objectLockEnabled = $.objectLockEnabled; this.policy = $.policy; + this.region = $.region; this.replicationConfiguration = $.replicationConfiguration; this.requestPayer = $.requestPayer; this.serverSideEncryptionConfiguration = $.serverSideEncryptionConfiguration; this.tags = $.tags; this.versioning = $.versioning; this.website = $.website; - this.websiteDomain = $.websiteDomain; - this.websiteEndpoint = $.websiteEndpoint; } public static Builder builder() { @@ -401,28 +481,38 @@ public Builder(BucketArgs defaults) { } /** - * @param accelerationStatus Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + * @param accelerationStatus Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketAccelerateConfiguration` instead. * * @return builder * + * @deprecated + * acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. + * */ + @Deprecated /* acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. */ public Builder accelerationStatus(@Nullable Output accelerationStatus) { $.accelerationStatus = accelerationStatus; return this; } /** - * @param accelerationStatus Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + * @param accelerationStatus Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketAccelerateConfiguration` instead. * * @return builder * + * @deprecated + * acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. + * */ + @Deprecated /* acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. */ public Builder accelerationStatus(String accelerationStatus) { return accelerationStatus(Output.of(accelerationStatus)); } /** - * @param acl The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + * @param acl The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. * * @return builder * @@ -433,7 +523,7 @@ public Builder acl(@Nullable Output acl) { } /** - * @param acl The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + * @param acl The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. * * @return builder * @@ -443,28 +533,7 @@ public Builder acl(String acl) { } /** - * @param arn The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. - * - * @return builder - * - */ - public Builder arn(@Nullable Output arn) { - $.arn = arn; - return this; - } - - /** - * @param arn The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. - * - * @return builder - * - */ - public Builder arn(String arn) { - return arn(Output.of(arn)); - } - - /** - * @param bucket The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + * @param bucket Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. * * @return builder * @@ -475,7 +544,7 @@ public Builder bucket(@Nullable Output bucket) { } /** - * @param bucket The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + * @param bucket Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. * * @return builder * @@ -506,38 +575,50 @@ public Builder bucketPrefix(String bucketPrefix) { } /** - * @param corsRules A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + * @param corsRules Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. * * @return builder * + * @deprecated + * cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. + * */ + @Deprecated /* cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. */ public Builder corsRules(@Nullable Output> corsRules) { $.corsRules = corsRules; return this; } /** - * @param corsRules A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + * @param corsRules Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. * * @return builder * + * @deprecated + * cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. + * */ + @Deprecated /* cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. */ public Builder corsRules(List corsRules) { return corsRules(Output.of(corsRules)); } /** - * @param corsRules A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + * @param corsRules Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. * * @return builder * + * @deprecated + * cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. + * */ + @Deprecated /* cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. */ public Builder corsRules(BucketCorsRuleArgs... corsRules) { return corsRules(List.of(corsRules)); } /** - * @param forceDestroy A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + * @param forceDestroy Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. * * @return builder * @@ -548,7 +629,7 @@ public Builder forceDestroy(@Nullable Output forceDestroy) { } /** - * @param forceDestroy A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + * @param forceDestroy Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. * * @return builder * @@ -558,195 +639,270 @@ public Builder forceDestroy(Boolean forceDestroy) { } /** - * @param grants An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + * @param grants An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. * * @return builder * + * @deprecated + * grant is deprecated. Use the aws.s3.BucketAcl resource instead. + * */ + @Deprecated /* grant is deprecated. Use the aws.s3.BucketAcl resource instead. */ public Builder grants(@Nullable Output> grants) { $.grants = grants; return this; } /** - * @param grants An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + * @param grants An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. * * @return builder * + * @deprecated + * grant is deprecated. Use the aws.s3.BucketAcl resource instead. + * */ + @Deprecated /* grant is deprecated. Use the aws.s3.BucketAcl resource instead. */ public Builder grants(List grants) { return grants(Output.of(grants)); } /** - * @param grants An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + * @param grants An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. * * @return builder * + * @deprecated + * grant is deprecated. Use the aws.s3.BucketAcl resource instead. + * */ + @Deprecated /* grant is deprecated. Use the aws.s3.BucketAcl resource instead. */ public Builder grants(BucketGrantArgs... grants) { return grants(List.of(grants)); } /** - * @param hostedZoneId The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + * @param lifecycleRules Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLifecycleConfiguration` instead. * * @return builder * + * @deprecated + * lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. + * */ - public Builder hostedZoneId(@Nullable Output hostedZoneId) { - $.hostedZoneId = hostedZoneId; + @Deprecated /* lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. */ + public Builder lifecycleRules(@Nullable Output> lifecycleRules) { + $.lifecycleRules = lifecycleRules; return this; } /** - * @param hostedZoneId The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + * @param lifecycleRules Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLifecycleConfiguration` instead. * * @return builder * + * @deprecated + * lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. + * */ - public Builder hostedZoneId(String hostedZoneId) { - return hostedZoneId(Output.of(hostedZoneId)); + @Deprecated /* lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. */ + public Builder lifecycleRules(List lifecycleRules) { + return lifecycleRules(Output.of(lifecycleRules)); } /** - * @param lifecycleRules A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + * @param lifecycleRules Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLifecycleConfiguration` instead. * * @return builder * + * @deprecated + * lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. + * */ - public Builder lifecycleRules(@Nullable Output> lifecycleRules) { - $.lifecycleRules = lifecycleRules; - return this; + @Deprecated /* lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. */ + public Builder lifecycleRules(BucketLifecycleRuleArgs... lifecycleRules) { + return lifecycleRules(List.of(lifecycleRules)); } /** - * @param lifecycleRules A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + * @param logging Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLogging` instead. * * @return builder * + * @deprecated + * logging is deprecated. Use the aws.s3.BucketLogging resource instead. + * */ - public Builder lifecycleRules(List lifecycleRules) { - return lifecycleRules(Output.of(lifecycleRules)); + @Deprecated /* logging is deprecated. Use the aws.s3.BucketLogging resource instead. */ + public Builder logging(@Nullable Output logging) { + $.logging = logging; + return this; } /** - * @param lifecycleRules A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + * @param logging Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLogging` instead. * * @return builder * + * @deprecated + * logging is deprecated. Use the aws.s3.BucketLogging resource instead. + * */ - public Builder lifecycleRules(BucketLifecycleRuleArgs... lifecycleRules) { - return lifecycleRules(List.of(lifecycleRules)); + @Deprecated /* logging is deprecated. Use the aws.s3.BucketLogging resource instead. */ + public Builder logging(BucketLoggingArgs logging) { + return logging(Output.of(logging)); } /** - * @param loggings A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + * @param objectLockConfiguration Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + * The provider wil only perform drift detection if a configuration value is provided. + * Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. * * @return builder * + * @deprecated + * object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. + * */ - public Builder loggings(@Nullable Output> loggings) { - $.loggings = loggings; + @Deprecated /* object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. */ + public Builder objectLockConfiguration(@Nullable Output objectLockConfiguration) { + $.objectLockConfiguration = objectLockConfiguration; return this; } /** - * @param loggings A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + * @param objectLockConfiguration Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + * The provider wil only perform drift detection if a configuration value is provided. + * Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. * * @return builder * + * @deprecated + * object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. + * */ - public Builder loggings(List loggings) { - return loggings(Output.of(loggings)); + @Deprecated /* object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. */ + public Builder objectLockConfiguration(BucketObjectLockConfigurationArgs objectLockConfiguration) { + return objectLockConfiguration(Output.of(objectLockConfiguration)); } /** - * @param loggings A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + * @param objectLockEnabled Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. * * @return builder * */ - public Builder loggings(BucketLoggingArgs... loggings) { - return loggings(List.of(loggings)); + public Builder objectLockEnabled(@Nullable Output objectLockEnabled) { + $.objectLockEnabled = objectLockEnabled; + return this; } /** - * @param objectLockConfiguration A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + * @param objectLockEnabled Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. * - * > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` + * @return builder + * + */ + public Builder objectLockEnabled(Boolean objectLockEnabled) { + return objectLockEnabled(Output.of(objectLockEnabled)); + } + + /** + * @param policy Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketPolicy` instead. * * @return builder * */ - public Builder objectLockConfiguration(@Nullable Output objectLockConfiguration) { - $.objectLockConfiguration = objectLockConfiguration; + public Builder policy(@Nullable Output policy) { + $.policy = policy; return this; } /** - * @param objectLockConfiguration A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) - * - * > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` + * @param policy Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketPolicy` instead. * * @return builder * */ - public Builder objectLockConfiguration(BucketObjectLockConfigurationArgs objectLockConfiguration) { - return objectLockConfiguration(Output.of(objectLockConfiguration)); + public Builder policy(String policy) { + return policy(Output.of(policy)); } /** - * @param policy A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. * * @return builder * */ - public Builder policy(@Nullable Output policy) { - $.policy = policy; + public Builder region(@Nullable Output region) { + $.region = region; return this; } /** - * @param policy A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. * * @return builder * */ - public Builder policy(String policy) { - return policy(Output.of(policy)); + public Builder region(String region) { + return region(Output.of(region)); } /** - * @param replicationConfiguration A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + * @param replicationConfiguration Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketReplicationConfig` instead. * * @return builder * + * @deprecated + * replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. + * */ + @Deprecated /* replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. */ public Builder replicationConfiguration(@Nullable Output replicationConfiguration) { $.replicationConfiguration = replicationConfiguration; return this; } /** - * @param replicationConfiguration A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + * @param replicationConfiguration Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketReplicationConfig` instead. * * @return builder * + * @deprecated + * replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. + * */ + @Deprecated /* replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. */ public Builder replicationConfiguration(BucketReplicationConfigurationArgs replicationConfiguration) { return replicationConfiguration(Output.of(replicationConfiguration)); } /** * @param requestPayer Specifies who should bear the cost of Amazon S3 data transfer. - * Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - * the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - * developer guide for more information. + * Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + * See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. * * @return builder * + * @deprecated + * request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. + * */ + @Deprecated /* request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. */ public Builder requestPayer(@Nullable Output requestPayer) { $.requestPayer = requestPayer; return this; @@ -754,40 +910,59 @@ public Builder requestPayer(@Nullable Output requestPayer) { /** * @param requestPayer Specifies who should bear the cost of Amazon S3 data transfer. - * Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - * the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - * developer guide for more information. + * Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + * See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. * * @return builder * + * @deprecated + * request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. + * */ + @Deprecated /* request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. */ public Builder requestPayer(String requestPayer) { return requestPayer(Output.of(requestPayer)); } /** - * @param serverSideEncryptionConfiguration A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + * @param serverSideEncryptionConfiguration Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. * * @return builder * + * @deprecated + * server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. + * */ + @Deprecated /* server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. */ public Builder serverSideEncryptionConfiguration(@Nullable Output serverSideEncryptionConfiguration) { $.serverSideEncryptionConfiguration = serverSideEncryptionConfiguration; return this; } /** - * @param serverSideEncryptionConfiguration A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + * @param serverSideEncryptionConfiguration Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. * * @return builder * + * @deprecated + * server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. + * */ + @Deprecated /* server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. */ public Builder serverSideEncryptionConfiguration(BucketServerSideEncryptionConfigurationArgs serverSideEncryptionConfiguration) { return serverSideEncryptionConfiguration(Output.of(serverSideEncryptionConfiguration)); } /** - * @param tags A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * @param tags Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * The following arguments are deprecated, and will be removed in a future major version: * * @return builder * @@ -798,7 +973,9 @@ public Builder tags(@Nullable Output> tags) { } /** - * @param tags A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * @param tags Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * The following arguments are deprecated, and will be removed in a future major version: * * @return builder * @@ -808,89 +985,65 @@ public Builder tags(Map tags) { } /** - * @param versioning A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + * @param versioning Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. * * @return builder * + * @deprecated + * versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. + * */ + @Deprecated /* versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. */ public Builder versioning(@Nullable Output versioning) { $.versioning = versioning; return this; } /** - * @param versioning A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + * @param versioning Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. * * @return builder * + * @deprecated + * versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. + * */ + @Deprecated /* versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. */ public Builder versioning(BucketVersioningArgs versioning) { return versioning(Output.of(versioning)); } /** - * @param website A website object (documented below). + * @param website Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketWebsiteConfiguration` instead. * * @return builder * + * @deprecated + * website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. + * */ + @Deprecated /* website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. */ public Builder website(@Nullable Output website) { $.website = website; return this; } /** - * @param website A website object (documented below). + * @param website Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketWebsiteConfiguration` instead. * * @return builder * + * @deprecated + * website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. + * */ + @Deprecated /* website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. */ public Builder website(BucketWebsiteArgs website) { return website(Output.of(website)); } - /** - * @param websiteDomain The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - * - * @return builder - * - */ - public Builder websiteDomain(@Nullable Output websiteDomain) { - $.websiteDomain = websiteDomain; - return this; - } - - /** - * @param websiteDomain The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - * - * @return builder - * - */ - public Builder websiteDomain(String websiteDomain) { - return websiteDomain(Output.of(websiteDomain)); - } - - /** - * @param websiteEndpoint The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. - * - * @return builder - * - */ - public Builder websiteEndpoint(@Nullable Output websiteEndpoint) { - $.websiteEndpoint = websiteEndpoint; - return this; - } - - /** - * @param websiteEndpoint The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. - * - * @return builder - * - */ - public Builder websiteEndpoint(String websiteEndpoint) { - return websiteEndpoint(Output.of(websiteEndpoint)); - } - public BucketArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/LogGroupArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/LogGroupArgs.java index 7c535852e..720afe0c1 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/LogGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/LogGroupArgs.java @@ -86,6 +86,21 @@ public Optional> namePrefix() { return Optional.ofNullable(this.namePrefix); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * Specifies the number of days * you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. @@ -142,6 +157,7 @@ private LogGroupArgs(LogGroupArgs $) { this.logGroupClass = $.logGroupClass; this.name = $.name; this.namePrefix = $.namePrefix; + this.region = $.region; this.retentionInDays = $.retentionInDays; this.skipDestroy = $.skipDestroy; this.tags = $.tags; @@ -253,6 +269,27 @@ public Builder namePrefix(String namePrefix) { return namePrefix(Output.of(namePrefix)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param retentionInDays Specifies the number of days * you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. diff --git a/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/SecurityGroupArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/SecurityGroupArgs.java index a41220fa5..618fdee0f 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/SecurityGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/awsx/inputs/SecurityGroupArgs.java @@ -100,6 +100,21 @@ public Optional> namePrefix() { return Optional.ofNullable(this.namePrefix); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. * @@ -153,6 +168,7 @@ private SecurityGroupArgs(SecurityGroupArgs $) { this.ingress = $.ingress; this.name = $.name; this.namePrefix = $.namePrefix; + this.region = $.region; this.revokeRulesOnDelete = $.revokeRulesOnDelete; this.tags = $.tags; this.vpcId = $.vpcId; @@ -301,6 +317,27 @@ public Builder namePrefix(String namePrefix) { return namePrefix(Output.of(namePrefix)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param revokeRulesOnDelete Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. * diff --git a/sdk/java/src/main/java/com/pulumi/awsx/cloudtrail/TrailArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/cloudtrail/TrailArgs.java index aae84c32d..7c0676a2d 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/cloudtrail/TrailArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/cloudtrail/TrailArgs.java @@ -188,6 +188,21 @@ public Optional> name() { return Optional.ofNullable(this.name); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * S3 bucket designated for publishing log files. * @@ -219,14 +234,14 @@ public Optional> s3KeyPrefix() { } /** - * Name of the Amazon SNS topic defined for notification of log file delivery. + * Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. * */ @Import(name="snsTopicName") private @Nullable Output snsTopicName; /** - * @return Name of the Amazon SNS topic defined for notification of log file delivery. + * @return Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. * */ public Optional> snsTopicName() { @@ -262,6 +277,7 @@ private TrailArgs(TrailArgs $) { this.isOrganizationTrail = $.isOrganizationTrail; this.kmsKeyId = $.kmsKeyId; this.name = $.name; + this.region = $.region; this.s3Bucket = $.s3Bucket; this.s3KeyPrefix = $.s3KeyPrefix; this.snsTopicName = $.snsTopicName; @@ -537,6 +553,27 @@ public Builder name(String name) { return name(Output.of(name)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param s3Bucket S3 bucket designated for publishing log files. * @@ -570,7 +607,7 @@ public Builder s3KeyPrefix(String s3KeyPrefix) { } /** - * @param snsTopicName Name of the Amazon SNS topic defined for notification of log file delivery. + * @param snsTopicName Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. * * @return builder * @@ -581,7 +618,7 @@ public Builder snsTopicName(@Nullable Output snsTopicName) { } /** - * @param snsTopicName Name of the Amazon SNS topic defined for notification of log file delivery. + * @param snsTopicName Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/awsx/ec2/VpcArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/ec2/VpcArgs.java index f8b91e470..a7747c21e 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/ec2/VpcArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/ec2/VpcArgs.java @@ -263,6 +263,21 @@ public Optional numberOfAvailabilityZones() { return Optional.ofNullable(this.numberOfAvailabilityZones); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * A list of subnet specs that should be deployed to each AZ specified in availabilityZoneNames. Optional. Defaults to a (smaller) public subnet and a (larger) private subnet based on the size of the CIDR block for the VPC. Private subnets are allocated CIDR block ranges first, followed by Public subnets, and Isolated subnets are allocated last. * @@ -342,6 +357,7 @@ private VpcArgs(VpcArgs $) { this.ipv6NetmaskLength = $.ipv6NetmaskLength; this.natGateways = $.natGateways; this.numberOfAvailabilityZones = $.numberOfAvailabilityZones; + this.region = $.region; this.subnetSpecs = $.subnetSpecs; this.subnetStrategy = $.subnetStrategy; this.tags = $.tags; @@ -662,6 +678,27 @@ public Builder numberOfAvailabilityZones(@Nullable Integer numberOfAvailabilityZ return this; } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param subnetSpecs A list of subnet specs that should be deployed to each AZ specified in availabilityZoneNames. Optional. Defaults to a (smaller) public subnet and a (larger) private subnet based on the size of the CIDR block for the VPC. Private subnets are allocated CIDR block ranges first, followed by Public subnets, and Isolated subnets are allocated last. * diff --git a/sdk/java/src/main/java/com/pulumi/awsx/ec2/inputs/VpcEndpointSpecArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/ec2/inputs/VpcEndpointSpecArgs.java index 53c42eb9e..1f585779c 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/ec2/inputs/VpcEndpointSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/ec2/inputs/VpcEndpointSpecArgs.java @@ -211,11 +211,12 @@ * } * * public static void stack(Context ctx) { - * final var current = AwsFunctions.getCallerIdentity(); + * final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() + * .build()); * * var example = new VpcEndpointService("example", VpcEndpointServiceArgs.builder() * .acceptanceRequired(false) - * .allowedPrincipals(current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.arn())) + * .allowedPrincipals(current.arn()) * .gatewayLoadBalancerArns(exampleAwsLb.arn()) * .build()); * @@ -231,6 +232,78 @@ * ``` * <!--End PulumiCodeChooser --> * + * ### VPC Lattice Resource Configuration Endpoint Type + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.ec2.VpcEndpoint; + * import com.pulumi.aws.ec2.VpcEndpointArgs; + * 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 VpcEndpoint("example", VpcEndpointArgs.builder() + * .resourceConfigurationArn(exampleAwsVpclatticeResourceConfiguration.arn()) + * .subnetIds(exampleAwsSubnet.id()) + * .vpcEndpointType("Resource") + * .vpcId(exampleAwsVpc.id()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ### VPC Lattice Service Network Endpoint Type + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.ec2.VpcEndpoint; + * import com.pulumi.aws.ec2.VpcEndpointArgs; + * 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 VpcEndpoint("example", VpcEndpointArgs.builder() + * .serviceNetworkArn(exampleAwsVpclatticeServiceNetwork.arn()) + * .subnetIds(exampleAwsSubnet.id()) + * .vpcEndpointType("ServiceNetwork") + * .vpcId(exampleAwsVpc.id()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * * ## Import * * Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example: @@ -319,6 +392,36 @@ public Optional privateDnsEnabled() { return Optional.ofNullable(this.privateDnsEnabled); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + + /** + * The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + * + */ + @Import(name="resourceConfigurationArn") + private @Nullable Output resourceConfigurationArn; + + /** + * @return The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + * + */ + public Optional> resourceConfigurationArn() { + return Optional.ofNullable(this.resourceConfigurationArn); + } + /** * One or more route table IDs. Applicable for endpoints of type `Gateway`. * @@ -366,6 +469,21 @@ public String serviceName() { return this.serviceName; } + /** + * The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + * + */ + @Import(name="serviceNetworkArn") + private @Nullable Output serviceNetworkArn; + + /** + * @return The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + * + */ + public Optional> serviceNetworkArn() { + return Optional.ofNullable(this.serviceNetworkArn); + } + /** * The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. * @@ -427,14 +545,14 @@ public Optional>> tags() { } /** - * The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + * The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. * */ @Import(name="vpcEndpointType") private @Nullable Output vpcEndpointType; /** - * @return The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + * @return The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. * */ public Optional> vpcEndpointType() { @@ -449,9 +567,12 @@ private VpcEndpointSpecArgs(VpcEndpointSpecArgs $) { this.ipAddressType = $.ipAddressType; this.policy = $.policy; this.privateDnsEnabled = $.privateDnsEnabled; + this.region = $.region; + this.resourceConfigurationArn = $.resourceConfigurationArn; this.routeTableIds = $.routeTableIds; this.securityGroupIds = $.securityGroupIds; this.serviceName = $.serviceName; + this.serviceNetworkArn = $.serviceNetworkArn; this.serviceRegion = $.serviceRegion; this.subnetConfigurations = $.subnetConfigurations; this.subnetIds = $.subnetIds; @@ -562,6 +683,48 @@ public Builder privateDnsEnabled(@Nullable Boolean privateDnsEnabled) { return this; } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param resourceConfigurationArn The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + * + * @return builder + * + */ + public Builder resourceConfigurationArn(@Nullable Output resourceConfigurationArn) { + $.resourceConfigurationArn = resourceConfigurationArn; + return this; + } + + /** + * @param resourceConfigurationArn The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + * + * @return builder + * + */ + public Builder resourceConfigurationArn(String resourceConfigurationArn) { + return resourceConfigurationArn(Output.of(resourceConfigurationArn)); + } + /** * @param routeTableIds One or more route table IDs. Applicable for endpoints of type `Gateway`. * @@ -638,6 +801,27 @@ public Builder serviceName(String serviceName) { return this; } + /** + * @param serviceNetworkArn The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + * + * @return builder + * + */ + public Builder serviceNetworkArn(@Nullable Output serviceNetworkArn) { + $.serviceNetworkArn = serviceNetworkArn; + return this; + } + + /** + * @param serviceNetworkArn The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + * + * @return builder + * + */ + public Builder serviceNetworkArn(String serviceNetworkArn) { + return serviceNetworkArn(Output.of(serviceNetworkArn)); + } + /** * @param serviceRegion The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. * @@ -743,7 +927,7 @@ public Builder tags(Map tags) { } /** - * @param vpcEndpointType The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + * @param vpcEndpointType The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. * * @return builder * @@ -754,7 +938,7 @@ public Builder vpcEndpointType(@Nullable Output vpcEndpointType) { } /** - * @param vpcEndpointType The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + * @param vpcEndpointType The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/awsx/ecr/RepositoryArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/ecr/RepositoryArgs.java index f478bf94d..401006d49 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/ecr/RepositoryArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/ecr/RepositoryArgs.java @@ -113,6 +113,21 @@ public Optional> name() { return Optional.ofNullable(this.name); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * 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. * @@ -137,6 +152,7 @@ private RepositoryArgs(RepositoryArgs $) { this.imageTagMutability = $.imageTagMutability; this.lifecyclePolicy = $.lifecyclePolicy; this.name = $.name; + this.region = $.region; this.tags = $.tags; } @@ -286,6 +302,27 @@ public Builder name(String name) { return name(Output.of(name)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @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/awsx/ecs/EC2ServiceArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/ecs/EC2ServiceArgs.java index d4117d20e..988221bbe 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/ecs/EC2ServiceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/ecs/EC2ServiceArgs.java @@ -383,6 +383,21 @@ public Optional> propagateTags() { return Optional.ofNullable(this.propagateTags); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). * @@ -544,6 +559,7 @@ private EC2ServiceArgs(EC2ServiceArgs $) { this.placementConstraints = $.placementConstraints; this.platformVersion = $.platformVersion; this.propagateTags = $.propagateTags; + this.region = $.region; this.schedulingStrategy = $.schedulingStrategy; this.serviceConnectConfiguration = $.serviceConnectConfiguration; this.serviceRegistries = $.serviceRegistries; @@ -1102,6 +1118,27 @@ public Builder propagateTags(String propagateTags) { return propagateTags(Output.of(propagateTags)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param schedulingStrategy Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). * diff --git a/sdk/java/src/main/java/com/pulumi/awsx/ecs/EC2TaskDefinitionArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/ecs/EC2TaskDefinitionArgs.java index 264c98b0c..66f898ef0 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/ecs/EC2TaskDefinitionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/ecs/EC2TaskDefinitionArgs.java @@ -4,7 +4,6 @@ package com.pulumi.awsx.ecs; import com.pulumi.aws.ecs.inputs.TaskDefinitionEphemeralStorageArgs; -import com.pulumi.aws.ecs.inputs.TaskDefinitionInferenceAcceleratorArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionPlacementConstraintArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionProxyConfigurationArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionRuntimePlatformArgs; @@ -84,6 +83,21 @@ public Optional> cpu() { return Optional.ofNullable(this.cpu); } + /** + * Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + */ + @Import(name="enableFaultInjection") + private @Nullable Output enableFaultInjection; + + /** + * @return Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + */ + public Optional> enableFaultInjection() { + return Optional.ofNullable(this.enableFaultInjection); + } + /** * The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. * @@ -131,21 +145,6 @@ public Optional> family() { return Optional.ofNullable(this.family); } - /** - * Configuration block(s) with Inference Accelerators settings. Detailed below. - * - */ - @Import(name="inferenceAccelerators") - private @Nullable Output> inferenceAccelerators; - - /** - * @return Configuration block(s) with Inference Accelerators settings. Detailed below. - * - */ - public Optional>> inferenceAccelerators() { - return Optional.ofNullable(this.inferenceAccelerators); - } - /** * IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. * @@ -253,6 +252,21 @@ public Optional> proxyConfiguration return Optional.ofNullable(this.proxyConfiguration); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * Configuration block for runtime_platform that containers in your task may use. * @@ -333,6 +347,10 @@ public Optional> trackLatest() { /** * Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * */ @Import(name="volumes") private @Nullable Output> volumes; @@ -340,6 +358,10 @@ public Optional> trackLatest() { /** * @return Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * */ public Optional>> volumes() { return Optional.ofNullable(this.volumes); @@ -351,10 +373,10 @@ private EC2TaskDefinitionArgs(EC2TaskDefinitionArgs $) { this.container = $.container; this.containers = $.containers; this.cpu = $.cpu; + this.enableFaultInjection = $.enableFaultInjection; this.ephemeralStorage = $.ephemeralStorage; this.executionRole = $.executionRole; this.family = $.family; - this.inferenceAccelerators = $.inferenceAccelerators; this.ipcMode = $.ipcMode; this.logGroup = $.logGroup; this.memory = $.memory; @@ -362,6 +384,7 @@ private EC2TaskDefinitionArgs(EC2TaskDefinitionArgs $) { this.pidMode = $.pidMode; this.placementConstraints = $.placementConstraints; this.proxyConfiguration = $.proxyConfiguration; + this.region = $.region; this.runtimePlatform = $.runtimePlatform; this.skipDestroy = $.skipDestroy; this.tags = $.tags; @@ -437,6 +460,27 @@ public Builder cpu(String cpu) { return cpu(Output.of(cpu)); } + /** + * @param enableFaultInjection Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + * @return builder + * + */ + public Builder enableFaultInjection(@Nullable Output enableFaultInjection) { + $.enableFaultInjection = enableFaultInjection; + return this; + } + + /** + * @param enableFaultInjection Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + * @return builder + * + */ + public Builder enableFaultInjection(Boolean enableFaultInjection) { + return enableFaultInjection(Output.of(enableFaultInjection)); + } + /** * @param ephemeralStorage The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. * @@ -491,37 +535,6 @@ public Builder family(String family) { return family(Output.of(family)); } - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(@Nullable Output> inferenceAccelerators) { - $.inferenceAccelerators = inferenceAccelerators; - return this; - } - - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(List inferenceAccelerators) { - return inferenceAccelerators(Output.of(inferenceAccelerators)); - } - - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(TaskDefinitionInferenceAcceleratorArgs... inferenceAccelerators) { - return inferenceAccelerators(List.of(inferenceAccelerators)); - } - /** * @param ipcMode IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. * @@ -671,6 +684,27 @@ public Builder proxyConfiguration(TaskDefinitionProxyConfigurationArgs proxyConf return proxyConfiguration(Output.of(proxyConfiguration)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param runtimePlatform Configuration block for runtime_platform that containers in your task may use. * @@ -770,6 +804,10 @@ public Builder trackLatest(Boolean trackLatest) { /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ @@ -781,6 +819,10 @@ public Builder volumes(@Nullable Output> volumes) /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ @@ -791,6 +833,10 @@ public Builder volumes(List volumes) { /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/awsx/ecs/FargateServiceArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/ecs/FargateServiceArgs.java index 6398ac5a0..99a9f6f28 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/ecs/FargateServiceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/ecs/FargateServiceArgs.java @@ -366,6 +366,21 @@ public Optional> propagateTags() { return Optional.ofNullable(this.propagateTags); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). * @@ -526,6 +541,7 @@ private FargateServiceArgs(FargateServiceArgs $) { this.placementConstraints = $.placementConstraints; this.platformVersion = $.platformVersion; this.propagateTags = $.propagateTags; + this.region = $.region; this.schedulingStrategy = $.schedulingStrategy; this.serviceConnectConfiguration = $.serviceConnectConfiguration; this.serviceRegistries = $.serviceRegistries; @@ -1043,6 +1059,27 @@ public Builder propagateTags(String propagateTags) { return propagateTags(Output.of(propagateTags)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param schedulingStrategy Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). * diff --git a/sdk/java/src/main/java/com/pulumi/awsx/ecs/FargateTaskDefinitionArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/ecs/FargateTaskDefinitionArgs.java index 129d9d30b..5693dc6eb 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/ecs/FargateTaskDefinitionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/ecs/FargateTaskDefinitionArgs.java @@ -4,7 +4,6 @@ package com.pulumi.awsx.ecs; import com.pulumi.aws.ecs.inputs.TaskDefinitionEphemeralStorageArgs; -import com.pulumi.aws.ecs.inputs.TaskDefinitionInferenceAcceleratorArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionPlacementConstraintArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionProxyConfigurationArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionRuntimePlatformArgs; @@ -84,6 +83,21 @@ public Optional> cpu() { return Optional.ofNullable(this.cpu); } + /** + * Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + */ + @Import(name="enableFaultInjection") + private @Nullable Output enableFaultInjection; + + /** + * @return Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + */ + public Optional> enableFaultInjection() { + return Optional.ofNullable(this.enableFaultInjection); + } + /** * The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. * @@ -131,21 +145,6 @@ public Optional> family() { return Optional.ofNullable(this.family); } - /** - * Configuration block(s) with Inference Accelerators settings. Detailed below. - * - */ - @Import(name="inferenceAccelerators") - private @Nullable Output> inferenceAccelerators; - - /** - * @return Configuration block(s) with Inference Accelerators settings. Detailed below. - * - */ - public Optional>> inferenceAccelerators() { - return Optional.ofNullable(this.inferenceAccelerators); - } - /** * IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. * @@ -238,6 +237,21 @@ public Optional> proxyConfiguration return Optional.ofNullable(this.proxyConfiguration); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * Configuration block for runtime_platform that containers in your task may use. * @@ -318,6 +332,10 @@ public Optional> trackLatest() { /** * Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * */ @Import(name="volumes") private @Nullable Output> volumes; @@ -325,6 +343,10 @@ public Optional> trackLatest() { /** * @return Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * */ public Optional>> volumes() { return Optional.ofNullable(this.volumes); @@ -336,16 +358,17 @@ private FargateTaskDefinitionArgs(FargateTaskDefinitionArgs $) { this.container = $.container; this.containers = $.containers; this.cpu = $.cpu; + this.enableFaultInjection = $.enableFaultInjection; this.ephemeralStorage = $.ephemeralStorage; this.executionRole = $.executionRole; this.family = $.family; - this.inferenceAccelerators = $.inferenceAccelerators; this.ipcMode = $.ipcMode; this.logGroup = $.logGroup; this.memory = $.memory; this.pidMode = $.pidMode; this.placementConstraints = $.placementConstraints; this.proxyConfiguration = $.proxyConfiguration; + this.region = $.region; this.runtimePlatform = $.runtimePlatform; this.skipDestroy = $.skipDestroy; this.tags = $.tags; @@ -421,6 +444,27 @@ public Builder cpu(String cpu) { return cpu(Output.of(cpu)); } + /** + * @param enableFaultInjection Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + * @return builder + * + */ + public Builder enableFaultInjection(@Nullable Output enableFaultInjection) { + $.enableFaultInjection = enableFaultInjection; + return this; + } + + /** + * @param enableFaultInjection Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + * @return builder + * + */ + public Builder enableFaultInjection(Boolean enableFaultInjection) { + return enableFaultInjection(Output.of(enableFaultInjection)); + } + /** * @param ephemeralStorage The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. * @@ -475,37 +519,6 @@ public Builder family(String family) { return family(Output.of(family)); } - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(@Nullable Output> inferenceAccelerators) { - $.inferenceAccelerators = inferenceAccelerators; - return this; - } - - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(List inferenceAccelerators) { - return inferenceAccelerators(Output.of(inferenceAccelerators)); - } - - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(TaskDefinitionInferenceAcceleratorArgs... inferenceAccelerators) { - return inferenceAccelerators(List.of(inferenceAccelerators)); - } - /** * @param ipcMode IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. * @@ -634,6 +647,27 @@ public Builder proxyConfiguration(TaskDefinitionProxyConfigurationArgs proxyConf return proxyConfiguration(Output.of(proxyConfiguration)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param runtimePlatform Configuration block for runtime_platform that containers in your task may use. * @@ -733,6 +767,10 @@ public Builder trackLatest(Boolean trackLatest) { /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ @@ -744,6 +782,10 @@ public Builder volumes(@Nullable Output> volumes) /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ @@ -754,6 +796,10 @@ public Builder volumes(List volumes) { /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/awsx/ecs/inputs/EC2ServiceTaskDefinitionArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/ecs/inputs/EC2ServiceTaskDefinitionArgs.java index 2d04e5c06..92d8647d7 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/ecs/inputs/EC2ServiceTaskDefinitionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/ecs/inputs/EC2ServiceTaskDefinitionArgs.java @@ -4,7 +4,6 @@ package com.pulumi.awsx.ecs.inputs; import com.pulumi.aws.ecs.inputs.TaskDefinitionEphemeralStorageArgs; -import com.pulumi.aws.ecs.inputs.TaskDefinitionInferenceAcceleratorArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionPlacementConstraintArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionProxyConfigurationArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionRuntimePlatformArgs; @@ -90,6 +89,21 @@ public Optional> cpu() { return Optional.ofNullable(this.cpu); } + /** + * Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + */ + @Import(name="enableFaultInjection") + private @Nullable Output enableFaultInjection; + + /** + * @return Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + */ + public Optional> enableFaultInjection() { + return Optional.ofNullable(this.enableFaultInjection); + } + /** * The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. * @@ -137,21 +151,6 @@ public Optional> family() { return Optional.ofNullable(this.family); } - /** - * Configuration block(s) with Inference Accelerators settings. Detailed below. - * - */ - @Import(name="inferenceAccelerators") - private @Nullable Output> inferenceAccelerators; - - /** - * @return Configuration block(s) with Inference Accelerators settings. Detailed below. - * - */ - public Optional>> inferenceAccelerators() { - return Optional.ofNullable(this.inferenceAccelerators); - } - /** * IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. * @@ -259,6 +258,21 @@ public Optional> proxyConfiguration return Optional.ofNullable(this.proxyConfiguration); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * Configuration block for runtime_platform that containers in your task may use. * @@ -339,6 +353,10 @@ public Optional> trackLatest() { /** * Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * */ @Import(name="volumes") private @Nullable Output> volumes; @@ -346,6 +364,10 @@ public Optional> trackLatest() { /** * @return Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * */ public Optional>> volumes() { return Optional.ofNullable(this.volumes); @@ -357,10 +379,10 @@ private EC2ServiceTaskDefinitionArgs(EC2ServiceTaskDefinitionArgs $) { this.container = $.container; this.containers = $.containers; this.cpu = $.cpu; + this.enableFaultInjection = $.enableFaultInjection; this.ephemeralStorage = $.ephemeralStorage; this.executionRole = $.executionRole; this.family = $.family; - this.inferenceAccelerators = $.inferenceAccelerators; this.ipcMode = $.ipcMode; this.logGroup = $.logGroup; this.memory = $.memory; @@ -368,6 +390,7 @@ private EC2ServiceTaskDefinitionArgs(EC2ServiceTaskDefinitionArgs $) { this.pidMode = $.pidMode; this.placementConstraints = $.placementConstraints; this.proxyConfiguration = $.proxyConfiguration; + this.region = $.region; this.runtimePlatform = $.runtimePlatform; this.skipDestroy = $.skipDestroy; this.tags = $.tags; @@ -443,6 +466,27 @@ public Builder cpu(String cpu) { return cpu(Output.of(cpu)); } + /** + * @param enableFaultInjection Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + * @return builder + * + */ + public Builder enableFaultInjection(@Nullable Output enableFaultInjection) { + $.enableFaultInjection = enableFaultInjection; + return this; + } + + /** + * @param enableFaultInjection Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + * @return builder + * + */ + public Builder enableFaultInjection(Boolean enableFaultInjection) { + return enableFaultInjection(Output.of(enableFaultInjection)); + } + /** * @param ephemeralStorage The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. * @@ -497,37 +541,6 @@ public Builder family(String family) { return family(Output.of(family)); } - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(@Nullable Output> inferenceAccelerators) { - $.inferenceAccelerators = inferenceAccelerators; - return this; - } - - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(List inferenceAccelerators) { - return inferenceAccelerators(Output.of(inferenceAccelerators)); - } - - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(TaskDefinitionInferenceAcceleratorArgs... inferenceAccelerators) { - return inferenceAccelerators(List.of(inferenceAccelerators)); - } - /** * @param ipcMode IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. * @@ -677,6 +690,27 @@ public Builder proxyConfiguration(TaskDefinitionProxyConfigurationArgs proxyConf return proxyConfiguration(Output.of(proxyConfiguration)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param runtimePlatform Configuration block for runtime_platform that containers in your task may use. * @@ -776,6 +810,10 @@ public Builder trackLatest(Boolean trackLatest) { /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ @@ -787,6 +825,10 @@ public Builder volumes(@Nullable Output> volumes) /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ @@ -797,6 +839,10 @@ public Builder volumes(List volumes) { /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/awsx/ecs/inputs/FargateServiceTaskDefinitionArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/ecs/inputs/FargateServiceTaskDefinitionArgs.java index f4b24ef9d..420072fb9 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/ecs/inputs/FargateServiceTaskDefinitionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/ecs/inputs/FargateServiceTaskDefinitionArgs.java @@ -4,7 +4,6 @@ package com.pulumi.awsx.ecs.inputs; import com.pulumi.aws.ecs.inputs.TaskDefinitionEphemeralStorageArgs; -import com.pulumi.aws.ecs.inputs.TaskDefinitionInferenceAcceleratorArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionPlacementConstraintArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionProxyConfigurationArgs; import com.pulumi.aws.ecs.inputs.TaskDefinitionRuntimePlatformArgs; @@ -90,6 +89,21 @@ public Optional> cpu() { return Optional.ofNullable(this.cpu); } + /** + * Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + */ + @Import(name="enableFaultInjection") + private @Nullable Output enableFaultInjection; + + /** + * @return Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + */ + public Optional> enableFaultInjection() { + return Optional.ofNullable(this.enableFaultInjection); + } + /** * The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. * @@ -137,21 +151,6 @@ public Optional> family() { return Optional.ofNullable(this.family); } - /** - * Configuration block(s) with Inference Accelerators settings. Detailed below. - * - */ - @Import(name="inferenceAccelerators") - private @Nullable Output> inferenceAccelerators; - - /** - * @return Configuration block(s) with Inference Accelerators settings. Detailed below. - * - */ - public Optional>> inferenceAccelerators() { - return Optional.ofNullable(this.inferenceAccelerators); - } - /** * IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. * @@ -244,6 +243,21 @@ public Optional> proxyConfiguration return Optional.ofNullable(this.proxyConfiguration); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * Configuration block for runtime_platform that containers in your task may use. * @@ -324,6 +338,10 @@ public Optional> trackLatest() { /** * Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * */ @Import(name="volumes") private @Nullable Output> volumes; @@ -331,6 +349,10 @@ public Optional> trackLatest() { /** * @return Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * */ public Optional>> volumes() { return Optional.ofNullable(this.volumes); @@ -342,16 +364,17 @@ private FargateServiceTaskDefinitionArgs(FargateServiceTaskDefinitionArgs $) { this.container = $.container; this.containers = $.containers; this.cpu = $.cpu; + this.enableFaultInjection = $.enableFaultInjection; this.ephemeralStorage = $.ephemeralStorage; this.executionRole = $.executionRole; this.family = $.family; - this.inferenceAccelerators = $.inferenceAccelerators; this.ipcMode = $.ipcMode; this.logGroup = $.logGroup; this.memory = $.memory; this.pidMode = $.pidMode; this.placementConstraints = $.placementConstraints; this.proxyConfiguration = $.proxyConfiguration; + this.region = $.region; this.runtimePlatform = $.runtimePlatform; this.skipDestroy = $.skipDestroy; this.tags = $.tags; @@ -427,6 +450,27 @@ public Builder cpu(String cpu) { return cpu(Output.of(cpu)); } + /** + * @param enableFaultInjection Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + * @return builder + * + */ + public Builder enableFaultInjection(@Nullable Output enableFaultInjection) { + $.enableFaultInjection = enableFaultInjection; + return this; + } + + /** + * @param enableFaultInjection Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + * + * @return builder + * + */ + public Builder enableFaultInjection(Boolean enableFaultInjection) { + return enableFaultInjection(Output.of(enableFaultInjection)); + } + /** * @param ephemeralStorage The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. * @@ -481,37 +525,6 @@ public Builder family(String family) { return family(Output.of(family)); } - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(@Nullable Output> inferenceAccelerators) { - $.inferenceAccelerators = inferenceAccelerators; - return this; - } - - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(List inferenceAccelerators) { - return inferenceAccelerators(Output.of(inferenceAccelerators)); - } - - /** - * @param inferenceAccelerators Configuration block(s) with Inference Accelerators settings. Detailed below. - * - * @return builder - * - */ - public Builder inferenceAccelerators(TaskDefinitionInferenceAcceleratorArgs... inferenceAccelerators) { - return inferenceAccelerators(List.of(inferenceAccelerators)); - } - /** * @param ipcMode IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. * @@ -640,6 +653,27 @@ public Builder proxyConfiguration(TaskDefinitionProxyConfigurationArgs proxyConf return proxyConfiguration(Output.of(proxyConfiguration)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param runtimePlatform Configuration block for runtime_platform that containers in your task may use. * @@ -739,6 +773,10 @@ public Builder trackLatest(Boolean trackLatest) { /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ @@ -750,6 +788,10 @@ public Builder volumes(@Nullable Output> volumes) /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ @@ -760,6 +802,10 @@ public Builder volumes(List volumes) { /** * @param volumes Configuration block for volumes that containers in your task may use. Detailed below. * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/awsx/lb/ApplicationLoadBalancerArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/lb/ApplicationLoadBalancerArgs.java index 29b3670f8..fb2cb5afc 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/lb/ApplicationLoadBalancerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/lb/ApplicationLoadBalancerArgs.java @@ -6,6 +6,8 @@ import com.pulumi.aws.ec2.Subnet; import com.pulumi.aws.lb.inputs.LoadBalancerAccessLogsArgs; import com.pulumi.aws.lb.inputs.LoadBalancerConnectionLogsArgs; +import com.pulumi.aws.lb.inputs.LoadBalancerIpamPoolsArgs; +import com.pulumi.aws.lb.inputs.LoadBalancerMinimumLoadBalancerCapacityArgs; import com.pulumi.aws.lb.inputs.LoadBalancerSubnetMappingArgs; import com.pulumi.awsx.awsx.inputs.DefaultSecurityGroupArgs; import com.pulumi.awsx.lb.inputs.ListenerArgs; @@ -326,6 +328,21 @@ public Optional> ipAddressType() { return Optional.ofNullable(this.ipAddressType); } + /** + * . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + * + */ + @Import(name="ipamPools") + private @Nullable Output ipamPools; + + /** + * @return . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + * + */ + public Optional> ipamPools() { + return Optional.ofNullable(this.ipamPools); + } + /** * A listener to create. Only one of [listener] and [listeners] can be specified. * @@ -356,6 +373,21 @@ public Optional> listeners() { return Optional.ofNullable(this.listeners); } + /** + * Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + * + */ + @Import(name="minimumLoadBalancerCapacity") + private @Nullable Output minimumLoadBalancerCapacity; + + /** + * @return Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + * + */ + public Optional> minimumLoadBalancerCapacity() { + return Optional.ofNullable(this.minimumLoadBalancerCapacity); + } + /** * 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`. * @@ -401,6 +433,21 @@ public Optional> preserveHostHeader() { return Optional.ofNullable(this.preserveHostHeader); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * 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. * @@ -479,6 +526,10 @@ public Optional>> tags() { /** * 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`. * + * > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + * + * > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. + * */ @Import(name="xffHeaderProcessingMode") private @Nullable Output xffHeaderProcessingMode; @@ -486,6 +537,10 @@ public Optional>> tags() { /** * @return 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`. * + * > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + * + * > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. + * */ public Optional> xffHeaderProcessingMode() { return Optional.ofNullable(this.xffHeaderProcessingMode); @@ -514,11 +569,14 @@ private ApplicationLoadBalancerArgs(ApplicationLoadBalancerArgs $) { this.idleTimeout = $.idleTimeout; this.internal = $.internal; this.ipAddressType = $.ipAddressType; + this.ipamPools = $.ipamPools; this.listener = $.listener; this.listeners = $.listeners; + this.minimumLoadBalancerCapacity = $.minimumLoadBalancerCapacity; this.name = $.name; this.namePrefix = $.namePrefix; this.preserveHostHeader = $.preserveHostHeader; + this.region = $.region; this.securityGroups = $.securityGroups; this.subnetIds = $.subnetIds; this.subnetMappings = $.subnetMappings; @@ -945,6 +1003,27 @@ public Builder ipAddressType(String ipAddressType) { return ipAddressType(Output.of(ipAddressType)); } + /** + * @param ipamPools . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + * + * @return builder + * + */ + public Builder ipamPools(@Nullable Output ipamPools) { + $.ipamPools = ipamPools; + return this; + } + + /** + * @param ipamPools . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + * + * @return builder + * + */ + public Builder ipamPools(LoadBalancerIpamPoolsArgs ipamPools) { + return ipamPools(Output.of(ipamPools)); + } + /** * @param listener A listener to create. Only one of [listener] and [listeners] can be specified. * @@ -977,6 +1056,27 @@ public Builder listeners(ListenerArgs... listeners) { return listeners(List.of(listeners)); } + /** + * @param minimumLoadBalancerCapacity Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + * + * @return builder + * + */ + public Builder minimumLoadBalancerCapacity(@Nullable Output minimumLoadBalancerCapacity) { + $.minimumLoadBalancerCapacity = minimumLoadBalancerCapacity; + return this; + } + + /** + * @param minimumLoadBalancerCapacity Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + * + * @return builder + * + */ + public Builder minimumLoadBalancerCapacity(LoadBalancerMinimumLoadBalancerCapacityArgs minimumLoadBalancerCapacity) { + return minimumLoadBalancerCapacity(Output.of(minimumLoadBalancerCapacity)); + } + /** * @param name 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`. * @@ -1040,6 +1140,27 @@ public Builder preserveHostHeader(Boolean preserveHostHeader) { return preserveHostHeader(Output.of(preserveHostHeader)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param securityGroups 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. * @@ -1188,6 +1309,10 @@ public Builder tags(Map tags) { /** * @param xffHeaderProcessingMode 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`. * + * > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + * + * > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. + * * @return builder * */ @@ -1199,6 +1324,10 @@ public Builder xffHeaderProcessingMode(@Nullable Output xffHeaderProcess /** * @param xffHeaderProcessingMode 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`. * + * > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + * + * > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/awsx/lb/NetworkLoadBalancerArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/lb/NetworkLoadBalancerArgs.java index 59e8e2710..a4a903b0d 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/lb/NetworkLoadBalancerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/lb/NetworkLoadBalancerArgs.java @@ -6,6 +6,8 @@ import com.pulumi.aws.ec2.Subnet; import com.pulumi.aws.lb.inputs.LoadBalancerAccessLogsArgs; import com.pulumi.aws.lb.inputs.LoadBalancerConnectionLogsArgs; +import com.pulumi.aws.lb.inputs.LoadBalancerIpamPoolsArgs; +import com.pulumi.aws.lb.inputs.LoadBalancerMinimumLoadBalancerCapacityArgs; import com.pulumi.aws.lb.inputs.LoadBalancerSubnetMappingArgs; import com.pulumi.awsx.lb.inputs.ListenerArgs; import com.pulumi.awsx.lb.inputs.TargetGroupArgs; @@ -310,6 +312,21 @@ public Optional> ipAddressType() { return Optional.ofNullable(this.ipAddressType); } + /** + * . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + * + */ + @Import(name="ipamPools") + private @Nullable Output ipamPools; + + /** + * @return . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + * + */ + public Optional> ipamPools() { + return Optional.ofNullable(this.ipamPools); + } + /** * A listener to create. Only one of [listener] and [listeners] can be specified. * @@ -340,6 +357,21 @@ public Optional> listeners() { return Optional.ofNullable(this.listeners); } + /** + * Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + * + */ + @Import(name="minimumLoadBalancerCapacity") + private @Nullable Output minimumLoadBalancerCapacity; + + /** + * @return Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + * + */ + public Optional> minimumLoadBalancerCapacity() { + return Optional.ofNullable(this.minimumLoadBalancerCapacity); + } + /** * 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`. * @@ -385,6 +417,21 @@ public Optional> preserveHostHeader() { return Optional.ofNullable(this.preserveHostHeader); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * 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. * @@ -463,6 +510,10 @@ public Optional>> tags() { /** * 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`. * + * > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + * + * > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. + * */ @Import(name="xffHeaderProcessingMode") private @Nullable Output xffHeaderProcessingMode; @@ -470,6 +521,10 @@ public Optional>> tags() { /** * @return 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`. * + * > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + * + * > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. + * */ public Optional> xffHeaderProcessingMode() { return Optional.ofNullable(this.xffHeaderProcessingMode); @@ -497,11 +552,14 @@ private NetworkLoadBalancerArgs(NetworkLoadBalancerArgs $) { this.idleTimeout = $.idleTimeout; this.internal = $.internal; this.ipAddressType = $.ipAddressType; + this.ipamPools = $.ipamPools; this.listener = $.listener; this.listeners = $.listeners; + this.minimumLoadBalancerCapacity = $.minimumLoadBalancerCapacity; this.name = $.name; this.namePrefix = $.namePrefix; this.preserveHostHeader = $.preserveHostHeader; + this.region = $.region; this.securityGroups = $.securityGroups; this.subnetIds = $.subnetIds; this.subnetMappings = $.subnetMappings; @@ -917,6 +975,27 @@ public Builder ipAddressType(String ipAddressType) { return ipAddressType(Output.of(ipAddressType)); } + /** + * @param ipamPools . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + * + * @return builder + * + */ + public Builder ipamPools(@Nullable Output ipamPools) { + $.ipamPools = ipamPools; + return this; + } + + /** + * @param ipamPools . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + * + * @return builder + * + */ + public Builder ipamPools(LoadBalancerIpamPoolsArgs ipamPools) { + return ipamPools(Output.of(ipamPools)); + } + /** * @param listener A listener to create. Only one of [listener] and [listeners] can be specified. * @@ -949,6 +1028,27 @@ public Builder listeners(ListenerArgs... listeners) { return listeners(List.of(listeners)); } + /** + * @param minimumLoadBalancerCapacity Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + * + * @return builder + * + */ + public Builder minimumLoadBalancerCapacity(@Nullable Output minimumLoadBalancerCapacity) { + $.minimumLoadBalancerCapacity = minimumLoadBalancerCapacity; + return this; + } + + /** + * @param minimumLoadBalancerCapacity Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + * + * @return builder + * + */ + public Builder minimumLoadBalancerCapacity(LoadBalancerMinimumLoadBalancerCapacityArgs minimumLoadBalancerCapacity) { + return minimumLoadBalancerCapacity(Output.of(minimumLoadBalancerCapacity)); + } + /** * @param name 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`. * @@ -1012,6 +1112,27 @@ public Builder preserveHostHeader(Boolean preserveHostHeader) { return preserveHostHeader(Output.of(preserveHostHeader)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param securityGroups 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. * @@ -1160,6 +1281,10 @@ public Builder tags(Map tags) { /** * @param xffHeaderProcessingMode 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`. * + * > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + * + * > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. + * * @return builder * */ @@ -1171,6 +1296,10 @@ public Builder xffHeaderProcessingMode(@Nullable Output xffHeaderProcess /** * @param xffHeaderProcessingMode 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`. * + * > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + * + * > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/ListenerArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/ListenerArgs.java index 72f6ae87d..4986b1529 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/ListenerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/ListenerArgs.java @@ -7,6 +7,7 @@ import com.pulumi.aws.lb.inputs.ListenerMutualAuthenticationArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; +import java.lang.Boolean; import java.lang.Integer; import java.lang.String; import java.util.List; @@ -56,7 +57,7 @@ * * var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() * .loadBalancerArn(frontEnd.arn()) - * .port("443") + * .port(443) * .protocol("HTTPS") * .sslPolicy("ELBSecurityPolicy-2016-08") * .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") @@ -98,7 +99,7 @@ * public static void stack(Context ctx) { * var frontEnd = new Listener("frontEnd", ListenerArgs.builder() * .loadBalancerArn(frontEndAwsLb.arn()) - * .port("443") + * .port(443) * .protocol("TLS") * .sslPolicy("ELBSecurityPolicy-2016-08") * .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") @@ -145,7 +146,7 @@ * * var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() * .loadBalancerArn(frontEnd.arn()) - * .port("80") + * .port(80) * .protocol("HTTP") * .defaultActions(ListenerDefaultActionArgs.builder() * .type("redirect") @@ -193,7 +194,7 @@ * * var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() * .loadBalancerArn(frontEnd.arn()) - * .port("80") + * .port(80) * .protocol("HTTP") * .defaultActions(ListenerDefaultActionArgs.builder() * .type("fixed-response") @@ -253,7 +254,7 @@ * * var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() * .loadBalancerArn(frontEnd.arn()) - * .port("80") + * .port(80) * .protocol("HTTP") * .defaultActions( * ListenerDefaultActionArgs.builder() @@ -309,7 +310,7 @@ * * var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() * .loadBalancerArn(frontEnd.arn()) - * .port("80") + * .port(80) * .protocol("HTTP") * .defaultActions( * ListenerDefaultActionArgs.builder() @@ -379,7 +380,7 @@ * .protocol("GENEVE") * .vpcId(exampleAwsVpc.id()) * .healthCheck(TargetGroupHealthCheckArgs.builder() - * .port(80) + * .port("80") * .protocol("HTTP") * .build()) * .build()); @@ -552,6 +553,306 @@ public Optional> protocol() { return Optional.ofNullable(this.protocol); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + @Import(name="routingHttpRequestXAmznMtlsClientcertHeaderName") + private @Nullable Output routingHttpRequestXAmznMtlsClientcertHeaderName; + + /** + * @return Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + public Optional> routingHttpRequestXAmznMtlsClientcertHeaderName() { + return Optional.ofNullable(this.routingHttpRequestXAmznMtlsClientcertHeaderName); + } + + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + @Import(name="routingHttpRequestXAmznMtlsClientcertIssuerHeaderName") + private @Nullable Output routingHttpRequestXAmznMtlsClientcertIssuerHeaderName; + + /** + * @return Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + public Optional> routingHttpRequestXAmznMtlsClientcertIssuerHeaderName() { + return Optional.ofNullable(this.routingHttpRequestXAmznMtlsClientcertIssuerHeaderName); + } + + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + @Import(name="routingHttpRequestXAmznMtlsClientcertLeafHeaderName") + private @Nullable Output routingHttpRequestXAmznMtlsClientcertLeafHeaderName; + + /** + * @return Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + public Optional> routingHttpRequestXAmznMtlsClientcertLeafHeaderName() { + return Optional.ofNullable(this.routingHttpRequestXAmznMtlsClientcertLeafHeaderName); + } + + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + @Import(name="routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName") + private @Nullable Output routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName; + + /** + * @return Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + public Optional> routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName() { + return Optional.ofNullable(this.routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName); + } + + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + @Import(name="routingHttpRequestXAmznMtlsClientcertSubjectHeaderName") + private @Nullable Output routingHttpRequestXAmznMtlsClientcertSubjectHeaderName; + + /** + * @return Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + public Optional> routingHttpRequestXAmznMtlsClientcertSubjectHeaderName() { + return Optional.ofNullable(this.routingHttpRequestXAmznMtlsClientcertSubjectHeaderName); + } + + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + @Import(name="routingHttpRequestXAmznMtlsClientcertValidityHeaderName") + private @Nullable Output routingHttpRequestXAmznMtlsClientcertValidityHeaderName; + + /** + * @return Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + public Optional> routingHttpRequestXAmznMtlsClientcertValidityHeaderName() { + return Optional.ofNullable(this.routingHttpRequestXAmznMtlsClientcertValidityHeaderName); + } + + /** + * Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + @Import(name="routingHttpRequestXAmznTlsCipherSuiteHeaderName") + private @Nullable Output routingHttpRequestXAmznTlsCipherSuiteHeaderName; + + /** + * @return Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + public Optional> routingHttpRequestXAmznTlsCipherSuiteHeaderName() { + return Optional.ofNullable(this.routingHttpRequestXAmznTlsCipherSuiteHeaderName); + } + + /** + * Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + @Import(name="routingHttpRequestXAmznTlsVersionHeaderName") + private @Nullable Output routingHttpRequestXAmznTlsVersionHeaderName; + + /** + * @return Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + */ + public Optional> routingHttpRequestXAmznTlsVersionHeaderName() { + return Optional.ofNullable(this.routingHttpRequestXAmznTlsVersionHeaderName); + } + + /** + * Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + * + */ + @Import(name="routingHttpResponseAccessControlAllowCredentialsHeaderValue") + private @Nullable Output routingHttpResponseAccessControlAllowCredentialsHeaderValue; + + /** + * @return Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + * + */ + public Optional> routingHttpResponseAccessControlAllowCredentialsHeaderValue() { + return Optional.ofNullable(this.routingHttpResponseAccessControlAllowCredentialsHeaderValue); + } + + /** + * Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + * + */ + @Import(name="routingHttpResponseAccessControlAllowHeadersHeaderValue") + private @Nullable Output routingHttpResponseAccessControlAllowHeadersHeaderValue; + + /** + * @return Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + * + */ + public Optional> routingHttpResponseAccessControlAllowHeadersHeaderValue() { + return Optional.ofNullable(this.routingHttpResponseAccessControlAllowHeadersHeaderValue); + } + + /** + * Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + * + */ + @Import(name="routingHttpResponseAccessControlAllowMethodsHeaderValue") + private @Nullable Output routingHttpResponseAccessControlAllowMethodsHeaderValue; + + /** + * @return Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + * + */ + public Optional> routingHttpResponseAccessControlAllowMethodsHeaderValue() { + return Optional.ofNullable(this.routingHttpResponseAccessControlAllowMethodsHeaderValue); + } + + /** + * Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + * + */ + @Import(name="routingHttpResponseAccessControlAllowOriginHeaderValue") + private @Nullable Output routingHttpResponseAccessControlAllowOriginHeaderValue; + + /** + * @return Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + * + */ + public Optional> routingHttpResponseAccessControlAllowOriginHeaderValue() { + return Optional.ofNullable(this.routingHttpResponseAccessControlAllowOriginHeaderValue); + } + + /** + * Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + * + */ + @Import(name="routingHttpResponseAccessControlExposeHeadersHeaderValue") + private @Nullable Output routingHttpResponseAccessControlExposeHeadersHeaderValue; + + /** + * @return Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + * + */ + public Optional> routingHttpResponseAccessControlExposeHeadersHeaderValue() { + return Optional.ofNullable(this.routingHttpResponseAccessControlExposeHeadersHeaderValue); + } + + /** + * Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + * + */ + @Import(name="routingHttpResponseAccessControlMaxAgeHeaderValue") + private @Nullable Output routingHttpResponseAccessControlMaxAgeHeaderValue; + + /** + * @return Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + * + */ + public Optional> routingHttpResponseAccessControlMaxAgeHeaderValue() { + return Optional.ofNullable(this.routingHttpResponseAccessControlMaxAgeHeaderValue); + } + + /** + * Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + * + */ + @Import(name="routingHttpResponseContentSecurityPolicyHeaderValue") + private @Nullable Output routingHttpResponseContentSecurityPolicyHeaderValue; + + /** + * @return Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + * + */ + public Optional> routingHttpResponseContentSecurityPolicyHeaderValue() { + return Optional.ofNullable(this.routingHttpResponseContentSecurityPolicyHeaderValue); + } + + /** + * Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + * + */ + @Import(name="routingHttpResponseServerEnabled") + private @Nullable Output routingHttpResponseServerEnabled; + + /** + * @return Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + * + */ + public Optional> routingHttpResponseServerEnabled() { + return Optional.ofNullable(this.routingHttpResponseServerEnabled); + } + + /** + * Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + * + */ + @Import(name="routingHttpResponseStrictTransportSecurityHeaderValue") + private @Nullable Output routingHttpResponseStrictTransportSecurityHeaderValue; + + /** + * @return Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + * + */ + public Optional> routingHttpResponseStrictTransportSecurityHeaderValue() { + return Optional.ofNullable(this.routingHttpResponseStrictTransportSecurityHeaderValue); + } + + /** + * Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + * + */ + @Import(name="routingHttpResponseXContentTypeOptionsHeaderValue") + private @Nullable Output routingHttpResponseXContentTypeOptionsHeaderValue; + + /** + * @return Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + * + */ + public Optional> routingHttpResponseXContentTypeOptionsHeaderValue() { + return Optional.ofNullable(this.routingHttpResponseXContentTypeOptionsHeaderValue); + } + + /** + * Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. + * + */ + @Import(name="routingHttpResponseXFrameOptionsHeaderValue") + private @Nullable Output routingHttpResponseXFrameOptionsHeaderValue; + + /** + * @return Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. + * + */ + public Optional> routingHttpResponseXFrameOptionsHeaderValue() { + return Optional.ofNullable(this.routingHttpResponseXFrameOptionsHeaderValue); + } + /** * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * @@ -610,6 +911,26 @@ private ListenerArgs(ListenerArgs $) { this.mutualAuthentication = $.mutualAuthentication; this.port = $.port; this.protocol = $.protocol; + this.region = $.region; + this.routingHttpRequestXAmznMtlsClientcertHeaderName = $.routingHttpRequestXAmznMtlsClientcertHeaderName; + this.routingHttpRequestXAmznMtlsClientcertIssuerHeaderName = $.routingHttpRequestXAmznMtlsClientcertIssuerHeaderName; + this.routingHttpRequestXAmznMtlsClientcertLeafHeaderName = $.routingHttpRequestXAmznMtlsClientcertLeafHeaderName; + this.routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName = $.routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName; + this.routingHttpRequestXAmznMtlsClientcertSubjectHeaderName = $.routingHttpRequestXAmznMtlsClientcertSubjectHeaderName; + this.routingHttpRequestXAmznMtlsClientcertValidityHeaderName = $.routingHttpRequestXAmznMtlsClientcertValidityHeaderName; + this.routingHttpRequestXAmznTlsCipherSuiteHeaderName = $.routingHttpRequestXAmznTlsCipherSuiteHeaderName; + this.routingHttpRequestXAmznTlsVersionHeaderName = $.routingHttpRequestXAmznTlsVersionHeaderName; + this.routingHttpResponseAccessControlAllowCredentialsHeaderValue = $.routingHttpResponseAccessControlAllowCredentialsHeaderValue; + this.routingHttpResponseAccessControlAllowHeadersHeaderValue = $.routingHttpResponseAccessControlAllowHeadersHeaderValue; + this.routingHttpResponseAccessControlAllowMethodsHeaderValue = $.routingHttpResponseAccessControlAllowMethodsHeaderValue; + this.routingHttpResponseAccessControlAllowOriginHeaderValue = $.routingHttpResponseAccessControlAllowOriginHeaderValue; + this.routingHttpResponseAccessControlExposeHeadersHeaderValue = $.routingHttpResponseAccessControlExposeHeadersHeaderValue; + this.routingHttpResponseAccessControlMaxAgeHeaderValue = $.routingHttpResponseAccessControlMaxAgeHeaderValue; + this.routingHttpResponseContentSecurityPolicyHeaderValue = $.routingHttpResponseContentSecurityPolicyHeaderValue; + this.routingHttpResponseServerEnabled = $.routingHttpResponseServerEnabled; + this.routingHttpResponseStrictTransportSecurityHeaderValue = $.routingHttpResponseStrictTransportSecurityHeaderValue; + this.routingHttpResponseXContentTypeOptionsHeaderValue = $.routingHttpResponseXContentTypeOptionsHeaderValue; + this.routingHttpResponseXFrameOptionsHeaderValue = $.routingHttpResponseXFrameOptionsHeaderValue; this.sslPolicy = $.sslPolicy; this.tags = $.tags; this.tcpIdleTimeoutSeconds = $.tcpIdleTimeoutSeconds; @@ -769,6 +1090,426 @@ public Builder protocol(String protocol) { return protocol(Output.of(protocol)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertHeaderName(@Nullable Output routingHttpRequestXAmznMtlsClientcertHeaderName) { + $.routingHttpRequestXAmznMtlsClientcertHeaderName = routingHttpRequestXAmznMtlsClientcertHeaderName; + return this; + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertHeaderName(String routingHttpRequestXAmznMtlsClientcertHeaderName) { + return routingHttpRequestXAmznMtlsClientcertHeaderName(Output.of(routingHttpRequestXAmznMtlsClientcertHeaderName)); + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertIssuerHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertIssuerHeaderName(@Nullable Output routingHttpRequestXAmznMtlsClientcertIssuerHeaderName) { + $.routingHttpRequestXAmznMtlsClientcertIssuerHeaderName = routingHttpRequestXAmznMtlsClientcertIssuerHeaderName; + return this; + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertIssuerHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertIssuerHeaderName(String routingHttpRequestXAmznMtlsClientcertIssuerHeaderName) { + return routingHttpRequestXAmznMtlsClientcertIssuerHeaderName(Output.of(routingHttpRequestXAmznMtlsClientcertIssuerHeaderName)); + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertLeafHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertLeafHeaderName(@Nullable Output routingHttpRequestXAmznMtlsClientcertLeafHeaderName) { + $.routingHttpRequestXAmznMtlsClientcertLeafHeaderName = routingHttpRequestXAmznMtlsClientcertLeafHeaderName; + return this; + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertLeafHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertLeafHeaderName(String routingHttpRequestXAmznMtlsClientcertLeafHeaderName) { + return routingHttpRequestXAmznMtlsClientcertLeafHeaderName(Output.of(routingHttpRequestXAmznMtlsClientcertLeafHeaderName)); + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName(@Nullable Output routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName) { + $.routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName = routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName; + return this; + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName(String routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName) { + return routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName(Output.of(routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName)); + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertSubjectHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertSubjectHeaderName(@Nullable Output routingHttpRequestXAmznMtlsClientcertSubjectHeaderName) { + $.routingHttpRequestXAmznMtlsClientcertSubjectHeaderName = routingHttpRequestXAmznMtlsClientcertSubjectHeaderName; + return this; + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertSubjectHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertSubjectHeaderName(String routingHttpRequestXAmznMtlsClientcertSubjectHeaderName) { + return routingHttpRequestXAmznMtlsClientcertSubjectHeaderName(Output.of(routingHttpRequestXAmznMtlsClientcertSubjectHeaderName)); + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertValidityHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertValidityHeaderName(@Nullable Output routingHttpRequestXAmznMtlsClientcertValidityHeaderName) { + $.routingHttpRequestXAmznMtlsClientcertValidityHeaderName = routingHttpRequestXAmznMtlsClientcertValidityHeaderName; + return this; + } + + /** + * @param routingHttpRequestXAmznMtlsClientcertValidityHeaderName Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznMtlsClientcertValidityHeaderName(String routingHttpRequestXAmznMtlsClientcertValidityHeaderName) { + return routingHttpRequestXAmznMtlsClientcertValidityHeaderName(Output.of(routingHttpRequestXAmznMtlsClientcertValidityHeaderName)); + } + + /** + * @param routingHttpRequestXAmznTlsCipherSuiteHeaderName Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznTlsCipherSuiteHeaderName(@Nullable Output routingHttpRequestXAmznTlsCipherSuiteHeaderName) { + $.routingHttpRequestXAmznTlsCipherSuiteHeaderName = routingHttpRequestXAmznTlsCipherSuiteHeaderName; + return this; + } + + /** + * @param routingHttpRequestXAmznTlsCipherSuiteHeaderName Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznTlsCipherSuiteHeaderName(String routingHttpRequestXAmznTlsCipherSuiteHeaderName) { + return routingHttpRequestXAmznTlsCipherSuiteHeaderName(Output.of(routingHttpRequestXAmznTlsCipherSuiteHeaderName)); + } + + /** + * @param routingHttpRequestXAmznTlsVersionHeaderName Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznTlsVersionHeaderName(@Nullable Output routingHttpRequestXAmznTlsVersionHeaderName) { + $.routingHttpRequestXAmznTlsVersionHeaderName = routingHttpRequestXAmznTlsVersionHeaderName; + return this; + } + + /** + * @param routingHttpRequestXAmznTlsVersionHeaderName Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + * + * @return builder + * + */ + public Builder routingHttpRequestXAmznTlsVersionHeaderName(String routingHttpRequestXAmznTlsVersionHeaderName) { + return routingHttpRequestXAmznTlsVersionHeaderName(Output.of(routingHttpRequestXAmznTlsVersionHeaderName)); + } + + /** + * @param routingHttpResponseAccessControlAllowCredentialsHeaderValue Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlAllowCredentialsHeaderValue(@Nullable Output routingHttpResponseAccessControlAllowCredentialsHeaderValue) { + $.routingHttpResponseAccessControlAllowCredentialsHeaderValue = routingHttpResponseAccessControlAllowCredentialsHeaderValue; + return this; + } + + /** + * @param routingHttpResponseAccessControlAllowCredentialsHeaderValue Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlAllowCredentialsHeaderValue(String routingHttpResponseAccessControlAllowCredentialsHeaderValue) { + return routingHttpResponseAccessControlAllowCredentialsHeaderValue(Output.of(routingHttpResponseAccessControlAllowCredentialsHeaderValue)); + } + + /** + * @param routingHttpResponseAccessControlAllowHeadersHeaderValue Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlAllowHeadersHeaderValue(@Nullable Output routingHttpResponseAccessControlAllowHeadersHeaderValue) { + $.routingHttpResponseAccessControlAllowHeadersHeaderValue = routingHttpResponseAccessControlAllowHeadersHeaderValue; + return this; + } + + /** + * @param routingHttpResponseAccessControlAllowHeadersHeaderValue Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlAllowHeadersHeaderValue(String routingHttpResponseAccessControlAllowHeadersHeaderValue) { + return routingHttpResponseAccessControlAllowHeadersHeaderValue(Output.of(routingHttpResponseAccessControlAllowHeadersHeaderValue)); + } + + /** + * @param routingHttpResponseAccessControlAllowMethodsHeaderValue Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlAllowMethodsHeaderValue(@Nullable Output routingHttpResponseAccessControlAllowMethodsHeaderValue) { + $.routingHttpResponseAccessControlAllowMethodsHeaderValue = routingHttpResponseAccessControlAllowMethodsHeaderValue; + return this; + } + + /** + * @param routingHttpResponseAccessControlAllowMethodsHeaderValue Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlAllowMethodsHeaderValue(String routingHttpResponseAccessControlAllowMethodsHeaderValue) { + return routingHttpResponseAccessControlAllowMethodsHeaderValue(Output.of(routingHttpResponseAccessControlAllowMethodsHeaderValue)); + } + + /** + * @param routingHttpResponseAccessControlAllowOriginHeaderValue Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlAllowOriginHeaderValue(@Nullable Output routingHttpResponseAccessControlAllowOriginHeaderValue) { + $.routingHttpResponseAccessControlAllowOriginHeaderValue = routingHttpResponseAccessControlAllowOriginHeaderValue; + return this; + } + + /** + * @param routingHttpResponseAccessControlAllowOriginHeaderValue Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlAllowOriginHeaderValue(String routingHttpResponseAccessControlAllowOriginHeaderValue) { + return routingHttpResponseAccessControlAllowOriginHeaderValue(Output.of(routingHttpResponseAccessControlAllowOriginHeaderValue)); + } + + /** + * @param routingHttpResponseAccessControlExposeHeadersHeaderValue Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlExposeHeadersHeaderValue(@Nullable Output routingHttpResponseAccessControlExposeHeadersHeaderValue) { + $.routingHttpResponseAccessControlExposeHeadersHeaderValue = routingHttpResponseAccessControlExposeHeadersHeaderValue; + return this; + } + + /** + * @param routingHttpResponseAccessControlExposeHeadersHeaderValue Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlExposeHeadersHeaderValue(String routingHttpResponseAccessControlExposeHeadersHeaderValue) { + return routingHttpResponseAccessControlExposeHeadersHeaderValue(Output.of(routingHttpResponseAccessControlExposeHeadersHeaderValue)); + } + + /** + * @param routingHttpResponseAccessControlMaxAgeHeaderValue Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlMaxAgeHeaderValue(@Nullable Output routingHttpResponseAccessControlMaxAgeHeaderValue) { + $.routingHttpResponseAccessControlMaxAgeHeaderValue = routingHttpResponseAccessControlMaxAgeHeaderValue; + return this; + } + + /** + * @param routingHttpResponseAccessControlMaxAgeHeaderValue Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + * + * @return builder + * + */ + public Builder routingHttpResponseAccessControlMaxAgeHeaderValue(String routingHttpResponseAccessControlMaxAgeHeaderValue) { + return routingHttpResponseAccessControlMaxAgeHeaderValue(Output.of(routingHttpResponseAccessControlMaxAgeHeaderValue)); + } + + /** + * @param routingHttpResponseContentSecurityPolicyHeaderValue Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + * + * @return builder + * + */ + public Builder routingHttpResponseContentSecurityPolicyHeaderValue(@Nullable Output routingHttpResponseContentSecurityPolicyHeaderValue) { + $.routingHttpResponseContentSecurityPolicyHeaderValue = routingHttpResponseContentSecurityPolicyHeaderValue; + return this; + } + + /** + * @param routingHttpResponseContentSecurityPolicyHeaderValue Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + * + * @return builder + * + */ + public Builder routingHttpResponseContentSecurityPolicyHeaderValue(String routingHttpResponseContentSecurityPolicyHeaderValue) { + return routingHttpResponseContentSecurityPolicyHeaderValue(Output.of(routingHttpResponseContentSecurityPolicyHeaderValue)); + } + + /** + * @param routingHttpResponseServerEnabled Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + * + * @return builder + * + */ + public Builder routingHttpResponseServerEnabled(@Nullable Output routingHttpResponseServerEnabled) { + $.routingHttpResponseServerEnabled = routingHttpResponseServerEnabled; + return this; + } + + /** + * @param routingHttpResponseServerEnabled Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + * + * @return builder + * + */ + public Builder routingHttpResponseServerEnabled(Boolean routingHttpResponseServerEnabled) { + return routingHttpResponseServerEnabled(Output.of(routingHttpResponseServerEnabled)); + } + + /** + * @param routingHttpResponseStrictTransportSecurityHeaderValue Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + * + * @return builder + * + */ + public Builder routingHttpResponseStrictTransportSecurityHeaderValue(@Nullable Output routingHttpResponseStrictTransportSecurityHeaderValue) { + $.routingHttpResponseStrictTransportSecurityHeaderValue = routingHttpResponseStrictTransportSecurityHeaderValue; + return this; + } + + /** + * @param routingHttpResponseStrictTransportSecurityHeaderValue Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + * + * @return builder + * + */ + public Builder routingHttpResponseStrictTransportSecurityHeaderValue(String routingHttpResponseStrictTransportSecurityHeaderValue) { + return routingHttpResponseStrictTransportSecurityHeaderValue(Output.of(routingHttpResponseStrictTransportSecurityHeaderValue)); + } + + /** + * @param routingHttpResponseXContentTypeOptionsHeaderValue Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + * + * @return builder + * + */ + public Builder routingHttpResponseXContentTypeOptionsHeaderValue(@Nullable Output routingHttpResponseXContentTypeOptionsHeaderValue) { + $.routingHttpResponseXContentTypeOptionsHeaderValue = routingHttpResponseXContentTypeOptionsHeaderValue; + return this; + } + + /** + * @param routingHttpResponseXContentTypeOptionsHeaderValue Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + * + * @return builder + * + */ + public Builder routingHttpResponseXContentTypeOptionsHeaderValue(String routingHttpResponseXContentTypeOptionsHeaderValue) { + return routingHttpResponseXContentTypeOptionsHeaderValue(Output.of(routingHttpResponseXContentTypeOptionsHeaderValue)); + } + + /** + * @param routingHttpResponseXFrameOptionsHeaderValue Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. + * + * @return builder + * + */ + public Builder routingHttpResponseXFrameOptionsHeaderValue(@Nullable Output routingHttpResponseXFrameOptionsHeaderValue) { + $.routingHttpResponseXFrameOptionsHeaderValue = routingHttpResponseXFrameOptionsHeaderValue; + return this; + } + + /** + * @param routingHttpResponseXFrameOptionsHeaderValue Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. + * + * @return builder + * + */ + public Builder routingHttpResponseXFrameOptionsHeaderValue(String routingHttpResponseXFrameOptionsHeaderValue) { + return routingHttpResponseXFrameOptionsHeaderValue(Output.of(routingHttpResponseXFrameOptionsHeaderValue)); + } + /** * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * diff --git a/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/TargetGroupArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/TargetGroupArgs.java index 6172a5ff4..ab74e46c2 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/TargetGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/TargetGroupArgs.java @@ -261,7 +261,7 @@ * .minimumHealthyTargetsPercentage("off") * .build()) * .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder() - * .minimumHealthyTargetsCount("1") + * .minimumHealthyTargetsCount(1) * .minimumHealthyTargetsPercentage("off") * .build()) * .build()) @@ -516,6 +516,21 @@ public Optional> proxyProtocolV2() { return Optional.ofNullable(this.proxyProtocolV2); } + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + /** * Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. * @@ -674,6 +689,7 @@ private TargetGroupArgs(TargetGroupArgs $) { this.protocol = $.protocol; this.protocolVersion = $.protocolVersion; this.proxyProtocolV2 = $.proxyProtocolV2; + this.region = $.region; this.slowStart = $.slowStart; this.stickiness = $.stickiness; this.tags = $.tags; @@ -1023,6 +1039,27 @@ public Builder proxyProtocolV2(Boolean proxyProtocolV2) { return proxyProtocolV2(Output.of(proxyProtocolV2)); } + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + /** * @param slowStart Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. * diff --git a/sdk/nodejs/classic/apigateway/api.ts b/sdk/nodejs/classic/apigateway/api.ts index a391e095e..25085cd91 100644 --- a/sdk/nodejs/classic/apigateway/api.ts +++ b/sdk/nodejs/classic/apigateway/api.ts @@ -631,24 +631,16 @@ export function createAPI(parent: pulumi.Resource, name: string, args: APIArgs, const deployment = new aws.apigateway.Deployment(name, { ...args.deploymentArgs, restApi: restAPI, - // Note: Set to empty to avoid creating an implicit stage, we'll create it explicitly below instead. - stageName: "", - // Note: We set `variables` here because it forces recreation of the Deployment object - // whenever the body hash changes. Because we use a blank stage name above, there will - // not actually be any stage created in AWS, and thus these variables will not actually - // end up anywhere. But this will still cause the right replacement of the Deployment - // when needed. The Stage allocated below will be the stable stage that always points - // to the latest deployment of the API. - variables: { version }, + variables: { + version: version, + }, + description: args.deploymentArgs?.description, }, { parent, dependsOn: apiPolicy ? [apiPolicy] : [], }); - const permissions = createLambdaPermissions(parent, deployment, name, swaggerLambdas); - - // Expose the URL that the API is served at. - const url = pulumi.interpolate`${deployment.invokeUrl}${stageName}/`; + const permissions = createLambdaPermissions(parent, restAPI, name, swaggerLambdas); // Create a stage, which is an addressable instance of the Rest API. Set it to point at the latest deployment. const stage = new aws.apigateway.Stage(name, { @@ -658,6 +650,9 @@ export function createAPI(parent: pulumi.Resource, name: string, args: APIArgs, stageName: stageName, }, { parent, dependsOn: permissions }); + // Expose the URL that the API is served at. + const url = pulumi.interpolate`${stage.invokeUrl}${stageName}/`; + return { restAPI, deployment, @@ -669,7 +664,7 @@ export function createAPI(parent: pulumi.Resource, name: string, args: APIArgs, }; } -function createLambdaPermissions(parent: pulumi.Resource, deployment: aws.apigateway.Deployment, name: string, swaggerLambdas: SwaggerLambdas) { +function createLambdaPermissions(parent: pulumi.Resource, restAPI: aws.apigateway.RestApi, name: string, swaggerLambdas: SwaggerLambdas) { const permissions: aws.lambda.Permission[] = []; for (const [path, lambdas] of swaggerLambdas) { for (const [method, lambda] of lambdas) { @@ -683,7 +678,7 @@ function createLambdaPermissions(parent: pulumi.Resource, deployment: aws.apigat // path on the API. We allow any stage instead of encoding the one known stage that will be // deployed by Pulumi because the API Gateway console "Test" feature invokes the route // handler with the fake stage `test-invoke-stage`. - sourceArn: pulumi.interpolate`${deployment.executionArn}*/${methodAndPath}`, + sourceArn: pulumi.interpolate`${restAPI.executionArn}*/${methodAndPath}`, }, { parent })); } } @@ -1084,7 +1079,7 @@ function addStaticRouteToSwaggerSpec( }, { parent }); const attachment = new aws.iam.RolePolicyAttachment(key, { role: role, - policyArn: aws.iam.ManagedPolicies.AmazonS3FullAccess, + policyArn: aws.iam.ManagedPolicy.AmazonS3FullAccess, }, { parent }); return role; diff --git a/sdk/nodejs/classic/autoscaling/launchConfiguration.ts b/sdk/nodejs/classic/autoscaling/launchConfiguration.ts index b8cbc7c5a..82dba1908 100644 --- a/sdk/nodejs/classic/autoscaling/launchConfiguration.ts +++ b/sdk/nodejs/classic/autoscaling/launchConfiguration.ts @@ -82,7 +82,7 @@ export class AutoScalingLaunchConfiguration extends pulumi.ComponentResource { } public static defaultInstanceProfilePolicyARNs() { - return [aws.iam.ManagedPolicies.AmazonEC2ContainerServiceforEC2Role, aws.iam.ManagedPolicies.AmazonEC2ReadOnlyAccess]; + return [aws.iam.ManagedPolicy.AmazonEC2ContainerServiceforEC2Role, aws.iam.ManagedPolicy.AmazonEC2ReadOnlyAccess]; } /** diff --git a/sdk/nodejs/classic/ecs/image.ts b/sdk/nodejs/classic/ecs/image.ts index e487cd439..4661a34c9 100644 --- a/sdk/nodejs/classic/ecs/image.ts +++ b/sdk/nodejs/classic/ecs/image.ts @@ -194,12 +194,9 @@ export function computeImageFromAsset( throw new Error("Expected registry ID to be defined during push"); } - const credentials = await aws.ecr.getCredentials({ registryId: registryId }, { parent, async: true }); - const decodedCredentials = Buffer.from(credentials.authorizationToken, "base64").toString(); - const [username, password] = decodedCredentials.split(":"); - if (!password || !username) { - throw new Error("Invalid credentials"); - } + const credentials = await aws.ecr.getAuthorizationToken({ registryId: registryId }, { parent, async: true }); + const username = credentials.userName; + const password = credentials.password; return { registry: credentials.proxyEndpoint, username: username, diff --git a/sdk/nodejs/classic/ecs/taskDefinition.ts b/sdk/nodejs/classic/ecs/taskDefinition.ts index 409a0444e..7572d694c 100644 --- a/sdk/nodejs/classic/ecs/taskDefinition.ts +++ b/sdk/nodejs/classic/ecs/taskDefinition.ts @@ -158,7 +158,7 @@ export abstract class TaskDefinition extends pulumi.ComponentResource { public static defaultExecutionRolePolicyARNs() { return [ "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy", - aws.iam.ManagedPolicies.AWSLambdaBasicExecutionRole, + aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole, ]; } } @@ -337,11 +337,6 @@ export interface TaskDefinitionArgs { */ family?: pulumi.Input; - /** - * Configuration block(s) with Inference Accelerators settings. Detailed below. - */ - inferenceAccelerators?: pulumi.Input[]>; - /** * The IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. */ diff --git a/sdk/nodejs/cloudtrail/trail.ts b/sdk/nodejs/cloudtrail/trail.ts index f6e34ec67..112714805 100644 --- a/sdk/nodejs/cloudtrail/trail.ts +++ b/sdk/nodejs/cloudtrail/trail.ts @@ -59,6 +59,7 @@ export class Trail extends pulumi.ComponentResource { resourceInputs["isOrganizationTrail"] = args ? args.isOrganizationTrail : undefined; resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["region"] = args ? args.region : undefined; resourceInputs["s3Bucket"] = args ? args.s3Bucket : undefined; resourceInputs["s3KeyPrefix"] = args ? args.s3KeyPrefix : undefined; resourceInputs["snsTopicName"] = args ? args.snsTopicName : undefined; @@ -124,6 +125,10 @@ export interface TrailArgs { * Name of the trail. */ name?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * S3 bucket designated for publishing log files. */ @@ -133,7 +138,7 @@ export interface TrailArgs { */ s3KeyPrefix?: pulumi.Input; /** - * Name of the Amazon SNS topic defined for notification of log file delivery. + * Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. */ snsTopicName?: pulumi.Input; /** diff --git a/sdk/nodejs/ec2/vpc.ts b/sdk/nodejs/ec2/vpc.ts index de1d8ea67..424be6726 100644 --- a/sdk/nodejs/ec2/vpc.ts +++ b/sdk/nodejs/ec2/vpc.ts @@ -137,6 +137,7 @@ export class Vpc extends pulumi.ComponentResource { resourceInputs["ipv6NetmaskLength"] = args ? args.ipv6NetmaskLength : undefined; resourceInputs["natGateways"] = args ? args.natGateways : undefined; resourceInputs["numberOfAvailabilityZones"] = args ? args.numberOfAvailabilityZones : undefined; + resourceInputs["region"] = args ? args.region : undefined; resourceInputs["subnetSpecs"] = args ? args.subnetSpecs : undefined; resourceInputs["subnetStrategy"] = args ? args.subnetStrategy : undefined; resourceInputs["tags"] = args ? args.tags : undefined; @@ -243,6 +244,10 @@ export interface VpcArgs { * A number of availability zones to which the subnets defined in subnetSpecs will be deployed. Optional, defaults to the first 3 AZs in the current region. */ numberOfAvailabilityZones?: number; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * A list of subnet specs that should be deployed to each AZ specified in availabilityZoneNames. Optional. Defaults to a (smaller) public subnet and a (larger) private subnet based on the size of the CIDR block for the VPC. Private subnets are allocated CIDR block ranges first, followed by Public subnets, and Isolated subnets are allocated last. */ diff --git a/sdk/nodejs/ecr/repository.ts b/sdk/nodejs/ecr/repository.ts index 8520e4803..9ec4481d2 100644 --- a/sdk/nodejs/ecr/repository.ts +++ b/sdk/nodejs/ecr/repository.ts @@ -59,6 +59,7 @@ export class Repository extends pulumi.ComponentResource { resourceInputs["imageTagMutability"] = args ? args.imageTagMutability : undefined; resourceInputs["lifecyclePolicy"] = args ? args.lifecyclePolicy : undefined; resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["region"] = args ? args.region : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["repository"] = undefined /*out*/; resourceInputs["url"] = undefined /*out*/; @@ -101,6 +102,10 @@ export interface RepositoryArgs { * Name of the repository. */ name?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * 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/nodejs/ecs/ec2service.ts b/sdk/nodejs/ecs/ec2service.ts index 93f0e7c12..6ac7a4633 100644 --- a/sdk/nodejs/ecs/ec2service.ts +++ b/sdk/nodejs/ecs/ec2service.ts @@ -71,6 +71,7 @@ export class EC2Service extends pulumi.ComponentResource { resourceInputs["placementConstraints"] = args ? args.placementConstraints : undefined; resourceInputs["platformVersion"] = args ? args.platformVersion : undefined; resourceInputs["propagateTags"] = args ? args.propagateTags : undefined; + resourceInputs["region"] = args ? args.region : undefined; resourceInputs["schedulingStrategy"] = args ? args.schedulingStrategy : undefined; resourceInputs["serviceConnectConfiguration"] = args ? args.serviceConnectConfiguration : undefined; resourceInputs["serviceRegistries"] = args ? args.serviceRegistries : undefined; @@ -189,6 +190,10 @@ export interface EC2ServiceArgs { * Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. */ propagateTags?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). */ diff --git a/sdk/nodejs/ecs/ec2taskDefinition.ts b/sdk/nodejs/ecs/ec2taskDefinition.ts index 25c842e13..23bef994d 100644 --- a/sdk/nodejs/ecs/ec2taskDefinition.ts +++ b/sdk/nodejs/ecs/ec2taskDefinition.ts @@ -64,10 +64,10 @@ export class EC2TaskDefinition extends pulumi.ComponentResource { resourceInputs["container"] = args ? args.container : undefined; resourceInputs["containers"] = args ? args.containers : undefined; resourceInputs["cpu"] = args ? args.cpu : undefined; + resourceInputs["enableFaultInjection"] = args ? args.enableFaultInjection : undefined; resourceInputs["ephemeralStorage"] = args ? args.ephemeralStorage : undefined; resourceInputs["executionRole"] = args ? args.executionRole : undefined; resourceInputs["family"] = args ? args.family : undefined; - resourceInputs["inferenceAccelerators"] = args ? args.inferenceAccelerators : undefined; resourceInputs["ipcMode"] = args ? args.ipcMode : undefined; resourceInputs["logGroup"] = args ? args.logGroup : undefined; resourceInputs["memory"] = args ? args.memory : undefined; @@ -75,6 +75,7 @@ export class EC2TaskDefinition extends pulumi.ComponentResource { resourceInputs["pidMode"] = args ? args.pidMode : undefined; resourceInputs["placementConstraints"] = args ? args.placementConstraints : undefined; resourceInputs["proxyConfiguration"] = args ? args.proxyConfiguration : undefined; + resourceInputs["region"] = args ? args.region : undefined; resourceInputs["runtimePlatform"] = args ? args.runtimePlatform : undefined; resourceInputs["skipDestroy"] = args ? args.skipDestroy : undefined; resourceInputs["tags"] = args ? args.tags : undefined; @@ -117,6 +118,10 @@ export interface EC2TaskDefinitionArgs { * The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] */ cpu?: pulumi.Input; + /** + * Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + */ + enableFaultInjection?: pulumi.Input; /** * The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. */ @@ -130,10 +135,6 @@ export interface EC2TaskDefinitionArgs { * An optional unique name for your task definition. If not specified, then a default will be created. */ family?: pulumi.Input; - /** - * Configuration block(s) with Inference Accelerators settings. Detailed below. - */ - inferenceAccelerators?: pulumi.Input[]>; /** * IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. */ @@ -163,6 +164,10 @@ export interface EC2TaskDefinitionArgs { * Configuration block for the App Mesh proxy. Detailed below. */ proxyConfiguration?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * Configuration block for runtime_platform that containers in your task may use. */ @@ -186,6 +191,10 @@ export interface EC2TaskDefinitionArgs { trackLatest?: pulumi.Input; /** * Configuration block for volumes that containers in your task may use. Detailed below. + * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. */ volumes?: pulumi.Input[]>; } diff --git a/sdk/nodejs/ecs/fargateService.ts b/sdk/nodejs/ecs/fargateService.ts index 73eab8ad1..a59c82485 100644 --- a/sdk/nodejs/ecs/fargateService.ts +++ b/sdk/nodejs/ecs/fargateService.ts @@ -70,6 +70,7 @@ export class FargateService extends pulumi.ComponentResource { resourceInputs["placementConstraints"] = args ? args.placementConstraints : undefined; resourceInputs["platformVersion"] = args ? args.platformVersion : undefined; resourceInputs["propagateTags"] = args ? args.propagateTags : undefined; + resourceInputs["region"] = args ? args.region : undefined; resourceInputs["schedulingStrategy"] = args ? args.schedulingStrategy : undefined; resourceInputs["serviceConnectConfiguration"] = args ? args.serviceConnectConfiguration : undefined; resourceInputs["serviceRegistries"] = args ? args.serviceRegistries : undefined; @@ -184,6 +185,10 @@ export interface FargateServiceArgs { * Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. */ propagateTags?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). */ diff --git a/sdk/nodejs/ecs/fargateTaskDefinition.ts b/sdk/nodejs/ecs/fargateTaskDefinition.ts index afbc14f26..26f3144b5 100644 --- a/sdk/nodejs/ecs/fargateTaskDefinition.ts +++ b/sdk/nodejs/ecs/fargateTaskDefinition.ts @@ -64,16 +64,17 @@ export class FargateTaskDefinition extends pulumi.ComponentResource { resourceInputs["container"] = args ? args.container : undefined; resourceInputs["containers"] = args ? args.containers : undefined; resourceInputs["cpu"] = args ? args.cpu : undefined; + resourceInputs["enableFaultInjection"] = args ? args.enableFaultInjection : undefined; resourceInputs["ephemeralStorage"] = args ? args.ephemeralStorage : undefined; resourceInputs["executionRole"] = args ? args.executionRole : undefined; resourceInputs["family"] = args ? args.family : undefined; - resourceInputs["inferenceAccelerators"] = args ? args.inferenceAccelerators : undefined; resourceInputs["ipcMode"] = args ? args.ipcMode : undefined; resourceInputs["logGroup"] = args ? args.logGroup : undefined; resourceInputs["memory"] = args ? args.memory : undefined; resourceInputs["pidMode"] = args ? args.pidMode : undefined; resourceInputs["placementConstraints"] = args ? args.placementConstraints : undefined; resourceInputs["proxyConfiguration"] = args ? args.proxyConfiguration : undefined; + resourceInputs["region"] = args ? args.region : undefined; resourceInputs["runtimePlatform"] = args ? args.runtimePlatform : undefined; resourceInputs["skipDestroy"] = args ? args.skipDestroy : undefined; resourceInputs["tags"] = args ? args.tags : undefined; @@ -116,6 +117,10 @@ export interface FargateTaskDefinitionArgs { * The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] */ cpu?: pulumi.Input; + /** + * Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + */ + enableFaultInjection?: pulumi.Input; /** * The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. */ @@ -129,10 +134,6 @@ export interface FargateTaskDefinitionArgs { * An optional unique name for your task definition. If not specified, then a default will be created. */ family?: pulumi.Input; - /** - * Configuration block(s) with Inference Accelerators settings. Detailed below. - */ - inferenceAccelerators?: pulumi.Input[]>; /** * IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. */ @@ -158,6 +159,10 @@ export interface FargateTaskDefinitionArgs { * Configuration block for the App Mesh proxy. Detailed below. */ proxyConfiguration?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * Configuration block for runtime_platform that containers in your task may use. */ @@ -181,6 +186,10 @@ export interface FargateTaskDefinitionArgs { trackLatest?: pulumi.Input; /** * Configuration block for volumes that containers in your task may use. Detailed below. + * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. */ volumes?: pulumi.Input[]>; } diff --git a/sdk/nodejs/go.sum b/sdk/nodejs/go.sum deleted file mode 100644 index e69de29bb..000000000 diff --git a/sdk/nodejs/lb/applicationLoadBalancer.ts b/sdk/nodejs/lb/applicationLoadBalancer.ts index 987ac8939..c02e60d32 100644 --- a/sdk/nodejs/lb/applicationLoadBalancer.ts +++ b/sdk/nodejs/lb/applicationLoadBalancer.ts @@ -79,11 +79,14 @@ export class ApplicationLoadBalancer extends pulumi.ComponentResource { resourceInputs["idleTimeout"] = args ? args.idleTimeout : undefined; resourceInputs["internal"] = args ? args.internal : undefined; resourceInputs["ipAddressType"] = args ? args.ipAddressType : undefined; + resourceInputs["ipamPools"] = args ? args.ipamPools : undefined; resourceInputs["listener"] = args ? args.listener : undefined; resourceInputs["listeners"] = args ? args.listeners : undefined; + resourceInputs["minimumLoadBalancerCapacity"] = args ? args.minimumLoadBalancerCapacity : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["namePrefix"] = args ? args.namePrefix : undefined; resourceInputs["preserveHostHeader"] = args ? args.preserveHostHeader : undefined; + resourceInputs["region"] = args ? args.region : undefined; resourceInputs["securityGroups"] = args ? args.securityGroups : undefined; resourceInputs["subnetIds"] = args ? args.subnetIds : undefined; resourceInputs["subnetMappings"] = args ? args.subnetMappings : undefined; @@ -188,6 +191,10 @@ export interface ApplicationLoadBalancerArgs { * 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). */ ipAddressType?: pulumi.Input; + /** + * . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + */ + ipamPools?: pulumi.Input; /** * A listener to create. Only one of [listener] and [listeners] can be specified. */ @@ -196,6 +203,10 @@ export interface ApplicationLoadBalancerArgs { * List of listeners to create. Only one of [listener] and [listeners] can be specified. */ listeners?: inputs.lb.ListenerArgs[]; + /** + * Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + */ + minimumLoadBalancerCapacity?: pulumi.Input; /** * 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`. */ @@ -208,6 +219,10 @@ export interface ApplicationLoadBalancerArgs { * 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`. */ preserveHostHeader?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * 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. */ @@ -230,6 +245,10 @@ export interface ApplicationLoadBalancerArgs { tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * 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`. + * + * > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + * + * > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. */ xffHeaderProcessingMode?: pulumi.Input; } diff --git a/sdk/nodejs/lb/networkLoadBalancer.ts b/sdk/nodejs/lb/networkLoadBalancer.ts index 352ea8576..222a0a9d0 100644 --- a/sdk/nodejs/lb/networkLoadBalancer.ts +++ b/sdk/nodejs/lb/networkLoadBalancer.ts @@ -74,11 +74,14 @@ export class NetworkLoadBalancer extends pulumi.ComponentResource { resourceInputs["idleTimeout"] = args ? args.idleTimeout : undefined; resourceInputs["internal"] = args ? args.internal : undefined; resourceInputs["ipAddressType"] = args ? args.ipAddressType : undefined; + resourceInputs["ipamPools"] = args ? args.ipamPools : undefined; resourceInputs["listener"] = args ? args.listener : undefined; resourceInputs["listeners"] = args ? args.listeners : undefined; + resourceInputs["minimumLoadBalancerCapacity"] = args ? args.minimumLoadBalancerCapacity : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["namePrefix"] = args ? args.namePrefix : undefined; resourceInputs["preserveHostHeader"] = args ? args.preserveHostHeader : undefined; + resourceInputs["region"] = args ? args.region : undefined; resourceInputs["securityGroups"] = args ? args.securityGroups : undefined; resourceInputs["subnetIds"] = args ? args.subnetIds : undefined; resourceInputs["subnetMappings"] = args ? args.subnetMappings : undefined; @@ -178,6 +181,10 @@ export interface NetworkLoadBalancerArgs { * 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). */ ipAddressType?: pulumi.Input; + /** + * . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + */ + ipamPools?: pulumi.Input; /** * A listener to create. Only one of [listener] and [listeners] can be specified. */ @@ -186,6 +193,10 @@ export interface NetworkLoadBalancerArgs { * List of listeners to create. Only one of [listener] and [listeners] can be specified. */ listeners?: inputs.lb.ListenerArgs[]; + /** + * Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + */ + minimumLoadBalancerCapacity?: pulumi.Input; /** * 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`. */ @@ -198,6 +209,10 @@ export interface NetworkLoadBalancerArgs { * 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`. */ preserveHostHeader?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * 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. */ @@ -220,6 +235,10 @@ export interface NetworkLoadBalancerArgs { tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * 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`. + * + * > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + * + * > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. */ xffHeaderProcessingMode?: pulumi.Input; } diff --git a/sdk/nodejs/package.json b/sdk/nodejs/package.json index 6e2ead538..4c2dbb45d 100644 --- a/sdk/nodejs/package.json +++ b/sdk/nodejs/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "@aws-sdk/client-ecs": "^3.405.0", - "@pulumi/aws": "^6.66.3", + "@pulumi/aws": "7.0.0-alpha.2", "@pulumi/docker": "^4.6.0", "@pulumi/docker-build": "^0.0.8", "@pulumi/pulumi": "^3.142.0", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index f931ebea4..66402cce9 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -15,19 +15,18 @@ export namespace awsx { */ export interface BucketArgs { /** - * Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + * Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketAccelerateConfiguration` instead. + * + * @deprecated acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead. */ accelerationStatus?: pulumi.Input; /** - * The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + * The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. */ acl?: pulumi.Input; /** - * The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. - */ - arn?: pulumi.Input; - /** - * The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + * Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. */ bucket?: pulumi.Input; /** @@ -35,74 +34,101 @@ export namespace awsx { */ bucketPrefix?: pulumi.Input; /** - * A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + * Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. + * + * @deprecated cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead. */ corsRules?: pulumi.Input[]>; /** - * A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + * Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. */ forceDestroy?: pulumi.Input; /** - * An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + * An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. + * + * @deprecated grant is deprecated. Use the aws.s3.BucketAcl resource instead. */ grants?: pulumi.Input[]>; /** - * The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. - */ - hostedZoneId?: pulumi.Input; - /** - * A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + * Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLifecycleConfiguration` instead. + * + * @deprecated lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead. */ lifecycleRules?: pulumi.Input[]>; /** - * A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + * Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketLogging` instead. + * + * @deprecated logging is deprecated. Use the aws.s3.BucketLogging resource instead. */ - loggings?: pulumi.Input[]>; + logging?: pulumi.Input; /** - * A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + * Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + * The provider wil only perform drift detection if a configuration value is provided. + * Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. * - * > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` + * @deprecated object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead. */ objectLockConfiguration?: pulumi.Input; /** - * A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + * Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + */ + objectLockEnabled?: pulumi.Input; + /** + * Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketPolicy` instead. */ policy?: pulumi.Input; /** - * A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; + /** + * Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketReplicationConfig` instead. + * + * @deprecated replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead. */ replicationConfiguration?: pulumi.Input; /** * Specifies who should bear the cost of Amazon S3 data transfer. - * Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - * the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - * developer guide for more information. + * Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + * See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. + * + * @deprecated request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead. */ requestPayer?: pulumi.Input; /** - * A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + * Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + * The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. + * + * @deprecated server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead. */ serverSideEncryptionConfiguration?: pulumi.Input; /** - * A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * The following arguments are deprecated, and will be removed in a future major version: */ tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + * Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. + * + * @deprecated versioning is deprecated. Use the aws.s3.BucketVersioning resource instead. */ versioning?: pulumi.Input; /** - * A website object (documented below). + * Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + * Use the resource `aws.s3.BucketWebsiteConfiguration` instead. + * + * @deprecated website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead. */ website?: pulumi.Input; - /** - * The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - */ - websiteDomain?: pulumi.Input; - /** - * The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. - */ - websiteEndpoint?: pulumi.Input; } /** @@ -222,6 +248,10 @@ export namespace awsx { * Creates a unique name beginning with the specified prefix. Conflicts with `name`. */ namePrefix?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * Specifies the number of days * you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. @@ -344,6 +374,10 @@ export namespace awsx { * Creates a unique name beginning with the specified prefix. Conflicts with `name`. */ namePrefix?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. */ @@ -469,7 +503,7 @@ export namespace ec2 { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -575,7 +609,7 @@ export namespace ec2 { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -689,7 +723,7 @@ export namespace ec2 { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -846,7 +880,7 @@ export namespace ec2 { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -1015,8 +1049,8 @@ export namespace ec2 { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -1078,11 +1112,12 @@ export namespace ec2 { * } * * public static void stack(Context ctx) { - * final var current = AwsFunctions.getCallerIdentity(); + * final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() + * .build()); * * var example = new VpcEndpointService("example", VpcEndpointServiceArgs.builder() * .acceptanceRequired(false) - * .allowedPrincipals(current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.arn())) + * .allowedPrincipals(current.arn()) * .gatewayLoadBalancerArns(exampleAwsLb.arn()) * .build()); * @@ -1123,6 +1158,234 @@ export namespace ec2 { * ``` * * + * ### VPC Lattice Resource Configuration Endpoint Type + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.ec2.VpcEndpoint("example", { + * resourceConfigurationArn: exampleAwsVpclatticeResourceConfiguration.arn, + * subnetIds: [exampleAwsSubnet.id], + * vpcEndpointType: "Resource", + * vpcId: exampleAwsVpc.id, + * }); + * ``` + * ```python + * import pulumi + * import pulumi_aws as aws + * + * example = aws.ec2.VpcEndpoint("example", + * resource_configuration_arn=example_aws_vpclattice_resource_configuration["arn"], + * subnet_ids=[example_aws_subnet["id"]], + * vpc_endpoint_type="Resource", + * vpc_id=example_aws_vpc["id"]) + * ``` + * ```csharp + * using System.Collections.Generic; + * using System.Linq; + * using Pulumi; + * using Aws = Pulumi.Aws; + * + * return await Deployment.RunAsync(() => + * { + * var example = new Aws.Ec2.VpcEndpoint("example", new() + * { + * ResourceConfigurationArn = exampleAwsVpclatticeResourceConfiguration.Arn, + * SubnetIds = new[] + * { + * exampleAwsSubnet.Id, + * }, + * VpcEndpointType = "Resource", + * VpcId = exampleAwsVpc.Id, + * }); + * + * }); + * ``` + * ```go + * package main + * + * import ( + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + * ) + * + * func main() { + * pulumi.Run(func(ctx *pulumi.Context) error { + * _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ + * ResourceConfigurationArn: pulumi.Any(exampleAwsVpclatticeResourceConfiguration.Arn), + * SubnetIds: pulumi.StringArray{ + * exampleAwsSubnet.Id, + * }, + * VpcEndpointType: pulumi.String("Resource"), + * VpcId: pulumi.Any(exampleAwsVpc.Id), + * }) + * if err != nil { + * return err + * } + * return nil + * }) + * } + * ``` + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.ec2.VpcEndpoint; + * import com.pulumi.aws.ec2.VpcEndpointArgs; + * 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 VpcEndpoint("example", VpcEndpointArgs.builder() + * .resourceConfigurationArn(exampleAwsVpclatticeResourceConfiguration.arn()) + * .subnetIds(exampleAwsSubnet.id()) + * .vpcEndpointType("Resource") + * .vpcId(exampleAwsVpc.id()) + * .build()); + * + * } + * } + * ``` + * ```yaml + * resources: + * example: + * type: aws:ec2:VpcEndpoint + * properties: + * resourceConfigurationArn: ${exampleAwsVpclatticeResourceConfiguration.arn} + * subnetIds: + * - ${exampleAwsSubnet.id} + * vpcEndpointType: Resource + * vpcId: ${exampleAwsVpc.id} + * ``` + * + * + * ### VPC Lattice Service Network Endpoint Type + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.ec2.VpcEndpoint("example", { + * serviceNetworkArn: exampleAwsVpclatticeServiceNetwork.arn, + * subnetIds: [exampleAwsSubnet.id], + * vpcEndpointType: "ServiceNetwork", + * vpcId: exampleAwsVpc.id, + * }); + * ``` + * ```python + * import pulumi + * import pulumi_aws as aws + * + * example = aws.ec2.VpcEndpoint("example", + * service_network_arn=example_aws_vpclattice_service_network["arn"], + * subnet_ids=[example_aws_subnet["id"]], + * vpc_endpoint_type="ServiceNetwork", + * vpc_id=example_aws_vpc["id"]) + * ``` + * ```csharp + * using System.Collections.Generic; + * using System.Linq; + * using Pulumi; + * using Aws = Pulumi.Aws; + * + * return await Deployment.RunAsync(() => + * { + * var example = new Aws.Ec2.VpcEndpoint("example", new() + * { + * ServiceNetworkArn = exampleAwsVpclatticeServiceNetwork.Arn, + * SubnetIds = new[] + * { + * exampleAwsSubnet.Id, + * }, + * VpcEndpointType = "ServiceNetwork", + * VpcId = exampleAwsVpc.Id, + * }); + * + * }); + * ``` + * ```go + * package main + * + * import ( + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + * ) + * + * func main() { + * pulumi.Run(func(ctx *pulumi.Context) error { + * _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ + * ServiceNetworkArn: pulumi.Any(exampleAwsVpclatticeServiceNetwork.Arn), + * SubnetIds: pulumi.StringArray{ + * exampleAwsSubnet.Id, + * }, + * VpcEndpointType: pulumi.String("ServiceNetwork"), + * VpcId: pulumi.Any(exampleAwsVpc.Id), + * }) + * if err != nil { + * return err + * } + * return nil + * }) + * } + * ``` + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.ec2.VpcEndpoint; + * import com.pulumi.aws.ec2.VpcEndpointArgs; + * 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 VpcEndpoint("example", VpcEndpointArgs.builder() + * .serviceNetworkArn(exampleAwsVpclatticeServiceNetwork.arn()) + * .subnetIds(exampleAwsSubnet.id()) + * .vpcEndpointType("ServiceNetwork") + * .vpcId(exampleAwsVpc.id()) + * .build()); + * + * } + * } + * ``` + * ```yaml + * resources: + * example: + * type: aws:ec2:VpcEndpoint + * properties: + * serviceNetworkArn: ${exampleAwsVpclatticeServiceNetwork.arn} + * subnetIds: + * - ${exampleAwsSubnet.id} + * vpcEndpointType: ServiceNetwork + * vpcId: ${exampleAwsVpc.id} + * ``` + * + * * ## Import * * Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example: @@ -1152,6 +1415,14 @@ export namespace ec2 { * Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. Defaults to `false`. */ privateDnsEnabled?: boolean; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; + /** + * The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + */ + resourceConfigurationArn?: pulumi.Input; /** * One or more route table IDs. Applicable for endpoints of type `Gateway`. */ @@ -1165,6 +1436,10 @@ export namespace ec2 { * The service name. For AWS services the service name is usually in the form `com.amazonaws..` (the SageMaker Notebook service is an exception to this rule, the service name is in the form `aws.sagemaker..notebook`). */ serviceName: string; + /** + * The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + */ + serviceNetworkArn?: pulumi.Input; /** * The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. */ @@ -1182,7 +1457,7 @@ export namespace ec2 { */ tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + * The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. */ vpcEndpointType?: pulumi.Input; } @@ -1255,6 +1530,10 @@ export namespace ecs { * The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] */ cpu?: pulumi.Input; + /** + * Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + */ + enableFaultInjection?: pulumi.Input; /** * The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. */ @@ -1268,10 +1547,6 @@ export namespace ecs { * An optional unique name for your task definition. If not specified, then a default will be created. */ family?: pulumi.Input; - /** - * Configuration block(s) with Inference Accelerators settings. Detailed below. - */ - inferenceAccelerators?: pulumi.Input[]>; /** * IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. */ @@ -1301,6 +1576,10 @@ export namespace ecs { * Configuration block for the App Mesh proxy. Detailed below. */ proxyConfiguration?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * Configuration block for runtime_platform that containers in your task may use. */ @@ -1324,6 +1603,10 @@ export namespace ecs { trackLatest?: pulumi.Input; /** * Configuration block for volumes that containers in your task may use. Detailed below. + * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. */ volumes?: pulumi.Input[]>; } @@ -1352,6 +1635,10 @@ export namespace ecs { * The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] */ cpu?: pulumi.Input; + /** + * Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + */ + enableFaultInjection?: pulumi.Input; /** * The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. */ @@ -1365,10 +1652,6 @@ export namespace ecs { * An optional unique name for your task definition. If not specified, then a default will be created. */ family?: pulumi.Input; - /** - * Configuration block(s) with Inference Accelerators settings. Detailed below. - */ - inferenceAccelerators?: pulumi.Input[]>; /** * IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. */ @@ -1394,6 +1677,10 @@ export namespace ecs { * Configuration block for the App Mesh proxy. Detailed below. */ proxyConfiguration?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * Configuration block for runtime_platform that containers in your task may use. */ @@ -1417,6 +1704,10 @@ export namespace ecs { trackLatest?: pulumi.Input; /** * Configuration block for volumes that containers in your task may use. Detailed below. + * + * > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\"` in the JSON, e.g., `"value": "I \"love\" escaped quotes"`. If using a variable value, they should be escaped as `\\\"` in the variable, e.g., `value = "I \\\"love\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + * + * > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. */ volumes?: pulumi.Input[]>; } @@ -1696,7 +1987,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -1760,7 +2051,7 @@ export namespace lb { * * var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() * .loadBalancerArn(frontEnd.arn()) - * .port("443") + * .port(443) * .protocol("HTTPS") * .sslPolicy("ELBSecurityPolicy-2016-08") * .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") @@ -1864,7 +2155,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -1915,7 +2206,7 @@ export namespace lb { * public static void stack(Context ctx) { * var frontEnd = new Listener("frontEnd", ListenerArgs.builder() * .loadBalancerArn(frontEndAwsLb.arn()) - * .port("443") + * .port(443) * .protocol("TLS") * .sslPolicy("ELBSecurityPolicy-2016-08") * .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") @@ -2023,7 +2314,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -2083,7 +2374,7 @@ export namespace lb { * * var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() * .loadBalancerArn(frontEnd.arn()) - * .port("80") + * .port(80) * .protocol("HTTP") * .defaultActions(ListenerDefaultActionArgs.builder() * .type("redirect") @@ -2195,7 +2486,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -2255,7 +2546,7 @@ export namespace lb { * * var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() * .loadBalancerArn(frontEnd.arn()) - * .port("80") + * .port(80) * .protocol("HTTP") * .defaultActions(ListenerDefaultActionArgs.builder() * .type("fixed-response") @@ -2400,8 +2691,8 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito" - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cognito" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -2493,7 +2784,7 @@ export namespace lb { * * var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() * .loadBalancerArn(frontEnd.arn()) - * .port("80") + * .port(80) * .protocol("HTTP") * .defaultActions( * ListenerDefaultActionArgs.builder() @@ -2651,7 +2942,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -2725,7 +3016,7 @@ export namespace lb { * * var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() * .loadBalancerArn(frontEnd.arn()) - * .port("80") + * .port(80) * .protocol("HTTP") * .defaultActions( * ListenerDefaultActionArgs.builder() @@ -2888,7 +3179,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -2977,7 +3268,7 @@ export namespace lb { * .protocol("GENEVE") * .vpcId(exampleAwsVpc.id()) * .healthCheck(TargetGroupHealthCheckArgs.builder() - * .port(80) + * .port("80") * .protocol("HTTP") * .build()) * .build()); @@ -3101,7 +3392,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -3240,6 +3531,86 @@ export namespace lb { * 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. */ protocol?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + */ + routingHttpRequestXAmznMtlsClientcertHeaderName?: pulumi.Input; + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + */ + routingHttpRequestXAmznMtlsClientcertIssuerHeaderName?: pulumi.Input; + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + */ + routingHttpRequestXAmznMtlsClientcertLeafHeaderName?: pulumi.Input; + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + */ + routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName?: pulumi.Input; + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + */ + routingHttpRequestXAmznMtlsClientcertSubjectHeaderName?: pulumi.Input; + /** + * Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + */ + routingHttpRequestXAmznMtlsClientcertValidityHeaderName?: pulumi.Input; + /** + * Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + */ + routingHttpRequestXAmznTlsCipherSuiteHeaderName?: pulumi.Input; + /** + * Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + */ + routingHttpRequestXAmznTlsVersionHeaderName?: pulumi.Input; + /** + * Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + */ + routingHttpResponseAccessControlAllowCredentialsHeaderValue?: pulumi.Input; + /** + * Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + */ + routingHttpResponseAccessControlAllowHeadersHeaderValue?: pulumi.Input; + /** + * Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + */ + routingHttpResponseAccessControlAllowMethodsHeaderValue?: pulumi.Input; + /** + * Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + */ + routingHttpResponseAccessControlAllowOriginHeaderValue?: pulumi.Input; + /** + * Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + */ + routingHttpResponseAccessControlExposeHeadersHeaderValue?: pulumi.Input; + /** + * Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + */ + routingHttpResponseAccessControlMaxAgeHeaderValue?: pulumi.Input; + /** + * Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + */ + routingHttpResponseContentSecurityPolicyHeaderValue?: pulumi.Input; + /** + * Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + */ + routingHttpResponseServerEnabled?: pulumi.Input; + /** + * Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + */ + routingHttpResponseStrictTransportSecurityHeaderValue?: pulumi.Input; + /** + * Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + */ + routingHttpResponseXContentTypeOptionsHeaderValue?: pulumi.Input; + /** + * Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. + */ + routingHttpResponseXFrameOptionsHeaderValue?: pulumi.Input; /** * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. */ @@ -3316,8 +3687,8 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -3451,8 +3822,8 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -3573,7 +3944,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -3678,7 +4049,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -3802,7 +4173,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -3954,7 +4325,7 @@ export namespace lb { * package main * * import ( - * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" * ) * @@ -4018,7 +4389,7 @@ export namespace lb { * .minimumHealthyTargetsPercentage("off") * .build()) * .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder() - * .minimumHealthyTargetsCount("1") + * .minimumHealthyTargetsCount(1) * .minimumHealthyTargetsPercentage("off") * .build()) * .build()) @@ -4118,6 +4489,10 @@ export namespace lb { * Whether to enable support for proxy protocol v2 on Network Load Balancers. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol) for more information. Default is `false`. */ proxyProtocolV2?: pulumi.Input; + /** + * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + */ + region?: pulumi.Input; /** * Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. */ diff --git a/sdk/python/go.sum b/sdk/python/go.sum deleted file mode 100644 index e69de29bb..000000000 diff --git a/sdk/python/pulumi_awsx/awsx/_inputs.py b/sdk/python/pulumi_awsx/awsx/_inputs.py index 25a83bf7a..0503af719 100644 --- a/sdk/python/pulumi_awsx/awsx/_inputs.py +++ b/sdk/python/pulumi_awsx/awsx/_inputs.py @@ -50,19 +50,16 @@ class BucketArgsDict(TypedDict): """ acceleration_status: NotRequired[pulumi.Input[builtins.str]] """ - Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketAccelerateConfiguration` instead. """ acl: NotRequired[pulumi.Input[builtins.str]] """ - The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. - """ - arn: NotRequired[pulumi.Input[builtins.str]] - """ - The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. """ bucket: NotRequired[pulumi.Input[builtins.str]] """ - The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. """ bucket_prefix: NotRequired[pulumi.Input[builtins.str]] """ @@ -70,72 +67,79 @@ class BucketArgsDict(TypedDict): """ cors_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketCorsRuleArgsDict']]]] """ - A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. """ force_destroy: NotRequired[pulumi.Input[builtins.bool]] """ - A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. """ grants: NotRequired[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketGrantArgsDict']]]] """ - An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. - """ - hosted_zone_id: NotRequired[pulumi.Input[builtins.str]] - """ - The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. """ lifecycle_rules: NotRequired[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLifecycleRuleArgsDict']]]] """ - A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketLifecycleConfiguration` instead. """ - loggings: NotRequired[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLoggingArgsDict']]]] + logging: NotRequired[pulumi.Input['pulumi_aws.s3.BucketLoggingArgsDict']] """ - A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketLogging` instead. """ object_lock_configuration: NotRequired[pulumi.Input['pulumi_aws.s3.BucketObjectLockConfigurationArgsDict']] """ - A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) - - > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` + Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + The provider wil only perform drift detection if a configuration value is provided. + Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. + """ + object_lock_enabled: NotRequired[pulumi.Input[builtins.bool]] + """ + Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. """ policy: NotRequired[pulumi.Input[builtins.str]] """ - A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketPolicy` instead. + """ + region: NotRequired[pulumi.Input[builtins.str]] + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. """ replication_configuration: NotRequired[pulumi.Input['pulumi_aws.s3.BucketReplicationConfigurationArgsDict']] """ - A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketReplicationConfig` instead. """ request_payer: NotRequired[pulumi.Input[builtins.str]] """ Specifies who should bear the cost of Amazon S3 data transfer. - Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - developer guide for more information. + Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. """ server_side_encryption_configuration: NotRequired[pulumi.Input['pulumi_aws.s3.BucketServerSideEncryptionConfigurationArgsDict']] """ - A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. """ tags: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] """ - A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + + The following arguments are deprecated, and will be removed in a future major version: """ versioning: NotRequired[pulumi.Input['pulumi_aws.s3.BucketVersioningArgsDict']] """ - A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. """ website: NotRequired[pulumi.Input['pulumi_aws.s3.BucketWebsiteArgsDict']] """ - A website object (documented below). - """ - website_domain: NotRequired[pulumi.Input[builtins.str]] - """ - The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - """ - website_endpoint: NotRequired[pulumi.Input[builtins.str]] - """ - The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketWebsiteConfiguration` instead. """ elif False: BucketArgsDict: TypeAlias = Mapping[str, Any] @@ -145,102 +149,141 @@ class BucketArgs: def __init__(__self__, *, acceleration_status: Optional[pulumi.Input[builtins.str]] = None, acl: Optional[pulumi.Input[builtins.str]] = None, - arn: Optional[pulumi.Input[builtins.str]] = None, bucket: Optional[pulumi.Input[builtins.str]] = None, bucket_prefix: Optional[pulumi.Input[builtins.str]] = None, cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketCorsRuleArgs']]]] = None, force_destroy: Optional[pulumi.Input[builtins.bool]] = None, grants: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketGrantArgs']]]] = None, - hosted_zone_id: Optional[pulumi.Input[builtins.str]] = None, lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLifecycleRuleArgs']]]] = None, - loggings: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLoggingArgs']]]] = None, + logging: Optional[pulumi.Input['pulumi_aws.s3.BucketLoggingArgs']] = None, object_lock_configuration: Optional[pulumi.Input['pulumi_aws.s3.BucketObjectLockConfigurationArgs']] = None, + object_lock_enabled: Optional[pulumi.Input[builtins.bool]] = None, policy: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, replication_configuration: Optional[pulumi.Input['pulumi_aws.s3.BucketReplicationConfigurationArgs']] = None, request_payer: Optional[pulumi.Input[builtins.str]] = None, server_side_encryption_configuration: Optional[pulumi.Input['pulumi_aws.s3.BucketServerSideEncryptionConfigurationArgs']] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, versioning: Optional[pulumi.Input['pulumi_aws.s3.BucketVersioningArgs']] = None, - website: Optional[pulumi.Input['pulumi_aws.s3.BucketWebsiteArgs']] = None, - website_domain: Optional[pulumi.Input[builtins.str]] = None, - website_endpoint: Optional[pulumi.Input[builtins.str]] = None): + website: Optional[pulumi.Input['pulumi_aws.s3.BucketWebsiteArgs']] = None): """ The set of arguments for constructing a Bucket resource. - :param pulumi.Input[builtins.str] acceleration_status: Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. - :param pulumi.Input[builtins.str] acl: The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. - :param pulumi.Input[builtins.str] arn: The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. - :param pulumi.Input[builtins.str] bucket: The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + :param pulumi.Input[builtins.str] acceleration_status: Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketAccelerateConfiguration` instead. + :param pulumi.Input[builtins.str] acl: The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. + :param pulumi.Input[builtins.str] bucket: Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. :param pulumi.Input[builtins.str] bucket_prefix: Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). - :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketCorsRuleArgs']]] cors_rules: A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). - :param pulumi.Input[builtins.bool] force_destroy: A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. - :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketGrantArgs']]] grants: An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. - :param pulumi.Input[builtins.str] hosted_zone_id: The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. - :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLifecycleRuleArgs']]] lifecycle_rules: A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). - :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLoggingArgs']]] loggings: A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). - :param pulumi.Input['pulumi_aws.s3.BucketObjectLockConfigurationArgs'] object_lock_configuration: A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) - - > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` - :param pulumi.Input[builtins.str] policy: A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. - :param pulumi.Input['pulumi_aws.s3.BucketReplicationConfigurationArgs'] replication_configuration: A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketCorsRuleArgs']]] cors_rules: Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. + :param pulumi.Input[builtins.bool] force_destroy: Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. + :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketGrantArgs']]] grants: An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. + :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLifecycleRuleArgs']]] lifecycle_rules: Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketLifecycleConfiguration` instead. + :param pulumi.Input['pulumi_aws.s3.BucketLoggingArgs'] logging: Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketLogging` instead. + :param pulumi.Input['pulumi_aws.s3.BucketObjectLockConfigurationArgs'] object_lock_configuration: Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + The provider wil only perform drift detection if a configuration value is provided. + Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. + :param pulumi.Input[builtins.bool] object_lock_enabled: Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + :param pulumi.Input[builtins.str] policy: Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketPolicy` instead. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + :param pulumi.Input['pulumi_aws.s3.BucketReplicationConfigurationArgs'] replication_configuration: Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketReplicationConfig` instead. :param pulumi.Input[builtins.str] request_payer: Specifies who should bear the cost of Amazon S3 data transfer. - Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - developer guide for more information. - :param pulumi.Input['pulumi_aws.s3.BucketServerSideEncryptionConfigurationArgs'] server_side_encryption_configuration: A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) - :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: A map of tags to assign to the bucket. 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['pulumi_aws.s3.BucketVersioningArgs'] versioning: A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) - :param pulumi.Input['pulumi_aws.s3.BucketWebsiteArgs'] website: A website object (documented below). - :param pulumi.Input[builtins.str] website_domain: The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - :param pulumi.Input[builtins.str] website_endpoint: The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. + :param pulumi.Input['pulumi_aws.s3.BucketServerSideEncryptionConfigurationArgs'] server_side_encryption_configuration: Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. + :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + + The following arguments are deprecated, and will be removed in a future major version: + :param pulumi.Input['pulumi_aws.s3.BucketVersioningArgs'] versioning: Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. + :param pulumi.Input['pulumi_aws.s3.BucketWebsiteArgs'] website: Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketWebsiteConfiguration` instead. """ + if acceleration_status is not None: + warnings.warn("""acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead.""", DeprecationWarning) + pulumi.log.warn("""acceleration_status is deprecated: acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead.""") if acceleration_status is not None: pulumi.set(__self__, "acceleration_status", acceleration_status) if acl is not None: pulumi.set(__self__, "acl", acl) - if arn is not None: - pulumi.set(__self__, "arn", arn) if bucket is not None: pulumi.set(__self__, "bucket", bucket) if bucket_prefix is not None: pulumi.set(__self__, "bucket_prefix", bucket_prefix) + if cors_rules is not None: + warnings.warn("""cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead.""", DeprecationWarning) + pulumi.log.warn("""cors_rules is deprecated: cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead.""") if cors_rules is not None: pulumi.set(__self__, "cors_rules", cors_rules) if force_destroy is not None: pulumi.set(__self__, "force_destroy", force_destroy) + if grants is not None: + warnings.warn("""grant is deprecated. Use the aws.s3.BucketAcl resource instead.""", DeprecationWarning) + pulumi.log.warn("""grants is deprecated: grant is deprecated. Use the aws.s3.BucketAcl resource instead.""") if grants is not None: pulumi.set(__self__, "grants", grants) - if hosted_zone_id is not None: - pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) + if lifecycle_rules is not None: + warnings.warn("""lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead.""", DeprecationWarning) + pulumi.log.warn("""lifecycle_rules is deprecated: lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead.""") if lifecycle_rules is not None: pulumi.set(__self__, "lifecycle_rules", lifecycle_rules) - if loggings is not None: - pulumi.set(__self__, "loggings", loggings) + if logging is not None: + warnings.warn("""logging is deprecated. Use the aws.s3.BucketLogging resource instead.""", DeprecationWarning) + pulumi.log.warn("""logging is deprecated: logging is deprecated. Use the aws.s3.BucketLogging resource instead.""") + if logging is not None: + pulumi.set(__self__, "logging", logging) + if object_lock_configuration is not None: + warnings.warn("""object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead.""", DeprecationWarning) + pulumi.log.warn("""object_lock_configuration is deprecated: object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead.""") if object_lock_configuration is not None: pulumi.set(__self__, "object_lock_configuration", object_lock_configuration) + if object_lock_enabled is not None: + pulumi.set(__self__, "object_lock_enabled", object_lock_enabled) if policy is not None: pulumi.set(__self__, "policy", policy) + if region is not None: + pulumi.set(__self__, "region", region) + if replication_configuration is not None: + warnings.warn("""replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead.""", DeprecationWarning) + pulumi.log.warn("""replication_configuration is deprecated: replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead.""") if replication_configuration is not None: pulumi.set(__self__, "replication_configuration", replication_configuration) + if request_payer is not None: + warnings.warn("""request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead.""", DeprecationWarning) + pulumi.log.warn("""request_payer is deprecated: request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead.""") if request_payer is not None: pulumi.set(__self__, "request_payer", request_payer) + if server_side_encryption_configuration is not None: + warnings.warn("""server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead.""", DeprecationWarning) + pulumi.log.warn("""server_side_encryption_configuration is deprecated: server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead.""") if server_side_encryption_configuration is not None: pulumi.set(__self__, "server_side_encryption_configuration", server_side_encryption_configuration) if tags is not None: pulumi.set(__self__, "tags", tags) + if versioning is not None: + warnings.warn("""versioning is deprecated. Use the aws.s3.BucketVersioning resource instead.""", DeprecationWarning) + pulumi.log.warn("""versioning is deprecated: versioning is deprecated. Use the aws.s3.BucketVersioning resource instead.""") if versioning is not None: pulumi.set(__self__, "versioning", versioning) + if website is not None: + warnings.warn("""website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead.""", DeprecationWarning) + pulumi.log.warn("""website is deprecated: website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead.""") if website is not None: pulumi.set(__self__, "website", website) - if website_domain is not None: - pulumi.set(__self__, "website_domain", website_domain) - if website_endpoint is not None: - pulumi.set(__self__, "website_endpoint", website_endpoint) @property @pulumi.getter(name="accelerationStatus") + @_utilities.deprecated("""acceleration_status is deprecated. Use the aws.s3.BucketAccelerateConfiguration resource instead.""") def acceleration_status(self) -> Optional[pulumi.Input[builtins.str]]: """ - Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketAccelerateConfiguration` instead. """ return pulumi.get(self, "acceleration_status") @@ -252,7 +295,7 @@ def acceleration_status(self, value: Optional[pulumi.Input[builtins.str]]): @pulumi.getter def acl(self) -> Optional[pulumi.Input[builtins.str]]: """ - The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. """ return pulumi.get(self, "acl") @@ -260,23 +303,11 @@ def acl(self) -> Optional[pulumi.Input[builtins.str]]: def acl(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "acl", value) - @property - @pulumi.getter - def arn(self) -> Optional[pulumi.Input[builtins.str]]: - """ - The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. - """ - return pulumi.get(self, "arn") - - @arn.setter - def arn(self, value: Optional[pulumi.Input[builtins.str]]): - pulumi.set(self, "arn", value) - @property @pulumi.getter def bucket(self) -> Optional[pulumi.Input[builtins.str]]: """ - The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). The name must not be in the format `[bucket_name]--[azid]--x-s3`. Use the `aws.s3.DirectoryBucket` resource to manage S3 Express buckets. """ return pulumi.get(self, "bucket") @@ -298,9 +329,10 @@ def bucket_prefix(self, value: Optional[pulumi.Input[builtins.str]]): @property @pulumi.getter(name="corsRules") + @_utilities.deprecated("""cors_rule is deprecated. Use the aws.s3.BucketCorsConfiguration resource instead.""") def cors_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketCorsRuleArgs']]]]: """ - A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketCorsConfiguration` instead. """ return pulumi.get(self, "cors_rules") @@ -312,7 +344,7 @@ def cors_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_ @pulumi.getter(name="forceDestroy") def force_destroy(self) -> Optional[pulumi.Input[builtins.bool]]: """ - A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. """ return pulumi.get(self, "force_destroy") @@ -322,9 +354,10 @@ def force_destroy(self, value: Optional[pulumi.Input[builtins.bool]]): @property @pulumi.getter + @_utilities.deprecated("""grant is deprecated. Use the aws.s3.BucketAcl resource instead.""") def grants(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketGrantArgs']]]]: """ - An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketAcl` instead. """ return pulumi.get(self, "grants") @@ -332,23 +365,13 @@ def grants(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.B def grants(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketGrantArgs']]]]): pulumi.set(self, "grants", value) - @property - @pulumi.getter(name="hostedZoneId") - def hosted_zone_id(self) -> Optional[pulumi.Input[builtins.str]]: - """ - The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. - """ - return pulumi.get(self, "hosted_zone_id") - - @hosted_zone_id.setter - def hosted_zone_id(self, value: Optional[pulumi.Input[builtins.str]]): - pulumi.set(self, "hosted_zone_id", value) - @property @pulumi.getter(name="lifecycleRules") + @_utilities.deprecated("""lifecycle_rule is deprecated. Use the aws.s3.BucketLifecycleConfiguration resource instead.""") def lifecycle_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLifecycleRuleArgs']]]]: """ - A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketLifecycleConfiguration` instead. """ return pulumi.get(self, "lifecycle_rules") @@ -358,23 +381,26 @@ def lifecycle_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pu @property @pulumi.getter - def loggings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLoggingArgs']]]]: + @_utilities.deprecated("""logging is deprecated. Use the aws.s3.BucketLogging resource instead.""") + def logging(self) -> Optional[pulumi.Input['pulumi_aws.s3.BucketLoggingArgs']]: """ - A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketLogging` instead. """ - return pulumi.get(self, "loggings") + return pulumi.get(self, "logging") - @loggings.setter - def loggings(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLoggingArgs']]]]): - pulumi.set(self, "loggings", value) + @logging.setter + def logging(self, value: Optional[pulumi.Input['pulumi_aws.s3.BucketLoggingArgs']]): + pulumi.set(self, "logging", value) @property @pulumi.getter(name="objectLockConfiguration") + @_utilities.deprecated("""object_lock_configuration is deprecated. Use the top-level parameter object_lock_enabled and the aws.s3.BucketObjectLockConfiguration resource instead.""") def object_lock_configuration(self) -> Optional[pulumi.Input['pulumi_aws.s3.BucketObjectLockConfigurationArgs']]: """ - A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) - - > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` + Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + The provider wil only perform drift detection if a configuration value is provided. + Use the `object_lock_enabled` parameter and the resource `aws.s3.BucketObjectLockConfiguration` instead. """ return pulumi.get(self, "object_lock_configuration") @@ -382,11 +408,25 @@ def object_lock_configuration(self) -> Optional[pulumi.Input['pulumi_aws.s3.Buck def object_lock_configuration(self, value: Optional[pulumi.Input['pulumi_aws.s3.BucketObjectLockConfigurationArgs']]): pulumi.set(self, "object_lock_configuration", value) + @property + @pulumi.getter(name="objectLockEnabled") + def object_lock_enabled(self) -> Optional[pulumi.Input[builtins.bool]]: + """ + Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + """ + return pulumi.get(self, "object_lock_enabled") + + @object_lock_enabled.setter + def object_lock_enabled(self, value: Optional[pulumi.Input[builtins.bool]]): + pulumi.set(self, "object_lock_enabled", value) + @property @pulumi.getter def policy(self) -> Optional[pulumi.Input[builtins.str]]: """ - A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketPolicy` instead. """ return pulumi.get(self, "policy") @@ -394,11 +434,25 @@ def policy(self) -> Optional[pulumi.Input[builtins.str]]: def policy(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "policy", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="replicationConfiguration") + @_utilities.deprecated("""replication_configuration is deprecated. Use the aws.s3.BucketReplicationConfig resource instead.""") def replication_configuration(self) -> Optional[pulumi.Input['pulumi_aws.s3.BucketReplicationConfigurationArgs']]: """ - A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketReplicationConfig` instead. """ return pulumi.get(self, "replication_configuration") @@ -408,12 +462,14 @@ def replication_configuration(self, value: Optional[pulumi.Input['pulumi_aws.s3. @property @pulumi.getter(name="requestPayer") + @_utilities.deprecated("""request_payer is deprecated. Use the aws.s3.BucketRequestPaymentConfiguration resource instead.""") def request_payer(self) -> Optional[pulumi.Input[builtins.str]]: """ Specifies who should bear the cost of Amazon S3 data transfer. - Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur - the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) - developer guide for more information. + Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketRequestPaymentConfiguration` instead. """ return pulumi.get(self, "request_payer") @@ -423,9 +479,12 @@ def request_payer(self, value: Optional[pulumi.Input[builtins.str]]): @property @pulumi.getter(name="serverSideEncryptionConfiguration") + @_utilities.deprecated("""server_side_encryption_configuration is deprecated. Use the aws.s3.BucketServerSideEncryptionConfiguration resource instead.""") def server_side_encryption_configuration(self) -> Optional[pulumi.Input['pulumi_aws.s3.BucketServerSideEncryptionConfigurationArgs']]: """ - A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketServerSideEncryptionConfiguration` instead. """ return pulumi.get(self, "server_side_encryption_configuration") @@ -437,7 +496,9 @@ def server_side_encryption_configuration(self, value: Optional[pulumi.Input['pul @pulumi.getter def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]: """ - A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + + The following arguments are deprecated, and will be removed in a future major version: """ return pulumi.get(self, "tags") @@ -447,9 +508,10 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.s @property @pulumi.getter + @_utilities.deprecated("""versioning is deprecated. Use the aws.s3.BucketVersioning resource instead.""") def versioning(self) -> Optional[pulumi.Input['pulumi_aws.s3.BucketVersioningArgs']]: """ - A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `aws.s3.BucketVersioning` instead. """ return pulumi.get(self, "versioning") @@ -459,9 +521,11 @@ def versioning(self, value: Optional[pulumi.Input['pulumi_aws.s3.BucketVersionin @property @pulumi.getter + @_utilities.deprecated("""website is deprecated. Use the aws.s3.BucketWebsiteConfiguration resource instead.""") def website(self) -> Optional[pulumi.Input['pulumi_aws.s3.BucketWebsiteArgs']]: """ - A website object (documented below). + Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + Use the resource `aws.s3.BucketWebsiteConfiguration` instead. """ return pulumi.get(self, "website") @@ -469,30 +533,6 @@ def website(self) -> Optional[pulumi.Input['pulumi_aws.s3.BucketWebsiteArgs']]: def website(self, value: Optional[pulumi.Input['pulumi_aws.s3.BucketWebsiteArgs']]): pulumi.set(self, "website", value) - @property - @pulumi.getter(name="websiteDomain") - def website_domain(self) -> Optional[pulumi.Input[builtins.str]]: - """ - The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. - """ - return pulumi.get(self, "website_domain") - - @website_domain.setter - def website_domain(self, value: Optional[pulumi.Input[builtins.str]]): - pulumi.set(self, "website_domain", value) - - @property - @pulumi.getter(name="websiteEndpoint") - def website_endpoint(self) -> Optional[pulumi.Input[builtins.str]]: - """ - The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. - """ - return pulumi.get(self, "website_endpoint") - - @website_endpoint.setter - def website_endpoint(self, value: Optional[pulumi.Input[builtins.str]]): - pulumi.set(self, "website_endpoint", value) - if not MYPY: class DefaultLogGroupArgsDict(TypedDict): @@ -877,6 +917,10 @@ class LogGroupArgsDict(TypedDict): """ Creates a unique name beginning with the specified prefix. Conflicts with `name`. """ + region: NotRequired[pulumi.Input[builtins.str]] + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ retention_in_days: NotRequired[pulumi.Input[builtins.int]] """ Specifies the number of days @@ -901,6 +945,7 @@ def __init__(__self__, *, log_group_class: Optional[pulumi.Input[builtins.str]] = None, name: Optional[pulumi.Input[builtins.str]] = None, name_prefix: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, retention_in_days: Optional[pulumi.Input[builtins.int]] = None, skip_destroy: Optional[pulumi.Input[builtins.bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None): @@ -912,6 +957,7 @@ def __init__(__self__, *, :param pulumi.Input[builtins.str] log_group_class: Specified the log class of the log group. Possible values are: `STANDARD` or `INFREQUENT_ACCESS`. :param pulumi.Input[builtins.str] name: The name of the log group. If omitted, this provider will assign a random, unique name. :param pulumi.Input[builtins.str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[builtins.int] retention_in_days: Specifies the number of days you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. If you select 0, the events in the log group are always retained and never expire. @@ -926,6 +972,8 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if name_prefix is not None: pulumi.set(__self__, "name_prefix", name_prefix) + if region is not None: + pulumi.set(__self__, "region", region) if retention_in_days is not None: pulumi.set(__self__, "retention_in_days", retention_in_days) if skip_destroy is not None: @@ -983,6 +1031,18 @@ def name_prefix(self) -> Optional[pulumi.Input[builtins.str]]: def name_prefix(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "name_prefix", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="retentionInDays") def retention_in_days(self) -> Optional[pulumi.Input[builtins.int]]: @@ -1415,6 +1475,10 @@ class SecurityGroupArgsDict(TypedDict): """ Creates a unique name beginning with the specified prefix. Conflicts with `name`. """ + region: NotRequired[pulumi.Input[builtins.str]] + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ revoke_rules_on_delete: NotRequired[pulumi.Input[builtins.bool]] """ Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. @@ -1438,6 +1502,7 @@ def __init__(__self__, *, ingress: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroupIngressArgs']]]] = None, name: Optional[pulumi.Input[builtins.str]] = None, name_prefix: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, revoke_rules_on_delete: Optional[pulumi.Input[builtins.bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, vpc_id: Optional[pulumi.Input[builtins.str]] = None): @@ -1448,6 +1513,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroupIngressArgs']]] ingress: Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. :param pulumi.Input[builtins.str] name: Name of the security group. If omitted, the provider will assign a random, unique name. :param pulumi.Input[builtins.str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[builtins.bool] revoke_rules_on_delete: Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: 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[builtins.str] vpc_id: VPC ID. Defaults to the region's default VPC. @@ -1464,6 +1530,8 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if name_prefix is not None: pulumi.set(__self__, "name_prefix", name_prefix) + if region is not None: + pulumi.set(__self__, "region", region) if revoke_rules_on_delete is not None: pulumi.set(__self__, "revoke_rules_on_delete", revoke_rules_on_delete) if tags is not None: @@ -1531,6 +1599,18 @@ def name_prefix(self) -> Optional[pulumi.Input[builtins.str]]: def name_prefix(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "name_prefix", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="revokeRulesOnDelete") def revoke_rules_on_delete(self) -> Optional[pulumi.Input[builtins.bool]]: diff --git a/sdk/python/pulumi_awsx/cloudtrail/trail.py b/sdk/python/pulumi_awsx/cloudtrail/trail.py index 3a030fa63..59575fa6e 100644 --- a/sdk/python/pulumi_awsx/cloudtrail/trail.py +++ b/sdk/python/pulumi_awsx/cloudtrail/trail.py @@ -33,6 +33,7 @@ def __init__(__self__, *, is_organization_trail: Optional[pulumi.Input[builtins.bool]] = None, kms_key_id: Optional[pulumi.Input[builtins.str]] = None, name: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, s3_bucket: Optional['_awsx.RequiredBucketArgs'] = None, s3_key_prefix: Optional[pulumi.Input[builtins.str]] = None, sns_topic_name: Optional[pulumi.Input[builtins.str]] = None, @@ -50,9 +51,10 @@ def __init__(__self__, *, :param pulumi.Input[builtins.bool] is_organization_trail: Whether the trail is an AWS Organizations trail. Organization trails log events for the master account and all member accounts. Can only be created in the organization master account. Defaults to `false`. :param pulumi.Input[builtins.str] kms_key_id: KMS key ARN to use to encrypt the logs delivered by CloudTrail. :param pulumi.Input[builtins.str] name: Name of the trail. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param '_awsx.RequiredBucketArgs' s3_bucket: S3 bucket designated for publishing log files. :param pulumi.Input[builtins.str] s3_key_prefix: S3 key prefix that follows the name of the bucket you have designated for log file delivery. - :param pulumi.Input[builtins.str] sns_topic_name: Name of the Amazon SNS topic defined for notification of log file delivery. + :param pulumi.Input[builtins.str] sns_topic_name: Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Map of tags to assign to the trail. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ if advanced_event_selectors is not None: @@ -77,6 +79,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kms_key_id", kms_key_id) if name is not None: pulumi.set(__self__, "name", name) + if region is not None: + pulumi.set(__self__, "region", region) if s3_bucket is not None: pulumi.set(__self__, "s3_bucket", s3_bucket) if s3_key_prefix is not None: @@ -218,6 +222,18 @@ def name(self) -> Optional[pulumi.Input[builtins.str]]: def name(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="s3Bucket") def s3_bucket(self) -> Optional['_awsx.RequiredBucketArgs']: @@ -246,7 +262,7 @@ def s3_key_prefix(self, value: Optional[pulumi.Input[builtins.str]]): @pulumi.getter(name="snsTopicName") def sns_topic_name(self) -> Optional[pulumi.Input[builtins.str]]: """ - Name of the Amazon SNS topic defined for notification of log file delivery. + Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. """ return pulumi.get(self, "sns_topic_name") @@ -286,6 +302,7 @@ def __init__(__self__, is_organization_trail: Optional[pulumi.Input[builtins.bool]] = None, kms_key_id: Optional[pulumi.Input[builtins.str]] = None, name: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, s3_bucket: Optional[Union['_awsx.RequiredBucketArgs', '_awsx.RequiredBucketArgsDict']] = None, s3_key_prefix: Optional[pulumi.Input[builtins.str]] = None, sns_topic_name: Optional[pulumi.Input[builtins.str]] = None, @@ -306,9 +323,10 @@ def __init__(__self__, :param pulumi.Input[builtins.bool] is_organization_trail: Whether the trail is an AWS Organizations trail. Organization trails log events for the master account and all member accounts. Can only be created in the organization master account. Defaults to `false`. :param pulumi.Input[builtins.str] kms_key_id: KMS key ARN to use to encrypt the logs delivered by CloudTrail. :param pulumi.Input[builtins.str] name: Name of the trail. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param Union['_awsx.RequiredBucketArgs', '_awsx.RequiredBucketArgsDict'] s3_bucket: S3 bucket designated for publishing log files. :param pulumi.Input[builtins.str] s3_key_prefix: S3 key prefix that follows the name of the bucket you have designated for log file delivery. - :param pulumi.Input[builtins.str] sns_topic_name: Name of the Amazon SNS topic defined for notification of log file delivery. + :param pulumi.Input[builtins.str] sns_topic_name: Name of the Amazon SNS topic defined for notification of log file delivery. Specify the SNS topic ARN if it resides in another region. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Map of tags to assign to the trail. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ ... @@ -345,6 +363,7 @@ def _internal_init(__self__, is_organization_trail: Optional[pulumi.Input[builtins.bool]] = None, kms_key_id: Optional[pulumi.Input[builtins.str]] = None, name: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, s3_bucket: Optional[Union['_awsx.RequiredBucketArgs', '_awsx.RequiredBucketArgsDict']] = None, s3_key_prefix: Optional[pulumi.Input[builtins.str]] = None, sns_topic_name: Optional[pulumi.Input[builtins.str]] = None, @@ -371,6 +390,7 @@ def _internal_init(__self__, __props__.__dict__["is_organization_trail"] = is_organization_trail __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["name"] = name + __props__.__dict__["region"] = region __props__.__dict__["s3_bucket"] = s3_bucket __props__.__dict__["s3_key_prefix"] = s3_key_prefix __props__.__dict__["sns_topic_name"] = sns_topic_name diff --git a/sdk/python/pulumi_awsx/ec2/_inputs.py b/sdk/python/pulumi_awsx/ec2/_inputs.py index 279fc9f43..7792c641a 100644 --- a/sdk/python/pulumi_awsx/ec2/_inputs.py +++ b/sdk/python/pulumi_awsx/ec2/_inputs.py @@ -273,7 +273,7 @@ class VpcEndpointSpecArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -379,7 +379,7 @@ class VpcEndpointSpecArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -493,7 +493,7 @@ class VpcEndpointSpecArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -650,7 +650,7 @@ class VpcEndpointSpecArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -819,8 +819,8 @@ class VpcEndpointSpecArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -882,11 +882,12 @@ class VpcEndpointSpecArgsDict(TypedDict): } public static void stack(Context ctx) { - final var current = AwsFunctions.getCallerIdentity(); + final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() + .build()); var example = new VpcEndpointService("example", VpcEndpointServiceArgs.builder() .acceptanceRequired(false) - .allowedPrincipals(current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.arn())) + .allowedPrincipals(current.arn()) .gatewayLoadBalancerArns(exampleAwsLb.arn()) .build()); @@ -927,6 +928,234 @@ class VpcEndpointSpecArgsDict(TypedDict): ``` + ### VPC Lattice Resource Configuration Endpoint Type + + + ```typescript + import * as pulumi from "@pulumi/pulumi"; + import * as aws from "@pulumi/aws"; + + const example = new aws.ec2.VpcEndpoint("example", { + resourceConfigurationArn: exampleAwsVpclatticeResourceConfiguration.arn, + subnetIds: [exampleAwsSubnet.id], + vpcEndpointType: "Resource", + vpcId: exampleAwsVpc.id, + }); + ``` + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ec2.VpcEndpoint("example", + resource_configuration_arn=example_aws_vpclattice_resource_configuration["arn"], + subnet_ids=[example_aws_subnet["id"]], + vpc_endpoint_type="Resource", + vpc_id=example_aws_vpc["id"]) + ``` + ```csharp + using System.Collections.Generic; + using System.Linq; + using Pulumi; + using Aws = Pulumi.Aws; + + return await Deployment.RunAsync(() => + { + var example = new Aws.Ec2.VpcEndpoint("example", new() + { + ResourceConfigurationArn = exampleAwsVpclatticeResourceConfiguration.Arn, + SubnetIds = new[] + { + exampleAwsSubnet.Id, + }, + VpcEndpointType = "Resource", + VpcId = exampleAwsVpc.Id, + }); + + }); + ``` + ```go + package main + + import ( + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + ) + + func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ + ResourceConfigurationArn: pulumi.Any(exampleAwsVpclatticeResourceConfiguration.Arn), + SubnetIds: pulumi.StringArray{ + exampleAwsSubnet.Id, + }, + VpcEndpointType: pulumi.String("Resource"), + VpcId: pulumi.Any(exampleAwsVpc.Id), + }) + if err != nil { + return err + } + return nil + }) + } + ``` + ```java + package generated_program; + + import com.pulumi.Context; + import com.pulumi.Pulumi; + import com.pulumi.core.Output; + import com.pulumi.aws.ec2.VpcEndpoint; + import com.pulumi.aws.ec2.VpcEndpointArgs; + 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 VpcEndpoint("example", VpcEndpointArgs.builder() + .resourceConfigurationArn(exampleAwsVpclatticeResourceConfiguration.arn()) + .subnetIds(exampleAwsSubnet.id()) + .vpcEndpointType("Resource") + .vpcId(exampleAwsVpc.id()) + .build()); + + } + } + ``` + ```yaml + resources: + example: + type: aws:ec2:VpcEndpoint + properties: + resourceConfigurationArn: ${exampleAwsVpclatticeResourceConfiguration.arn} + subnetIds: + - ${exampleAwsSubnet.id} + vpcEndpointType: Resource + vpcId: ${exampleAwsVpc.id} + ``` + + + ### VPC Lattice Service Network Endpoint Type + + + ```typescript + import * as pulumi from "@pulumi/pulumi"; + import * as aws from "@pulumi/aws"; + + const example = new aws.ec2.VpcEndpoint("example", { + serviceNetworkArn: exampleAwsVpclatticeServiceNetwork.arn, + subnetIds: [exampleAwsSubnet.id], + vpcEndpointType: "ServiceNetwork", + vpcId: exampleAwsVpc.id, + }); + ``` + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ec2.VpcEndpoint("example", + service_network_arn=example_aws_vpclattice_service_network["arn"], + subnet_ids=[example_aws_subnet["id"]], + vpc_endpoint_type="ServiceNetwork", + vpc_id=example_aws_vpc["id"]) + ``` + ```csharp + using System.Collections.Generic; + using System.Linq; + using Pulumi; + using Aws = Pulumi.Aws; + + return await Deployment.RunAsync(() => + { + var example = new Aws.Ec2.VpcEndpoint("example", new() + { + ServiceNetworkArn = exampleAwsVpclatticeServiceNetwork.Arn, + SubnetIds = new[] + { + exampleAwsSubnet.Id, + }, + VpcEndpointType = "ServiceNetwork", + VpcId = exampleAwsVpc.Id, + }); + + }); + ``` + ```go + package main + + import ( + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + ) + + func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ + ServiceNetworkArn: pulumi.Any(exampleAwsVpclatticeServiceNetwork.Arn), + SubnetIds: pulumi.StringArray{ + exampleAwsSubnet.Id, + }, + VpcEndpointType: pulumi.String("ServiceNetwork"), + VpcId: pulumi.Any(exampleAwsVpc.Id), + }) + if err != nil { + return err + } + return nil + }) + } + ``` + ```java + package generated_program; + + import com.pulumi.Context; + import com.pulumi.Pulumi; + import com.pulumi.core.Output; + import com.pulumi.aws.ec2.VpcEndpoint; + import com.pulumi.aws.ec2.VpcEndpointArgs; + 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 VpcEndpoint("example", VpcEndpointArgs.builder() + .serviceNetworkArn(exampleAwsVpclatticeServiceNetwork.arn()) + .subnetIds(exampleAwsSubnet.id()) + .vpcEndpointType("ServiceNetwork") + .vpcId(exampleAwsVpc.id()) + .build()); + + } + } + ``` + ```yaml + resources: + example: + type: aws:ec2:VpcEndpoint + properties: + serviceNetworkArn: ${exampleAwsVpclatticeServiceNetwork.arn} + subnetIds: + - ${exampleAwsSubnet.id} + vpcEndpointType: ServiceNetwork + vpcId: ${exampleAwsVpc.id} + ``` + + ## Import Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example: @@ -959,6 +1188,14 @@ class VpcEndpointSpecArgsDict(TypedDict): """ Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. Defaults to `false`. """ + region: NotRequired[pulumi.Input[builtins.str]] + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + resource_configuration_arn: NotRequired[pulumi.Input[builtins.str]] + """ + The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + """ route_table_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] """ One or more route table IDs. Applicable for endpoints of type `Gateway`. @@ -968,6 +1205,10 @@ class VpcEndpointSpecArgsDict(TypedDict): The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`. If no security groups are specified, the VPC's [default security group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) is associated with the endpoint. """ + service_network_arn: NotRequired[pulumi.Input[builtins.str]] + """ + The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + """ service_region: NotRequired[pulumi.Input[builtins.str]] """ The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. @@ -986,7 +1227,7 @@ class VpcEndpointSpecArgsDict(TypedDict): """ vpc_endpoint_type: NotRequired[pulumi.Input[builtins.str]] """ - The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. """ elif False: VpcEndpointSpecArgsDict: TypeAlias = Mapping[str, Any] @@ -1000,8 +1241,11 @@ def __init__(__self__, *, ip_address_type: Optional[pulumi.Input[builtins.str]] = None, policy: Optional[pulumi.Input[builtins.str]] = None, private_dns_enabled: Optional[builtins.bool] = None, + region: Optional[pulumi.Input[builtins.str]] = None, + resource_configuration_arn: Optional[pulumi.Input[builtins.str]] = None, route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, + service_network_arn: Optional[pulumi.Input[builtins.str]] = None, service_region: Optional[pulumi.Input[builtins.str]] = None, subnet_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.VpcEndpointSubnetConfigurationArgs']]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, @@ -1060,7 +1304,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1166,7 +1410,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1280,7 +1524,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1437,7 +1681,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1606,8 +1850,8 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1669,11 +1913,12 @@ def __init__(__self__, *, } public static void stack(Context ctx) { - final var current = AwsFunctions.getCallerIdentity(); + final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() + .build()); var example = new VpcEndpointService("example", VpcEndpointServiceArgs.builder() .acceptanceRequired(false) - .allowedPrincipals(current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.arn())) + .allowedPrincipals(current.arn()) .gatewayLoadBalancerArns(exampleAwsLb.arn()) .build()); @@ -1714,6 +1959,234 @@ def __init__(__self__, *, ``` + ### VPC Lattice Resource Configuration Endpoint Type + + + ```typescript + import * as pulumi from "@pulumi/pulumi"; + import * as aws from "@pulumi/aws"; + + const example = new aws.ec2.VpcEndpoint("example", { + resourceConfigurationArn: exampleAwsVpclatticeResourceConfiguration.arn, + subnetIds: [exampleAwsSubnet.id], + vpcEndpointType: "Resource", + vpcId: exampleAwsVpc.id, + }); + ``` + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ec2.VpcEndpoint("example", + resource_configuration_arn=example_aws_vpclattice_resource_configuration["arn"], + subnet_ids=[example_aws_subnet["id"]], + vpc_endpoint_type="Resource", + vpc_id=example_aws_vpc["id"]) + ``` + ```csharp + using System.Collections.Generic; + using System.Linq; + using Pulumi; + using Aws = Pulumi.Aws; + + return await Deployment.RunAsync(() => + { + var example = new Aws.Ec2.VpcEndpoint("example", new() + { + ResourceConfigurationArn = exampleAwsVpclatticeResourceConfiguration.Arn, + SubnetIds = new[] + { + exampleAwsSubnet.Id, + }, + VpcEndpointType = "Resource", + VpcId = exampleAwsVpc.Id, + }); + + }); + ``` + ```go + package main + + import ( + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + ) + + func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ + ResourceConfigurationArn: pulumi.Any(exampleAwsVpclatticeResourceConfiguration.Arn), + SubnetIds: pulumi.StringArray{ + exampleAwsSubnet.Id, + }, + VpcEndpointType: pulumi.String("Resource"), + VpcId: pulumi.Any(exampleAwsVpc.Id), + }) + if err != nil { + return err + } + return nil + }) + } + ``` + ```java + package generated_program; + + import com.pulumi.Context; + import com.pulumi.Pulumi; + import com.pulumi.core.Output; + import com.pulumi.aws.ec2.VpcEndpoint; + import com.pulumi.aws.ec2.VpcEndpointArgs; + 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 VpcEndpoint("example", VpcEndpointArgs.builder() + .resourceConfigurationArn(exampleAwsVpclatticeResourceConfiguration.arn()) + .subnetIds(exampleAwsSubnet.id()) + .vpcEndpointType("Resource") + .vpcId(exampleAwsVpc.id()) + .build()); + + } + } + ``` + ```yaml + resources: + example: + type: aws:ec2:VpcEndpoint + properties: + resourceConfigurationArn: ${exampleAwsVpclatticeResourceConfiguration.arn} + subnetIds: + - ${exampleAwsSubnet.id} + vpcEndpointType: Resource + vpcId: ${exampleAwsVpc.id} + ``` + + + ### VPC Lattice Service Network Endpoint Type + + + ```typescript + import * as pulumi from "@pulumi/pulumi"; + import * as aws from "@pulumi/aws"; + + const example = new aws.ec2.VpcEndpoint("example", { + serviceNetworkArn: exampleAwsVpclatticeServiceNetwork.arn, + subnetIds: [exampleAwsSubnet.id], + vpcEndpointType: "ServiceNetwork", + vpcId: exampleAwsVpc.id, + }); + ``` + ```python + import pulumi + import pulumi_aws as aws + + example = aws.ec2.VpcEndpoint("example", + service_network_arn=example_aws_vpclattice_service_network["arn"], + subnet_ids=[example_aws_subnet["id"]], + vpc_endpoint_type="ServiceNetwork", + vpc_id=example_aws_vpc["id"]) + ``` + ```csharp + using System.Collections.Generic; + using System.Linq; + using Pulumi; + using Aws = Pulumi.Aws; + + return await Deployment.RunAsync(() => + { + var example = new Aws.Ec2.VpcEndpoint("example", new() + { + ServiceNetworkArn = exampleAwsVpclatticeServiceNetwork.Arn, + SubnetIds = new[] + { + exampleAwsSubnet.Id, + }, + VpcEndpointType = "ServiceNetwork", + VpcId = exampleAwsVpc.Id, + }); + + }); + ``` + ```go + package main + + import ( + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + ) + + func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + _, err := ec2.NewVpcEndpoint(ctx, "example", &ec2.VpcEndpointArgs{ + ServiceNetworkArn: pulumi.Any(exampleAwsVpclatticeServiceNetwork.Arn), + SubnetIds: pulumi.StringArray{ + exampleAwsSubnet.Id, + }, + VpcEndpointType: pulumi.String("ServiceNetwork"), + VpcId: pulumi.Any(exampleAwsVpc.Id), + }) + if err != nil { + return err + } + return nil + }) + } + ``` + ```java + package generated_program; + + import com.pulumi.Context; + import com.pulumi.Pulumi; + import com.pulumi.core.Output; + import com.pulumi.aws.ec2.VpcEndpoint; + import com.pulumi.aws.ec2.VpcEndpointArgs; + 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 VpcEndpoint("example", VpcEndpointArgs.builder() + .serviceNetworkArn(exampleAwsVpclatticeServiceNetwork.arn()) + .subnetIds(exampleAwsSubnet.id()) + .vpcEndpointType("ServiceNetwork") + .vpcId(exampleAwsVpc.id()) + .build()); + + } + } + ``` + ```yaml + resources: + example: + type: aws:ec2:VpcEndpoint + properties: + serviceNetworkArn: ${exampleAwsVpclatticeServiceNetwork.arn} + subnetIds: + - ${exampleAwsSubnet.id} + vpcEndpointType: ServiceNetwork + vpcId: ${exampleAwsVpc.id} + ``` + + ## Import Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example: @@ -1728,14 +2201,17 @@ def __init__(__self__, *, :param pulumi.Input[builtins.str] ip_address_type: The IP address type for the endpoint. Valid values are `ipv4`, `dualstack`, and `ipv6`. :param pulumi.Input[builtins.str] policy: A policy to attach to the endpoint that controls access to the service. This is a JSON formatted string. Defaults to full access. All `Gateway` and some `Interface` endpoints support policies - see the [relevant AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) for more details. :param builtins.bool private_dns_enabled: Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. Defaults to `false`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + :param pulumi.Input[builtins.str] resource_configuration_arn: The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] route_table_ids: One or more route table IDs. Applicable for endpoints of type `Gateway`. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] security_group_ids: The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type `Interface`. If no security groups are specified, the VPC's [default security group](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) is associated with the endpoint. + :param pulumi.Input[builtins.str] service_network_arn: The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. :param pulumi.Input[builtins.str] service_region: The AWS region of the VPC Endpoint Service. If specified, the VPC endpoint will connect to the service in the provided region. Applicable for endpoints of type `Interface`. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.VpcEndpointSubnetConfigurationArgs']]] subnet_configurations: Subnet configuration for the endpoint, used to select specific IPv4 and/or IPv6 addresses to the endpoint. See subnet_configuration below. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] subnet_ids: The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type `GatewayLoadBalancer` and `Interface`. Interface type endpoints cannot function without being assigned to a subnet. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.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[builtins.str] vpc_endpoint_type: The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + :param pulumi.Input[builtins.str] vpc_endpoint_type: The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. """ pulumi.set(__self__, "service_name", service_name) if auto_accept is not None: @@ -1748,10 +2224,16 @@ def __init__(__self__, *, pulumi.set(__self__, "policy", policy) if private_dns_enabled is not None: pulumi.set(__self__, "private_dns_enabled", private_dns_enabled) + if region is not None: + pulumi.set(__self__, "region", region) + if resource_configuration_arn is not None: + pulumi.set(__self__, "resource_configuration_arn", resource_configuration_arn) if route_table_ids is not None: pulumi.set(__self__, "route_table_ids", route_table_ids) if security_group_ids is not None: pulumi.set(__self__, "security_group_ids", security_group_ids) + if service_network_arn is not None: + pulumi.set(__self__, "service_network_arn", service_network_arn) if service_region is not None: pulumi.set(__self__, "service_region", service_region) if subnet_configurations is not None: @@ -1835,6 +2317,30 @@ def private_dns_enabled(self) -> Optional[builtins.bool]: def private_dns_enabled(self, value: Optional[builtins.bool]): pulumi.set(self, "private_dns_enabled", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="resourceConfigurationArn") + def resource_configuration_arn(self) -> Optional[pulumi.Input[builtins.str]]: + """ + The ARN of a Resource Configuration to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + """ + return pulumi.get(self, "resource_configuration_arn") + + @resource_configuration_arn.setter + def resource_configuration_arn(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "resource_configuration_arn", value) + @property @pulumi.getter(name="routeTableIds") def route_table_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]: @@ -1860,6 +2366,18 @@ def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[buil def security_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]): pulumi.set(self, "security_group_ids", value) + @property + @pulumi.getter(name="serviceNetworkArn") + def service_network_arn(self) -> Optional[pulumi.Input[builtins.str]]: + """ + The ARN of a Service Network to connect this VPC Endpoint to. Exactly one of `resource_configuration_arn`, `service_name` or `service_network_arn` is required. + """ + return pulumi.get(self, "service_network_arn") + + @service_network_arn.setter + def service_network_arn(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "service_network_arn", value) + @property @pulumi.getter(name="serviceRegion") def service_region(self) -> Optional[pulumi.Input[builtins.str]]: @@ -1912,7 +2430,7 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.s @pulumi.getter(name="vpcEndpointType") def vpc_endpoint_type(self) -> Optional[pulumi.Input[builtins.str]]: """ - The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. + The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`,`Interface`, `Resource` or `ServiceNetwork`. Defaults to `Gateway`. """ return pulumi.get(self, "vpc_endpoint_type") diff --git a/sdk/python/pulumi_awsx/ec2/vpc.py b/sdk/python/pulumi_awsx/ec2/vpc.py index 442c2ebee..0cc741bc9 100644 --- a/sdk/python/pulumi_awsx/ec2/vpc.py +++ b/sdk/python/pulumi_awsx/ec2/vpc.py @@ -40,6 +40,7 @@ def __init__(__self__, *, ipv6_netmask_length: Optional[pulumi.Input[builtins.int]] = None, nat_gateways: Optional['NatGatewayConfigurationArgs'] = None, number_of_availability_zones: Optional[builtins.int] = None, + region: Optional[pulumi.Input[builtins.str]] = None, subnet_specs: Optional[Sequence['SubnetSpecArgs']] = None, subnet_strategy: Optional['SubnetAllocationStrategy'] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -62,6 +63,7 @@ def __init__(__self__, *, :param pulumi.Input[builtins.int] ipv6_netmask_length: Netmask length to request from IPAM Pool. Conflicts with `ipv6_cidr_block`. This can be omitted if IPAM pool as a `allocation_default_netmask_length` set. Valid values are from `44` to `60` in increments of 4. :param 'NatGatewayConfigurationArgs' nat_gateways: Configuration for NAT Gateways. Optional. If private and public subnets are both specified, defaults to one gateway per availability zone. Otherwise, no gateways will be created. :param builtins.int number_of_availability_zones: A number of availability zones to which the subnets defined in subnetSpecs will be deployed. Optional, defaults to the first 3 AZs in the current region. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param Sequence['SubnetSpecArgs'] subnet_specs: A list of subnet specs that should be deployed to each AZ specified in availabilityZoneNames. Optional. Defaults to a (smaller) public subnet and a (larger) private subnet based on the size of the CIDR block for the VPC. Private subnets are allocated CIDR block ranges first, followed by Public subnets, and Isolated subnets are allocated last. :param 'SubnetAllocationStrategy' subnet_strategy: The strategy to use when allocating subnets for the VPC. Optional. Defaults to `Legacy`. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.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. @@ -99,6 +101,8 @@ def __init__(__self__, *, pulumi.set(__self__, "nat_gateways", nat_gateways) if number_of_availability_zones is not None: pulumi.set(__self__, "number_of_availability_zones", number_of_availability_zones) + if region is not None: + pulumi.set(__self__, "region", region) if subnet_specs is not None: pulumi.set(__self__, "subnet_specs", subnet_specs) if subnet_strategy is not None: @@ -300,6 +304,18 @@ def number_of_availability_zones(self) -> Optional[builtins.int]: def number_of_availability_zones(self, value: Optional[builtins.int]): pulumi.set(self, "number_of_availability_zones", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="subnetSpecs") def subnet_specs(self) -> Optional[Sequence['SubnetSpecArgs']]: @@ -373,6 +389,7 @@ def __init__(__self__, ipv6_netmask_length: Optional[pulumi.Input[builtins.int]] = None, nat_gateways: Optional[Union['NatGatewayConfigurationArgs', 'NatGatewayConfigurationArgsDict']] = None, number_of_availability_zones: Optional[builtins.int] = None, + region: Optional[pulumi.Input[builtins.str]] = None, subnet_specs: Optional[Sequence[Union['SubnetSpecArgs', 'SubnetSpecArgsDict']]] = None, subnet_strategy: Optional['SubnetAllocationStrategy'] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -437,6 +454,7 @@ def __init__(__self__, :param pulumi.Input[builtins.int] ipv6_netmask_length: Netmask length to request from IPAM Pool. Conflicts with `ipv6_cidr_block`. This can be omitted if IPAM pool as a `allocation_default_netmask_length` set. Valid values are from `44` to `60` in increments of 4. :param Union['NatGatewayConfigurationArgs', 'NatGatewayConfigurationArgsDict'] nat_gateways: Configuration for NAT Gateways. Optional. If private and public subnets are both specified, defaults to one gateway per availability zone. Otherwise, no gateways will be created. :param builtins.int number_of_availability_zones: A number of availability zones to which the subnets defined in subnetSpecs will be deployed. Optional, defaults to the first 3 AZs in the current region. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param Sequence[Union['SubnetSpecArgs', 'SubnetSpecArgsDict']] subnet_specs: A list of subnet specs that should be deployed to each AZ specified in availabilityZoneNames. Optional. Defaults to a (smaller) public subnet and a (larger) private subnet based on the size of the CIDR block for the VPC. Private subnets are allocated CIDR block ranges first, followed by Public subnets, and Isolated subnets are allocated last. :param 'SubnetAllocationStrategy' subnet_strategy: The strategy to use when allocating subnets for the VPC. Optional. Defaults to `Legacy`. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.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. @@ -520,6 +538,7 @@ def _internal_init(__self__, ipv6_netmask_length: Optional[pulumi.Input[builtins.int]] = None, nat_gateways: Optional[Union['NatGatewayConfigurationArgs', 'NatGatewayConfigurationArgsDict']] = None, number_of_availability_zones: Optional[builtins.int] = None, + region: Optional[pulumi.Input[builtins.str]] = None, subnet_specs: Optional[Sequence[Union['SubnetSpecArgs', 'SubnetSpecArgsDict']]] = None, subnet_strategy: Optional['SubnetAllocationStrategy'] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -551,6 +570,7 @@ def _internal_init(__self__, __props__.__dict__["ipv6_netmask_length"] = ipv6_netmask_length __props__.__dict__["nat_gateways"] = nat_gateways __props__.__dict__["number_of_availability_zones"] = number_of_availability_zones + __props__.__dict__["region"] = region __props__.__dict__["subnet_specs"] = subnet_specs __props__.__dict__["subnet_strategy"] = subnet_strategy __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_awsx/ecr/repository.py b/sdk/python/pulumi_awsx/ecr/repository.py index e49a7709c..5095735d5 100644 --- a/sdk/python/pulumi_awsx/ecr/repository.py +++ b/sdk/python/pulumi_awsx/ecr/repository.py @@ -29,6 +29,7 @@ def __init__(__self__, *, image_tag_mutability: Optional[pulumi.Input[builtins.str]] = None, lifecycle_policy: Optional['LifecyclePolicyArgs'] = None, name: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None): """ The set of arguments for constructing a Repository resource. @@ -39,6 +40,7 @@ def __init__(__self__, *, :param pulumi.Input[builtins.str] image_tag_mutability: The tag mutability setting for the repository. Must be one of: `MUTABLE` or `IMMUTABLE`. Defaults to `MUTABLE`. :param 'LifecyclePolicyArgs' lifecycle_policy: A lifecycle policy consists of one or more rules that determine which images in a repository should be expired. If not provided, this will default to untagged images expiring after 1 day. :param pulumi.Input[builtins.str] name: Name of the repository. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.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. """ if encryption_configurations is not None: @@ -53,6 +55,8 @@ def __init__(__self__, *, pulumi.set(__self__, "lifecycle_policy", lifecycle_policy) if name is not None: pulumi.set(__self__, "name", name) + if region is not None: + pulumi.set(__self__, "region", region) if tags is not None: pulumi.set(__self__, "tags", tags) @@ -129,6 +133,18 @@ def name(self) -> Optional[pulumi.Input[builtins.str]]: def name(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]: @@ -156,6 +172,7 @@ def __init__(__self__, image_tag_mutability: Optional[pulumi.Input[builtins.str]] = None, lifecycle_policy: Optional[Union['LifecyclePolicyArgs', 'LifecyclePolicyArgsDict']] = None, name: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, __props__=None): """ @@ -172,6 +189,7 @@ def __init__(__self__, :param pulumi.Input[builtins.str] image_tag_mutability: The tag mutability setting for the repository. Must be one of: `MUTABLE` or `IMMUTABLE`. Defaults to `MUTABLE`. :param Union['LifecyclePolicyArgs', 'LifecyclePolicyArgsDict'] lifecycle_policy: A lifecycle policy consists of one or more rules that determine which images in a repository should be expired. If not provided, this will default to untagged images expiring after 1 day. :param pulumi.Input[builtins.str] name: Name of the repository. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.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. """ ... @@ -206,6 +224,7 @@ def _internal_init(__self__, image_tag_mutability: Optional[pulumi.Input[builtins.str]] = None, lifecycle_policy: Optional[Union['LifecyclePolicyArgs', 'LifecyclePolicyArgsDict']] = None, name: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -224,6 +243,7 @@ def _internal_init(__self__, __props__.__dict__["image_tag_mutability"] = image_tag_mutability __props__.__dict__["lifecycle_policy"] = lifecycle_policy __props__.__dict__["name"] = name + __props__.__dict__["region"] = region __props__.__dict__["tags"] = tags __props__.__dict__["repository"] = None __props__.__dict__["url"] = None diff --git a/sdk/python/pulumi_awsx/ecs/_inputs.py b/sdk/python/pulumi_awsx/ecs/_inputs.py index 93827fad6..85cf0730c 100644 --- a/sdk/python/pulumi_awsx/ecs/_inputs.py +++ b/sdk/python/pulumi_awsx/ecs/_inputs.py @@ -92,6 +92,10 @@ class EC2ServiceTaskDefinitionArgsDict(TypedDict): """ The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] """ + enable_fault_injection: NotRequired[pulumi.Input[builtins.bool]] + """ + Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + """ ephemeral_storage: NotRequired[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgsDict']] """ The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. @@ -105,10 +109,6 @@ class EC2ServiceTaskDefinitionArgsDict(TypedDict): """ An optional unique name for your task definition. If not specified, then a default will be created. """ - inference_accelerators: NotRequired[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgsDict']]]] - """ - Configuration block(s) with Inference Accelerators settings. Detailed below. - """ ipc_mode: NotRequired[pulumi.Input[builtins.str]] """ IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. @@ -138,6 +138,10 @@ class EC2ServiceTaskDefinitionArgsDict(TypedDict): """ Configuration block for the App Mesh proxy. Detailed below. """ + region: NotRequired[pulumi.Input[builtins.str]] + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ runtime_platform: NotRequired[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgsDict']] """ Configuration block for runtime_platform that containers in your task may use. @@ -162,6 +166,10 @@ class EC2ServiceTaskDefinitionArgsDict(TypedDict): volumes: NotRequired[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgsDict']]]] """ Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ elif False: EC2ServiceTaskDefinitionArgsDict: TypeAlias = Mapping[str, Any] @@ -172,10 +180,10 @@ def __init__(__self__, *, container: Optional['TaskDefinitionContainerDefinitionArgs'] = None, containers: Optional[Mapping[str, 'TaskDefinitionContainerDefinitionArgs']] = None, cpu: Optional[pulumi.Input[builtins.str]] = None, + enable_fault_injection: Optional[pulumi.Input[builtins.bool]] = None, ephemeral_storage: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']] = None, execution_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, family: Optional[pulumi.Input[builtins.str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]] = None, ipc_mode: Optional[pulumi.Input[builtins.str]] = None, log_group: Optional['_awsx.DefaultLogGroupArgs'] = None, memory: Optional[pulumi.Input[builtins.str]] = None, @@ -183,6 +191,7 @@ def __init__(__self__, *, pid_mode: Optional[pulumi.Input[builtins.str]] = None, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]] = None, proxy_configuration: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']] = None, + region: Optional[pulumi.Input[builtins.str]] = None, runtime_platform: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']] = None, skip_destroy: Optional[pulumi.Input[builtins.bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -202,11 +211,11 @@ def __init__(__self__, *, Either [container] or [containers] must be provided. :param pulumi.Input[builtins.str] cpu: The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + :param pulumi.Input[builtins.bool] enable_fault_injection: Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs'] ephemeral_storage: The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. :param '_awsx.DefaultRoleWithPolicyArgs' execution_role: The execution role that the Amazon ECS container agent and the Docker daemon can assume. Will be created automatically if not defined. :param pulumi.Input[builtins.str] family: An optional unique name for your task definition. If not specified, then a default will be created. - :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]] inference_accelerators: Configuration block(s) with Inference Accelerators settings. Detailed below. :param pulumi.Input[builtins.str] ipc_mode: IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. :param '_awsx.DefaultLogGroupArgs' log_group: A set of volume blocks that containers in your task may use. :param pulumi.Input[builtins.str] memory: The amount (in MiB) of memory used by the task. If not provided, a default will be computed @@ -215,6 +224,7 @@ def __init__(__self__, *, :param pulumi.Input[builtins.str] pid_mode: Process namespace to use for the containers in the task. The valid values are `host` and `task`. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]] placement_constraints: Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs'] proxy_configuration: Configuration block for the App Mesh proxy. Detailed below. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs'] runtime_platform: Configuration block for runtime_platform that containers in your task may use. :param pulumi.Input[builtins.bool] skip_destroy: Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -222,6 +232,10 @@ def __init__(__self__, *, Will be created automatically if not defined. :param pulumi.Input[builtins.bool] track_latest: Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ if container is not None: pulumi.set(__self__, "container", container) @@ -229,14 +243,14 @@ def __init__(__self__, *, pulumi.set(__self__, "containers", containers) if cpu is not None: pulumi.set(__self__, "cpu", cpu) + if enable_fault_injection is not None: + pulumi.set(__self__, "enable_fault_injection", enable_fault_injection) if ephemeral_storage is not None: pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) if execution_role is not None: pulumi.set(__self__, "execution_role", execution_role) if family is not None: pulumi.set(__self__, "family", family) - if inference_accelerators is not None: - pulumi.set(__self__, "inference_accelerators", inference_accelerators) if ipc_mode is not None: pulumi.set(__self__, "ipc_mode", ipc_mode) if log_group is not None: @@ -251,6 +265,8 @@ def __init__(__self__, *, pulumi.set(__self__, "placement_constraints", placement_constraints) if proxy_configuration is not None: pulumi.set(__self__, "proxy_configuration", proxy_configuration) + if region is not None: + pulumi.set(__self__, "region", region) if runtime_platform is not None: pulumi.set(__self__, "runtime_platform", runtime_platform) if skip_destroy is not None: @@ -306,6 +322,18 @@ def cpu(self) -> Optional[pulumi.Input[builtins.str]]: def cpu(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "cpu", value) + @property + @pulumi.getter(name="enableFaultInjection") + def enable_fault_injection(self) -> Optional[pulumi.Input[builtins.bool]]: + """ + Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + """ + return pulumi.get(self, "enable_fault_injection") + + @enable_fault_injection.setter + def enable_fault_injection(self, value: Optional[pulumi.Input[builtins.bool]]): + pulumi.set(self, "enable_fault_injection", value) + @property @pulumi.getter(name="ephemeralStorage") def ephemeral_storage(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']]: @@ -343,18 +371,6 @@ def family(self) -> Optional[pulumi.Input[builtins.str]]: def family(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "family", value) - @property - @pulumi.getter(name="inferenceAccelerators") - def inference_accelerators(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]: - """ - Configuration block(s) with Inference Accelerators settings. Detailed below. - """ - return pulumi.get(self, "inference_accelerators") - - @inference_accelerators.setter - def inference_accelerators(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]): - pulumi.set(self, "inference_accelerators", value) - @property @pulumi.getter(name="ipcMode") def ipc_mode(self) -> Optional[pulumi.Input[builtins.str]]: @@ -440,6 +456,18 @@ def proxy_configuration(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefin def proxy_configuration(self, value: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']]): pulumi.set(self, "proxy_configuration", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="runtimePlatform") def runtime_platform(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']]: @@ -506,6 +534,10 @@ def track_latest(self, value: Optional[pulumi.Input[builtins.bool]]): def volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]]]: """ Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ return pulumi.get(self, "volumes") @@ -539,6 +571,10 @@ class FargateServiceTaskDefinitionArgsDict(TypedDict): """ The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] """ + enable_fault_injection: NotRequired[pulumi.Input[builtins.bool]] + """ + Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + """ ephemeral_storage: NotRequired[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgsDict']] """ The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. @@ -552,10 +588,6 @@ class FargateServiceTaskDefinitionArgsDict(TypedDict): """ An optional unique name for your task definition. If not specified, then a default will be created. """ - inference_accelerators: NotRequired[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgsDict']]]] - """ - Configuration block(s) with Inference Accelerators settings. Detailed below. - """ ipc_mode: NotRequired[pulumi.Input[builtins.str]] """ IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. @@ -581,6 +613,10 @@ class FargateServiceTaskDefinitionArgsDict(TypedDict): """ Configuration block for the App Mesh proxy. Detailed below. """ + region: NotRequired[pulumi.Input[builtins.str]] + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ runtime_platform: NotRequired[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgsDict']] """ Configuration block for runtime_platform that containers in your task may use. @@ -605,6 +641,10 @@ class FargateServiceTaskDefinitionArgsDict(TypedDict): volumes: NotRequired[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgsDict']]]] """ Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ elif False: FargateServiceTaskDefinitionArgsDict: TypeAlias = Mapping[str, Any] @@ -615,16 +655,17 @@ def __init__(__self__, *, container: Optional['TaskDefinitionContainerDefinitionArgs'] = None, containers: Optional[Mapping[str, 'TaskDefinitionContainerDefinitionArgs']] = None, cpu: Optional[pulumi.Input[builtins.str]] = None, + enable_fault_injection: Optional[pulumi.Input[builtins.bool]] = None, ephemeral_storage: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']] = None, execution_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, family: Optional[pulumi.Input[builtins.str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]] = None, ipc_mode: Optional[pulumi.Input[builtins.str]] = None, log_group: Optional['_awsx.DefaultLogGroupArgs'] = None, memory: Optional[pulumi.Input[builtins.str]] = None, pid_mode: Optional[pulumi.Input[builtins.str]] = None, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]] = None, proxy_configuration: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']] = None, + region: Optional[pulumi.Input[builtins.str]] = None, runtime_platform: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']] = None, skip_destroy: Optional[pulumi.Input[builtins.bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -644,11 +685,11 @@ def __init__(__self__, *, Either [container] or [containers] must be provided. :param pulumi.Input[builtins.str] cpu: The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + :param pulumi.Input[builtins.bool] enable_fault_injection: Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs'] ephemeral_storage: The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. :param '_awsx.DefaultRoleWithPolicyArgs' execution_role: The execution role that the Amazon ECS container agent and the Docker daemon can assume. Will be created automatically if not defined. :param pulumi.Input[builtins.str] family: An optional unique name for your task definition. If not specified, then a default will be created. - :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]] inference_accelerators: Configuration block(s) with Inference Accelerators settings. Detailed below. :param pulumi.Input[builtins.str] ipc_mode: IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. :param '_awsx.DefaultLogGroupArgs' log_group: A set of volume blocks that containers in your task may use. :param pulumi.Input[builtins.str] memory: The amount (in MiB) of memory used by the task. If not provided, a default will be computed @@ -656,6 +697,7 @@ def __init__(__self__, *, :param pulumi.Input[builtins.str] pid_mode: Process namespace to use for the containers in the task. The valid values are `host` and `task`. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]] placement_constraints: Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs'] proxy_configuration: Configuration block for the App Mesh proxy. Detailed below. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs'] runtime_platform: Configuration block for runtime_platform that containers in your task may use. :param pulumi.Input[builtins.bool] skip_destroy: Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -663,6 +705,10 @@ def __init__(__self__, *, Will be created automatically if not defined. :param pulumi.Input[builtins.bool] track_latest: Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ if container is not None: pulumi.set(__self__, "container", container) @@ -670,14 +716,14 @@ def __init__(__self__, *, pulumi.set(__self__, "containers", containers) if cpu is not None: pulumi.set(__self__, "cpu", cpu) + if enable_fault_injection is not None: + pulumi.set(__self__, "enable_fault_injection", enable_fault_injection) if ephemeral_storage is not None: pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) if execution_role is not None: pulumi.set(__self__, "execution_role", execution_role) if family is not None: pulumi.set(__self__, "family", family) - if inference_accelerators is not None: - pulumi.set(__self__, "inference_accelerators", inference_accelerators) if ipc_mode is not None: pulumi.set(__self__, "ipc_mode", ipc_mode) if log_group is not None: @@ -690,6 +736,8 @@ def __init__(__self__, *, pulumi.set(__self__, "placement_constraints", placement_constraints) if proxy_configuration is not None: pulumi.set(__self__, "proxy_configuration", proxy_configuration) + if region is not None: + pulumi.set(__self__, "region", region) if runtime_platform is not None: pulumi.set(__self__, "runtime_platform", runtime_platform) if skip_destroy is not None: @@ -745,6 +793,18 @@ def cpu(self) -> Optional[pulumi.Input[builtins.str]]: def cpu(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "cpu", value) + @property + @pulumi.getter(name="enableFaultInjection") + def enable_fault_injection(self) -> Optional[pulumi.Input[builtins.bool]]: + """ + Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + """ + return pulumi.get(self, "enable_fault_injection") + + @enable_fault_injection.setter + def enable_fault_injection(self, value: Optional[pulumi.Input[builtins.bool]]): + pulumi.set(self, "enable_fault_injection", value) + @property @pulumi.getter(name="ephemeralStorage") def ephemeral_storage(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']]: @@ -782,18 +842,6 @@ def family(self) -> Optional[pulumi.Input[builtins.str]]: def family(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "family", value) - @property - @pulumi.getter(name="inferenceAccelerators") - def inference_accelerators(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]: - """ - Configuration block(s) with Inference Accelerators settings. Detailed below. - """ - return pulumi.get(self, "inference_accelerators") - - @inference_accelerators.setter - def inference_accelerators(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]): - pulumi.set(self, "inference_accelerators", value) - @property @pulumi.getter(name="ipcMode") def ipc_mode(self) -> Optional[pulumi.Input[builtins.str]]: @@ -867,6 +915,18 @@ def proxy_configuration(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefin def proxy_configuration(self, value: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']]): pulumi.set(self, "proxy_configuration", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="runtimePlatform") def runtime_platform(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']]: @@ -933,6 +993,10 @@ def track_latest(self, value: Optional[pulumi.Input[builtins.bool]]): def volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]]]: """ Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ return pulumi.get(self, "volumes") diff --git a/sdk/python/pulumi_awsx/ecs/ec2_service.py b/sdk/python/pulumi_awsx/ecs/ec2_service.py index 9265dcaac..ced6b47d4 100644 --- a/sdk/python/pulumi_awsx/ecs/ec2_service.py +++ b/sdk/python/pulumi_awsx/ecs/ec2_service.py @@ -47,6 +47,7 @@ def __init__(__self__, *, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.ServicePlacementConstraintArgs']]]] = None, platform_version: Optional[pulumi.Input[builtins.str]] = None, propagate_tags: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, scheduling_strategy: Optional[pulumi.Input[builtins.str]] = None, service_connect_configuration: Optional[pulumi.Input['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs']] = None, service_registries: Optional[pulumi.Input['pulumi_aws.ecs.ServiceServiceRegistriesArgs']] = None, @@ -84,6 +85,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.ServicePlacementConstraintArgs']]] placement_constraints: Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below. :param pulumi.Input[builtins.str] platform_version: Platform version on which to run your service. Only applicable for `launch_type` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). :param pulumi.Input[builtins.str] propagate_tags: Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[builtins.str] scheduling_strategy: Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). :param pulumi.Input['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs'] service_connect_configuration: ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. :param pulumi.Input['pulumi_aws.ecs.ServiceServiceRegistriesArgs'] service_registries: Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below. @@ -140,6 +142,8 @@ def __init__(__self__, *, pulumi.set(__self__, "platform_version", platform_version) if propagate_tags is not None: pulumi.set(__self__, "propagate_tags", propagate_tags) + if region is not None: + pulumi.set(__self__, "region", region) if scheduling_strategy is not None: pulumi.set(__self__, "scheduling_strategy", scheduling_strategy) if service_connect_configuration is not None: @@ -438,6 +442,18 @@ def propagate_tags(self) -> Optional[pulumi.Input[builtins.str]]: def propagate_tags(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "propagate_tags", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="schedulingStrategy") def scheduling_strategy(self) -> Optional[pulumi.Input[builtins.str]]: @@ -578,6 +594,7 @@ def __init__(__self__, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServicePlacementConstraintArgs']]]]] = None, platform_version: Optional[pulumi.Input[builtins.str]] = None, propagate_tags: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, scheduling_strategy: Optional[pulumi.Input[builtins.str]] = None, service_connect_configuration: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs']]] = None, service_registries: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceRegistriesArgs']]] = None, @@ -620,6 +637,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServicePlacementConstraintArgs']]]] placement_constraints: Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below. :param pulumi.Input[builtins.str] platform_version: Platform version on which to run your service. Only applicable for `launch_type` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). :param pulumi.Input[builtins.str] propagate_tags: Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[builtins.str] scheduling_strategy: Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). :param pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs']] service_connect_configuration: ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. :param pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceRegistriesArgs']] service_registries: Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below. @@ -678,6 +696,7 @@ def _internal_init(__self__, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServicePlacementConstraintArgs']]]]] = None, platform_version: Optional[pulumi.Input[builtins.str]] = None, propagate_tags: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, scheduling_strategy: Optional[pulumi.Input[builtins.str]] = None, service_connect_configuration: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs']]] = None, service_registries: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceRegistriesArgs']]] = None, @@ -721,6 +740,7 @@ def _internal_init(__self__, __props__.__dict__["placement_constraints"] = placement_constraints __props__.__dict__["platform_version"] = platform_version __props__.__dict__["propagate_tags"] = propagate_tags + __props__.__dict__["region"] = region __props__.__dict__["scheduling_strategy"] = scheduling_strategy __props__.__dict__["service_connect_configuration"] = service_connect_configuration __props__.__dict__["service_registries"] = service_registries diff --git a/sdk/python/pulumi_awsx/ecs/ec2_task_definition.py b/sdk/python/pulumi_awsx/ecs/ec2_task_definition.py index 76a5b29bc..32edf7ac6 100644 --- a/sdk/python/pulumi_awsx/ecs/ec2_task_definition.py +++ b/sdk/python/pulumi_awsx/ecs/ec2_task_definition.py @@ -27,10 +27,10 @@ def __init__(__self__, *, container: Optional['TaskDefinitionContainerDefinitionArgs'] = None, containers: Optional[Mapping[str, 'TaskDefinitionContainerDefinitionArgs']] = None, cpu: Optional[pulumi.Input[builtins.str]] = None, + enable_fault_injection: Optional[pulumi.Input[builtins.bool]] = None, ephemeral_storage: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']] = None, execution_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, family: Optional[pulumi.Input[builtins.str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]] = None, ipc_mode: Optional[pulumi.Input[builtins.str]] = None, log_group: Optional['_awsx.DefaultLogGroupArgs'] = None, memory: Optional[pulumi.Input[builtins.str]] = None, @@ -38,6 +38,7 @@ def __init__(__self__, *, pid_mode: Optional[pulumi.Input[builtins.str]] = None, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]] = None, proxy_configuration: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']] = None, + region: Optional[pulumi.Input[builtins.str]] = None, runtime_platform: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']] = None, skip_destroy: Optional[pulumi.Input[builtins.bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -55,11 +56,11 @@ def __init__(__self__, *, Either [container] or [containers] must be provided. :param pulumi.Input[builtins.str] cpu: The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + :param pulumi.Input[builtins.bool] enable_fault_injection: Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs'] ephemeral_storage: The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. :param '_awsx.DefaultRoleWithPolicyArgs' execution_role: The execution role that the Amazon ECS container agent and the Docker daemon can assume. Will be created automatically if not defined. :param pulumi.Input[builtins.str] family: An optional unique name for your task definition. If not specified, then a default will be created. - :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]] inference_accelerators: Configuration block(s) with Inference Accelerators settings. Detailed below. :param pulumi.Input[builtins.str] ipc_mode: IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. :param '_awsx.DefaultLogGroupArgs' log_group: A set of volume blocks that containers in your task may use. :param pulumi.Input[builtins.str] memory: The amount (in MiB) of memory used by the task. If not provided, a default will be computed @@ -68,6 +69,7 @@ def __init__(__self__, *, :param pulumi.Input[builtins.str] pid_mode: Process namespace to use for the containers in the task. The valid values are `host` and `task`. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]] placement_constraints: Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs'] proxy_configuration: Configuration block for the App Mesh proxy. Detailed below. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs'] runtime_platform: Configuration block for runtime_platform that containers in your task may use. :param pulumi.Input[builtins.bool] skip_destroy: Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -75,6 +77,10 @@ def __init__(__self__, *, Will be created automatically if not defined. :param pulumi.Input[builtins.bool] track_latest: Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ if container is not None: pulumi.set(__self__, "container", container) @@ -82,14 +88,14 @@ def __init__(__self__, *, pulumi.set(__self__, "containers", containers) if cpu is not None: pulumi.set(__self__, "cpu", cpu) + if enable_fault_injection is not None: + pulumi.set(__self__, "enable_fault_injection", enable_fault_injection) if ephemeral_storage is not None: pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) if execution_role is not None: pulumi.set(__self__, "execution_role", execution_role) if family is not None: pulumi.set(__self__, "family", family) - if inference_accelerators is not None: - pulumi.set(__self__, "inference_accelerators", inference_accelerators) if ipc_mode is not None: pulumi.set(__self__, "ipc_mode", ipc_mode) if log_group is not None: @@ -104,6 +110,8 @@ def __init__(__self__, *, pulumi.set(__self__, "placement_constraints", placement_constraints) if proxy_configuration is not None: pulumi.set(__self__, "proxy_configuration", proxy_configuration) + if region is not None: + pulumi.set(__self__, "region", region) if runtime_platform is not None: pulumi.set(__self__, "runtime_platform", runtime_platform) if skip_destroy is not None: @@ -159,6 +167,18 @@ def cpu(self) -> Optional[pulumi.Input[builtins.str]]: def cpu(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "cpu", value) + @property + @pulumi.getter(name="enableFaultInjection") + def enable_fault_injection(self) -> Optional[pulumi.Input[builtins.bool]]: + """ + Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + """ + return pulumi.get(self, "enable_fault_injection") + + @enable_fault_injection.setter + def enable_fault_injection(self, value: Optional[pulumi.Input[builtins.bool]]): + pulumi.set(self, "enable_fault_injection", value) + @property @pulumi.getter(name="ephemeralStorage") def ephemeral_storage(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']]: @@ -196,18 +216,6 @@ def family(self) -> Optional[pulumi.Input[builtins.str]]: def family(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "family", value) - @property - @pulumi.getter(name="inferenceAccelerators") - def inference_accelerators(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]: - """ - Configuration block(s) with Inference Accelerators settings. Detailed below. - """ - return pulumi.get(self, "inference_accelerators") - - @inference_accelerators.setter - def inference_accelerators(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]): - pulumi.set(self, "inference_accelerators", value) - @property @pulumi.getter(name="ipcMode") def ipc_mode(self) -> Optional[pulumi.Input[builtins.str]]: @@ -293,6 +301,18 @@ def proxy_configuration(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefin def proxy_configuration(self, value: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']]): pulumi.set(self, "proxy_configuration", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="runtimePlatform") def runtime_platform(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']]: @@ -359,6 +379,10 @@ def track_latest(self, value: Optional[pulumi.Input[builtins.bool]]): def volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]]]: """ Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ return pulumi.get(self, "volumes") @@ -378,10 +402,10 @@ def __init__(__self__, container: Optional[Union['TaskDefinitionContainerDefinitionArgs', 'TaskDefinitionContainerDefinitionArgsDict']] = None, containers: Optional[Mapping[str, Union['TaskDefinitionContainerDefinitionArgs', 'TaskDefinitionContainerDefinitionArgsDict']]] = None, cpu: Optional[pulumi.Input[builtins.str]] = None, + enable_fault_injection: Optional[pulumi.Input[builtins.bool]] = None, ephemeral_storage: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']]] = None, execution_role: Optional[Union['_awsx.DefaultRoleWithPolicyArgs', '_awsx.DefaultRoleWithPolicyArgsDict']] = None, family: Optional[pulumi.Input[builtins.str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]] = None, ipc_mode: Optional[pulumi.Input[builtins.str]] = None, log_group: Optional[Union['_awsx.DefaultLogGroupArgs', '_awsx.DefaultLogGroupArgsDict']] = None, memory: Optional[pulumi.Input[builtins.str]] = None, @@ -389,6 +413,7 @@ def __init__(__self__, pid_mode: Optional[pulumi.Input[builtins.str]] = None, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]]] = None, proxy_configuration: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, runtime_platform: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']]] = None, skip_destroy: Optional[pulumi.Input[builtins.bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -412,11 +437,11 @@ def __init__(__self__, Either [container] or [containers] must be provided. :param pulumi.Input[builtins.str] cpu: The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + :param pulumi.Input[builtins.bool] enable_fault_injection: Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. :param pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']] ephemeral_storage: The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. :param Union['_awsx.DefaultRoleWithPolicyArgs', '_awsx.DefaultRoleWithPolicyArgsDict'] execution_role: The execution role that the Amazon ECS container agent and the Docker daemon can assume. Will be created automatically if not defined. :param pulumi.Input[builtins.str] family: An optional unique name for your task definition. If not specified, then a default will be created. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]] inference_accelerators: Configuration block(s) with Inference Accelerators settings. Detailed below. :param pulumi.Input[builtins.str] ipc_mode: IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. :param Union['_awsx.DefaultLogGroupArgs', '_awsx.DefaultLogGroupArgsDict'] log_group: A set of volume blocks that containers in your task may use. :param pulumi.Input[builtins.str] memory: The amount (in MiB) of memory used by the task. If not provided, a default will be computed @@ -425,6 +450,7 @@ def __init__(__self__, :param pulumi.Input[builtins.str] pid_mode: Process namespace to use for the containers in the task. The valid values are `host` and `task`. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]] placement_constraints: Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. :param pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']] proxy_configuration: Configuration block for the App Mesh proxy. Detailed below. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']] runtime_platform: Configuration block for runtime_platform that containers in your task may use. :param pulumi.Input[builtins.bool] skip_destroy: Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -432,6 +458,10 @@ def __init__(__self__, Will be created automatically if not defined. :param pulumi.Input[builtins.bool] track_latest: Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ ... @overload @@ -462,10 +492,10 @@ def _internal_init(__self__, container: Optional[Union['TaskDefinitionContainerDefinitionArgs', 'TaskDefinitionContainerDefinitionArgsDict']] = None, containers: Optional[Mapping[str, Union['TaskDefinitionContainerDefinitionArgs', 'TaskDefinitionContainerDefinitionArgsDict']]] = None, cpu: Optional[pulumi.Input[builtins.str]] = None, + enable_fault_injection: Optional[pulumi.Input[builtins.bool]] = None, ephemeral_storage: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']]] = None, execution_role: Optional[Union['_awsx.DefaultRoleWithPolicyArgs', '_awsx.DefaultRoleWithPolicyArgsDict']] = None, family: Optional[pulumi.Input[builtins.str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]] = None, ipc_mode: Optional[pulumi.Input[builtins.str]] = None, log_group: Optional[Union['_awsx.DefaultLogGroupArgs', '_awsx.DefaultLogGroupArgsDict']] = None, memory: Optional[pulumi.Input[builtins.str]] = None, @@ -473,6 +503,7 @@ def _internal_init(__self__, pid_mode: Optional[pulumi.Input[builtins.str]] = None, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]]] = None, proxy_configuration: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, runtime_platform: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']]] = None, skip_destroy: Optional[pulumi.Input[builtins.bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -493,10 +524,10 @@ def _internal_init(__self__, __props__.__dict__["container"] = container __props__.__dict__["containers"] = containers __props__.__dict__["cpu"] = cpu + __props__.__dict__["enable_fault_injection"] = enable_fault_injection __props__.__dict__["ephemeral_storage"] = ephemeral_storage __props__.__dict__["execution_role"] = execution_role __props__.__dict__["family"] = family - __props__.__dict__["inference_accelerators"] = inference_accelerators __props__.__dict__["ipc_mode"] = ipc_mode __props__.__dict__["log_group"] = log_group __props__.__dict__["memory"] = memory @@ -504,6 +535,7 @@ def _internal_init(__self__, __props__.__dict__["pid_mode"] = pid_mode __props__.__dict__["placement_constraints"] = placement_constraints __props__.__dict__["proxy_configuration"] = proxy_configuration + __props__.__dict__["region"] = region __props__.__dict__["runtime_platform"] = runtime_platform __props__.__dict__["skip_destroy"] = skip_destroy __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_awsx/ecs/fargate_service.py b/sdk/python/pulumi_awsx/ecs/fargate_service.py index 806e270df..1133f1752 100644 --- a/sdk/python/pulumi_awsx/ecs/fargate_service.py +++ b/sdk/python/pulumi_awsx/ecs/fargate_service.py @@ -46,6 +46,7 @@ def __init__(__self__, *, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.ServicePlacementConstraintArgs']]]] = None, platform_version: Optional[pulumi.Input[builtins.str]] = None, propagate_tags: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, scheduling_strategy: Optional[pulumi.Input[builtins.str]] = None, service_connect_configuration: Optional[pulumi.Input['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs']] = None, service_registries: Optional[pulumi.Input['pulumi_aws.ecs.ServiceServiceRegistriesArgs']] = None, @@ -82,6 +83,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.ServicePlacementConstraintArgs']]] placement_constraints: Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below. :param pulumi.Input[builtins.str] platform_version: Platform version on which to run your service. Only applicable for `launch_type` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). :param pulumi.Input[builtins.str] propagate_tags: Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[builtins.str] scheduling_strategy: Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). :param pulumi.Input['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs'] service_connect_configuration: ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. :param pulumi.Input['pulumi_aws.ecs.ServiceServiceRegistriesArgs'] service_registries: Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below. @@ -136,6 +138,8 @@ def __init__(__self__, *, pulumi.set(__self__, "platform_version", platform_version) if propagate_tags is not None: pulumi.set(__self__, "propagate_tags", propagate_tags) + if region is not None: + pulumi.set(__self__, "region", region) if scheduling_strategy is not None: pulumi.set(__self__, "scheduling_strategy", scheduling_strategy) if service_connect_configuration is not None: @@ -422,6 +426,18 @@ def propagate_tags(self) -> Optional[pulumi.Input[builtins.str]]: def propagate_tags(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "propagate_tags", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="schedulingStrategy") def scheduling_strategy(self) -> Optional[pulumi.Input[builtins.str]]: @@ -561,6 +577,7 @@ def __init__(__self__, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServicePlacementConstraintArgs']]]]] = None, platform_version: Optional[pulumi.Input[builtins.str]] = None, propagate_tags: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, scheduling_strategy: Optional[pulumi.Input[builtins.str]] = None, service_connect_configuration: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs']]] = None, service_registries: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceRegistriesArgs']]] = None, @@ -602,6 +619,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServicePlacementConstraintArgs']]]] placement_constraints: Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below. :param pulumi.Input[builtins.str] platform_version: Platform version on which to run your service. Only applicable for `launch_type` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). :param pulumi.Input[builtins.str] propagate_tags: Whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[builtins.str] scheduling_strategy: Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). :param pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs']] service_connect_configuration: ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. :param pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceRegistriesArgs']] service_registries: Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below. @@ -659,6 +677,7 @@ def _internal_init(__self__, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServicePlacementConstraintArgs']]]]] = None, platform_version: Optional[pulumi.Input[builtins.str]] = None, propagate_tags: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, scheduling_strategy: Optional[pulumi.Input[builtins.str]] = None, service_connect_configuration: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs']]] = None, service_registries: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.ServiceServiceRegistriesArgs']]] = None, @@ -701,6 +720,7 @@ def _internal_init(__self__, __props__.__dict__["placement_constraints"] = placement_constraints __props__.__dict__["platform_version"] = platform_version __props__.__dict__["propagate_tags"] = propagate_tags + __props__.__dict__["region"] = region __props__.__dict__["scheduling_strategy"] = scheduling_strategy __props__.__dict__["service_connect_configuration"] = service_connect_configuration __props__.__dict__["service_registries"] = service_registries diff --git a/sdk/python/pulumi_awsx/ecs/fargate_task_definition.py b/sdk/python/pulumi_awsx/ecs/fargate_task_definition.py index e9ee633f0..783546066 100644 --- a/sdk/python/pulumi_awsx/ecs/fargate_task_definition.py +++ b/sdk/python/pulumi_awsx/ecs/fargate_task_definition.py @@ -27,16 +27,17 @@ def __init__(__self__, *, container: Optional['TaskDefinitionContainerDefinitionArgs'] = None, containers: Optional[Mapping[str, 'TaskDefinitionContainerDefinitionArgs']] = None, cpu: Optional[pulumi.Input[builtins.str]] = None, + enable_fault_injection: Optional[pulumi.Input[builtins.bool]] = None, ephemeral_storage: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']] = None, execution_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, family: Optional[pulumi.Input[builtins.str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]] = None, ipc_mode: Optional[pulumi.Input[builtins.str]] = None, log_group: Optional['_awsx.DefaultLogGroupArgs'] = None, memory: Optional[pulumi.Input[builtins.str]] = None, pid_mode: Optional[pulumi.Input[builtins.str]] = None, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]] = None, proxy_configuration: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']] = None, + region: Optional[pulumi.Input[builtins.str]] = None, runtime_platform: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']] = None, skip_destroy: Optional[pulumi.Input[builtins.bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -54,11 +55,11 @@ def __init__(__self__, *, Either [container] or [containers] must be provided. :param pulumi.Input[builtins.str] cpu: The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + :param pulumi.Input[builtins.bool] enable_fault_injection: Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs'] ephemeral_storage: The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. :param '_awsx.DefaultRoleWithPolicyArgs' execution_role: The execution role that the Amazon ECS container agent and the Docker daemon can assume. Will be created automatically if not defined. :param pulumi.Input[builtins.str] family: An optional unique name for your task definition. If not specified, then a default will be created. - :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]] inference_accelerators: Configuration block(s) with Inference Accelerators settings. Detailed below. :param pulumi.Input[builtins.str] ipc_mode: IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. :param '_awsx.DefaultLogGroupArgs' log_group: A set of volume blocks that containers in your task may use. :param pulumi.Input[builtins.str] memory: The amount (in MiB) of memory used by the task. If not provided, a default will be computed @@ -66,6 +67,7 @@ def __init__(__self__, *, :param pulumi.Input[builtins.str] pid_mode: Process namespace to use for the containers in the task. The valid values are `host` and `task`. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]] placement_constraints: Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs'] proxy_configuration: Configuration block for the App Mesh proxy. Detailed below. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs'] runtime_platform: Configuration block for runtime_platform that containers in your task may use. :param pulumi.Input[builtins.bool] skip_destroy: Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -73,6 +75,10 @@ def __init__(__self__, *, Will be created automatically if not defined. :param pulumi.Input[builtins.bool] track_latest: Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ if container is not None: pulumi.set(__self__, "container", container) @@ -80,14 +86,14 @@ def __init__(__self__, *, pulumi.set(__self__, "containers", containers) if cpu is not None: pulumi.set(__self__, "cpu", cpu) + if enable_fault_injection is not None: + pulumi.set(__self__, "enable_fault_injection", enable_fault_injection) if ephemeral_storage is not None: pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) if execution_role is not None: pulumi.set(__self__, "execution_role", execution_role) if family is not None: pulumi.set(__self__, "family", family) - if inference_accelerators is not None: - pulumi.set(__self__, "inference_accelerators", inference_accelerators) if ipc_mode is not None: pulumi.set(__self__, "ipc_mode", ipc_mode) if log_group is not None: @@ -100,6 +106,8 @@ def __init__(__self__, *, pulumi.set(__self__, "placement_constraints", placement_constraints) if proxy_configuration is not None: pulumi.set(__self__, "proxy_configuration", proxy_configuration) + if region is not None: + pulumi.set(__self__, "region", region) if runtime_platform is not None: pulumi.set(__self__, "runtime_platform", runtime_platform) if skip_destroy is not None: @@ -155,6 +163,18 @@ def cpu(self) -> Optional[pulumi.Input[builtins.str]]: def cpu(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "cpu", value) + @property + @pulumi.getter(name="enableFaultInjection") + def enable_fault_injection(self) -> Optional[pulumi.Input[builtins.bool]]: + """ + Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. + """ + return pulumi.get(self, "enable_fault_injection") + + @enable_fault_injection.setter + def enable_fault_injection(self, value: Optional[pulumi.Input[builtins.bool]]): + pulumi.set(self, "enable_fault_injection", value) + @property @pulumi.getter(name="ephemeralStorage") def ephemeral_storage(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']]: @@ -192,18 +212,6 @@ def family(self) -> Optional[pulumi.Input[builtins.str]]: def family(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "family", value) - @property - @pulumi.getter(name="inferenceAccelerators") - def inference_accelerators(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]: - """ - Configuration block(s) with Inference Accelerators settings. Detailed below. - """ - return pulumi.get(self, "inference_accelerators") - - @inference_accelerators.setter - def inference_accelerators(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]): - pulumi.set(self, "inference_accelerators", value) - @property @pulumi.getter(name="ipcMode") def ipc_mode(self) -> Optional[pulumi.Input[builtins.str]]: @@ -277,6 +285,18 @@ def proxy_configuration(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefin def proxy_configuration(self, value: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']]): pulumi.set(self, "proxy_configuration", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="runtimePlatform") def runtime_platform(self) -> Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']]: @@ -343,6 +363,10 @@ def track_latest(self, value: Optional[pulumi.Input[builtins.bool]]): def volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]]]: """ Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ return pulumi.get(self, "volumes") @@ -362,16 +386,17 @@ def __init__(__self__, container: Optional[Union['TaskDefinitionContainerDefinitionArgs', 'TaskDefinitionContainerDefinitionArgsDict']] = None, containers: Optional[Mapping[str, Union['TaskDefinitionContainerDefinitionArgs', 'TaskDefinitionContainerDefinitionArgsDict']]] = None, cpu: Optional[pulumi.Input[builtins.str]] = None, + enable_fault_injection: Optional[pulumi.Input[builtins.bool]] = None, ephemeral_storage: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']]] = None, execution_role: Optional[Union['_awsx.DefaultRoleWithPolicyArgs', '_awsx.DefaultRoleWithPolicyArgsDict']] = None, family: Optional[pulumi.Input[builtins.str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]] = None, ipc_mode: Optional[pulumi.Input[builtins.str]] = None, log_group: Optional[Union['_awsx.DefaultLogGroupArgs', '_awsx.DefaultLogGroupArgsDict']] = None, memory: Optional[pulumi.Input[builtins.str]] = None, pid_mode: Optional[pulumi.Input[builtins.str]] = None, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]]] = None, proxy_configuration: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, runtime_platform: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']]] = None, skip_destroy: Optional[pulumi.Input[builtins.bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -395,11 +420,11 @@ def __init__(__self__, Either [container] or [containers] must be provided. :param pulumi.Input[builtins.str] cpu: The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + :param pulumi.Input[builtins.bool] enable_fault_injection: Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Default is `false`. :param pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']] ephemeral_storage: The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. :param Union['_awsx.DefaultRoleWithPolicyArgs', '_awsx.DefaultRoleWithPolicyArgsDict'] execution_role: The execution role that the Amazon ECS container agent and the Docker daemon can assume. Will be created automatically if not defined. :param pulumi.Input[builtins.str] family: An optional unique name for your task definition. If not specified, then a default will be created. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]] inference_accelerators: Configuration block(s) with Inference Accelerators settings. Detailed below. :param pulumi.Input[builtins.str] ipc_mode: IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. :param Union['_awsx.DefaultLogGroupArgs', '_awsx.DefaultLogGroupArgsDict'] log_group: A set of volume blocks that containers in your task may use. :param pulumi.Input[builtins.str] memory: The amount (in MiB) of memory used by the task. If not provided, a default will be computed @@ -407,6 +432,7 @@ def __init__(__self__, :param pulumi.Input[builtins.str] pid_mode: Process namespace to use for the containers in the task. The valid values are `host` and `task`. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]] placement_constraints: Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. :param pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']] proxy_configuration: Configuration block for the App Mesh proxy. Detailed below. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']] runtime_platform: Configuration block for runtime_platform that containers in your task may use. :param pulumi.Input[builtins.bool] skip_destroy: Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -414,6 +440,10 @@ def __init__(__self__, Will be created automatically if not defined. :param pulumi.Input[builtins.bool] track_latest: Whether should track latest `ACTIVE` task definition on AWS or the one created with the resource stored in state. Default is `false`. Useful in the event the task definition is modified outside of this resource. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. + + > **NOTE:** Proper escaping is required for JSON field values containing quotes (`"`) such as `environment` values. If directly setting the JSON, they should be escaped as `\\"` in the JSON, e.g., `"value": "I \\"love\\" escaped quotes"`. If using a variable value, they should be escaped as `\\\\\\"` in the variable, e.g., `value = "I \\\\\\"love\\\\\\" escaped quotes"` in the variable and `"value": "${var.myvariable}"` in the JSON. + + > **Note:** Fault injection only works with tasks using the `awsvpc` or `host` network modes. Fault injection isn't available on Windows. """ ... @overload @@ -444,16 +474,17 @@ def _internal_init(__self__, container: Optional[Union['TaskDefinitionContainerDefinitionArgs', 'TaskDefinitionContainerDefinitionArgsDict']] = None, containers: Optional[Mapping[str, Union['TaskDefinitionContainerDefinitionArgs', 'TaskDefinitionContainerDefinitionArgsDict']]] = None, cpu: Optional[pulumi.Input[builtins.str]] = None, + enable_fault_injection: Optional[pulumi.Input[builtins.bool]] = None, ephemeral_storage: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']]] = None, execution_role: Optional[Union['_awsx.DefaultRoleWithPolicyArgs', '_awsx.DefaultRoleWithPolicyArgsDict']] = None, family: Optional[pulumi.Input[builtins.str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]]] = None, ipc_mode: Optional[pulumi.Input[builtins.str]] = None, log_group: Optional[Union['_awsx.DefaultLogGroupArgs', '_awsx.DefaultLogGroupArgsDict']] = None, memory: Optional[pulumi.Input[builtins.str]] = None, pid_mode: Optional[pulumi.Input[builtins.str]] = None, placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]]] = None, proxy_configuration: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, runtime_platform: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']]] = None, skip_destroy: Optional[pulumi.Input[builtins.bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -474,16 +505,17 @@ def _internal_init(__self__, __props__.__dict__["container"] = container __props__.__dict__["containers"] = containers __props__.__dict__["cpu"] = cpu + __props__.__dict__["enable_fault_injection"] = enable_fault_injection __props__.__dict__["ephemeral_storage"] = ephemeral_storage __props__.__dict__["execution_role"] = execution_role __props__.__dict__["family"] = family - __props__.__dict__["inference_accelerators"] = inference_accelerators __props__.__dict__["ipc_mode"] = ipc_mode __props__.__dict__["log_group"] = log_group __props__.__dict__["memory"] = memory __props__.__dict__["pid_mode"] = pid_mode __props__.__dict__["placement_constraints"] = placement_constraints __props__.__dict__["proxy_configuration"] = proxy_configuration + __props__.__dict__["region"] = region __props__.__dict__["runtime_platform"] = runtime_platform __props__.__dict__["skip_destroy"] = skip_destroy __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_awsx/lb/_inputs.py b/sdk/python/pulumi_awsx/lb/_inputs.py index f1af19fdd..b6bbddde3 100644 --- a/sdk/python/pulumi_awsx/lb/_inputs.py +++ b/sdk/python/pulumi_awsx/lb/_inputs.py @@ -107,7 +107,7 @@ class ListenerArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -171,7 +171,7 @@ class ListenerArgsDict(TypedDict): var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() .loadBalancerArn(frontEnd.arn()) - .port("443") + .port(443) .protocol("HTTPS") .sslPolicy("ELBSecurityPolicy-2016-08") .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") @@ -275,7 +275,7 @@ class ListenerArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -326,7 +326,7 @@ class ListenerArgsDict(TypedDict): public static void stack(Context ctx) { var frontEnd = new Listener("frontEnd", ListenerArgs.builder() .loadBalancerArn(frontEndAwsLb.arn()) - .port("443") + .port(443) .protocol("TLS") .sslPolicy("ELBSecurityPolicy-2016-08") .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") @@ -434,7 +434,7 @@ class ListenerArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -494,7 +494,7 @@ class ListenerArgsDict(TypedDict): var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() .loadBalancerArn(frontEnd.arn()) - .port("80") + .port(80) .protocol("HTTP") .defaultActions(ListenerDefaultActionArgs.builder() .type("redirect") @@ -606,7 +606,7 @@ class ListenerArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -666,7 +666,7 @@ class ListenerArgsDict(TypedDict): var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() .loadBalancerArn(frontEnd.arn()) - .port("80") + .port(80) .protocol("HTTP") .defaultActions(ListenerDefaultActionArgs.builder() .type("fixed-response") @@ -811,8 +811,8 @@ class ListenerArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cognito" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -904,7 +904,7 @@ class ListenerArgsDict(TypedDict): var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() .loadBalancerArn(frontEnd.arn()) - .port("80") + .port(80) .protocol("HTTP") .defaultActions( ListenerDefaultActionArgs.builder() @@ -1062,7 +1062,7 @@ class ListenerArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1136,7 +1136,7 @@ class ListenerArgsDict(TypedDict): var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() .loadBalancerArn(frontEnd.arn()) - .port("80") + .port(80) .protocol("HTTP") .defaultActions( ListenerDefaultActionArgs.builder() @@ -1299,7 +1299,7 @@ class ListenerArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1388,7 +1388,7 @@ class ListenerArgsDict(TypedDict): .protocol("GENEVE") .vpcId(exampleAwsVpc.id()) .healthCheck(TargetGroupHealthCheckArgs.builder() - .port(80) + .port("80") .protocol("HTTP") .build()) .build()); @@ -1512,7 +1512,7 @@ class ListenerArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1650,6 +1650,86 @@ class ListenerArgsDict(TypedDict): """ 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. """ + region: NotRequired[pulumi.Input[builtins.str]] + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + routing_http_request_x_amzn_mtls_clientcert_header_name: NotRequired[pulumi.Input[builtins.str]] + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + routing_http_request_x_amzn_mtls_clientcert_issuer_header_name: NotRequired[pulumi.Input[builtins.str]] + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + routing_http_request_x_amzn_mtls_clientcert_leaf_header_name: NotRequired[pulumi.Input[builtins.str]] + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name: NotRequired[pulumi.Input[builtins.str]] + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + routing_http_request_x_amzn_mtls_clientcert_subject_header_name: NotRequired[pulumi.Input[builtins.str]] + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + routing_http_request_x_amzn_mtls_clientcert_validity_header_name: NotRequired[pulumi.Input[builtins.str]] + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + routing_http_request_x_amzn_tls_cipher_suite_header_name: NotRequired[pulumi.Input[builtins.str]] + """ + Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + routing_http_request_x_amzn_tls_version_header_name: NotRequired[pulumi.Input[builtins.str]] + """ + Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + routing_http_response_access_control_allow_credentials_header_value: NotRequired[pulumi.Input[builtins.str]] + """ + Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + """ + routing_http_response_access_control_allow_headers_header_value: NotRequired[pulumi.Input[builtins.str]] + """ + Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + """ + routing_http_response_access_control_allow_methods_header_value: NotRequired[pulumi.Input[builtins.str]] + """ + Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + """ + routing_http_response_access_control_allow_origin_header_value: NotRequired[pulumi.Input[builtins.str]] + """ + Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + """ + routing_http_response_access_control_expose_headers_header_value: NotRequired[pulumi.Input[builtins.str]] + """ + Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + """ + routing_http_response_access_control_max_age_header_value: NotRequired[pulumi.Input[builtins.str]] + """ + Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + """ + routing_http_response_content_security_policy_header_value: NotRequired[pulumi.Input[builtins.str]] + """ + Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + """ + routing_http_response_server_enabled: NotRequired[pulumi.Input[builtins.bool]] + """ + Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + """ + routing_http_response_strict_transport_security_header_value: NotRequired[pulumi.Input[builtins.str]] + """ + Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + """ + routing_http_response_x_content_type_options_header_value: NotRequired[pulumi.Input[builtins.str]] + """ + Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + """ + routing_http_response_x_frame_options_header_value: NotRequired[pulumi.Input[builtins.str]] + """ + Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. + """ ssl_policy: NotRequired[pulumi.Input[builtins.str]] """ Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. @@ -1676,6 +1756,26 @@ def __init__(__self__, *, mutual_authentication: Optional[pulumi.Input['pulumi_aws.lb.ListenerMutualAuthenticationArgs']] = None, port: Optional[pulumi.Input[builtins.int]] = None, protocol: Optional[pulumi.Input[builtins.str]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, + routing_http_request_x_amzn_mtls_clientcert_header_name: Optional[pulumi.Input[builtins.str]] = None, + routing_http_request_x_amzn_mtls_clientcert_issuer_header_name: Optional[pulumi.Input[builtins.str]] = None, + routing_http_request_x_amzn_mtls_clientcert_leaf_header_name: Optional[pulumi.Input[builtins.str]] = None, + routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name: Optional[pulumi.Input[builtins.str]] = None, + routing_http_request_x_amzn_mtls_clientcert_subject_header_name: Optional[pulumi.Input[builtins.str]] = None, + routing_http_request_x_amzn_mtls_clientcert_validity_header_name: Optional[pulumi.Input[builtins.str]] = None, + routing_http_request_x_amzn_tls_cipher_suite_header_name: Optional[pulumi.Input[builtins.str]] = None, + routing_http_request_x_amzn_tls_version_header_name: Optional[pulumi.Input[builtins.str]] = None, + routing_http_response_access_control_allow_credentials_header_value: Optional[pulumi.Input[builtins.str]] = None, + routing_http_response_access_control_allow_headers_header_value: Optional[pulumi.Input[builtins.str]] = None, + routing_http_response_access_control_allow_methods_header_value: Optional[pulumi.Input[builtins.str]] = None, + routing_http_response_access_control_allow_origin_header_value: Optional[pulumi.Input[builtins.str]] = None, + routing_http_response_access_control_expose_headers_header_value: Optional[pulumi.Input[builtins.str]] = None, + routing_http_response_access_control_max_age_header_value: Optional[pulumi.Input[builtins.str]] = None, + routing_http_response_content_security_policy_header_value: Optional[pulumi.Input[builtins.str]] = None, + routing_http_response_server_enabled: Optional[pulumi.Input[builtins.bool]] = None, + routing_http_response_strict_transport_security_header_value: Optional[pulumi.Input[builtins.str]] = None, + routing_http_response_x_content_type_options_header_value: Optional[pulumi.Input[builtins.str]] = None, + routing_http_response_x_frame_options_header_value: Optional[pulumi.Input[builtins.str]] = None, ssl_policy: Optional[pulumi.Input[builtins.str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, tcp_idle_timeout_seconds: Optional[pulumi.Input[builtins.int]] = None): @@ -1759,7 +1859,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1823,7 +1923,7 @@ def __init__(__self__, *, var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() .loadBalancerArn(frontEnd.arn()) - .port("443") + .port(443) .protocol("HTTPS") .sslPolicy("ELBSecurityPolicy-2016-08") .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") @@ -1927,7 +2027,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1978,7 +2078,7 @@ def __init__(__self__, *, public static void stack(Context ctx) { var frontEnd = new Listener("frontEnd", ListenerArgs.builder() .loadBalancerArn(frontEndAwsLb.arn()) - .port("443") + .port(443) .protocol("TLS") .sslPolicy("ELBSecurityPolicy-2016-08") .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") @@ -2086,7 +2186,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -2146,7 +2246,7 @@ def __init__(__self__, *, var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() .loadBalancerArn(frontEnd.arn()) - .port("80") + .port(80) .protocol("HTTP") .defaultActions(ListenerDefaultActionArgs.builder() .type("redirect") @@ -2258,7 +2358,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -2318,7 +2418,7 @@ def __init__(__self__, *, var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() .loadBalancerArn(frontEnd.arn()) - .port("80") + .port(80) .protocol("HTTP") .defaultActions(ListenerDefaultActionArgs.builder() .type("fixed-response") @@ -2463,8 +2563,8 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cognito" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -2556,7 +2656,7 @@ def __init__(__self__, *, var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() .loadBalancerArn(frontEnd.arn()) - .port("80") + .port(80) .protocol("HTTP") .defaultActions( ListenerDefaultActionArgs.builder() @@ -2714,7 +2814,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -2788,7 +2888,7 @@ def __init__(__self__, *, var frontEndListener = new Listener("frontEndListener", ListenerArgs.builder() .loadBalancerArn(frontEnd.arn()) - .port("80") + .port(80) .protocol("HTTP") .defaultActions( ListenerDefaultActionArgs.builder() @@ -2951,7 +3051,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -3040,7 +3140,7 @@ def __init__(__self__, *, .protocol("GENEVE") .vpcId(exampleAwsVpc.id()) .healthCheck(TargetGroupHealthCheckArgs.builder() - .port(80) + .port("80") .protocol("HTTP") .build()) .build()); @@ -3164,7 +3264,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -3284,6 +3384,26 @@ def __init__(__self__, *, :param pulumi.Input['pulumi_aws.lb.ListenerMutualAuthenticationArgs'] mutual_authentication: The mutual authentication configuration information. See below. :param pulumi.Input[builtins.int] port: Port on which the load balancer is listening. Not valid for Gateway Load Balancers. :param pulumi.Input[builtins.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[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + :param pulumi.Input[builtins.str] routing_http_request_x_amzn_mtls_clientcert_header_name: Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + :param pulumi.Input[builtins.str] routing_http_request_x_amzn_mtls_clientcert_issuer_header_name: Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + :param pulumi.Input[builtins.str] routing_http_request_x_amzn_mtls_clientcert_leaf_header_name: Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + :param pulumi.Input[builtins.str] routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name: Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + :param pulumi.Input[builtins.str] routing_http_request_x_amzn_mtls_clientcert_subject_header_name: Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + :param pulumi.Input[builtins.str] routing_http_request_x_amzn_mtls_clientcert_validity_header_name: Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + :param pulumi.Input[builtins.str] routing_http_request_x_amzn_tls_cipher_suite_header_name: Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + :param pulumi.Input[builtins.str] routing_http_request_x_amzn_tls_version_header_name: Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + :param pulumi.Input[builtins.str] routing_http_response_access_control_allow_credentials_header_value: Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + :param pulumi.Input[builtins.str] routing_http_response_access_control_allow_headers_header_value: Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + :param pulumi.Input[builtins.str] routing_http_response_access_control_allow_methods_header_value: Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + :param pulumi.Input[builtins.str] routing_http_response_access_control_allow_origin_header_value: Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + :param pulumi.Input[builtins.str] routing_http_response_access_control_expose_headers_header_value: Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + :param pulumi.Input[builtins.str] routing_http_response_access_control_max_age_header_value: Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + :param pulumi.Input[builtins.str] routing_http_response_content_security_policy_header_value: Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + :param pulumi.Input[builtins.bool] routing_http_response_server_enabled: Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + :param pulumi.Input[builtins.str] routing_http_response_strict_transport_security_header_value: Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + :param pulumi.Input[builtins.str] routing_http_response_x_content_type_options_header_value: Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + :param pulumi.Input[builtins.str] routing_http_response_x_frame_options_header_value: Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. :param pulumi.Input[builtins.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[builtins.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. @@ -3302,6 +3422,46 @@ def __init__(__self__, *, pulumi.set(__self__, "port", port) if protocol is not None: pulumi.set(__self__, "protocol", protocol) + if region is not None: + pulumi.set(__self__, "region", region) + if routing_http_request_x_amzn_mtls_clientcert_header_name is not None: + pulumi.set(__self__, "routing_http_request_x_amzn_mtls_clientcert_header_name", routing_http_request_x_amzn_mtls_clientcert_header_name) + if routing_http_request_x_amzn_mtls_clientcert_issuer_header_name is not None: + pulumi.set(__self__, "routing_http_request_x_amzn_mtls_clientcert_issuer_header_name", routing_http_request_x_amzn_mtls_clientcert_issuer_header_name) + if routing_http_request_x_amzn_mtls_clientcert_leaf_header_name is not None: + pulumi.set(__self__, "routing_http_request_x_amzn_mtls_clientcert_leaf_header_name", routing_http_request_x_amzn_mtls_clientcert_leaf_header_name) + if routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name is not None: + pulumi.set(__self__, "routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name", routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name) + if routing_http_request_x_amzn_mtls_clientcert_subject_header_name is not None: + pulumi.set(__self__, "routing_http_request_x_amzn_mtls_clientcert_subject_header_name", routing_http_request_x_amzn_mtls_clientcert_subject_header_name) + if routing_http_request_x_amzn_mtls_clientcert_validity_header_name is not None: + pulumi.set(__self__, "routing_http_request_x_amzn_mtls_clientcert_validity_header_name", routing_http_request_x_amzn_mtls_clientcert_validity_header_name) + if routing_http_request_x_amzn_tls_cipher_suite_header_name is not None: + pulumi.set(__self__, "routing_http_request_x_amzn_tls_cipher_suite_header_name", routing_http_request_x_amzn_tls_cipher_suite_header_name) + if routing_http_request_x_amzn_tls_version_header_name is not None: + pulumi.set(__self__, "routing_http_request_x_amzn_tls_version_header_name", routing_http_request_x_amzn_tls_version_header_name) + if routing_http_response_access_control_allow_credentials_header_value is not None: + pulumi.set(__self__, "routing_http_response_access_control_allow_credentials_header_value", routing_http_response_access_control_allow_credentials_header_value) + if routing_http_response_access_control_allow_headers_header_value is not None: + pulumi.set(__self__, "routing_http_response_access_control_allow_headers_header_value", routing_http_response_access_control_allow_headers_header_value) + if routing_http_response_access_control_allow_methods_header_value is not None: + pulumi.set(__self__, "routing_http_response_access_control_allow_methods_header_value", routing_http_response_access_control_allow_methods_header_value) + if routing_http_response_access_control_allow_origin_header_value is not None: + pulumi.set(__self__, "routing_http_response_access_control_allow_origin_header_value", routing_http_response_access_control_allow_origin_header_value) + if routing_http_response_access_control_expose_headers_header_value is not None: + pulumi.set(__self__, "routing_http_response_access_control_expose_headers_header_value", routing_http_response_access_control_expose_headers_header_value) + if routing_http_response_access_control_max_age_header_value is not None: + pulumi.set(__self__, "routing_http_response_access_control_max_age_header_value", routing_http_response_access_control_max_age_header_value) + if routing_http_response_content_security_policy_header_value is not None: + pulumi.set(__self__, "routing_http_response_content_security_policy_header_value", routing_http_response_content_security_policy_header_value) + if routing_http_response_server_enabled is not None: + pulumi.set(__self__, "routing_http_response_server_enabled", routing_http_response_server_enabled) + if routing_http_response_strict_transport_security_header_value is not None: + pulumi.set(__self__, "routing_http_response_strict_transport_security_header_value", routing_http_response_strict_transport_security_header_value) + if routing_http_response_x_content_type_options_header_value is not None: + pulumi.set(__self__, "routing_http_response_x_content_type_options_header_value", routing_http_response_x_content_type_options_header_value) + if routing_http_response_x_frame_options_header_value is not None: + pulumi.set(__self__, "routing_http_response_x_frame_options_header_value", routing_http_response_x_frame_options_header_value) if ssl_policy is not None: pulumi.set(__self__, "ssl_policy", ssl_policy) if tags is not None: @@ -3381,6 +3541,246 @@ def protocol(self) -> Optional[pulumi.Input[builtins.str]]: def protocol(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "protocol", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="routingHttpRequestXAmznMtlsClientcertHeaderName") + def routing_http_request_x_amzn_mtls_clientcert_header_name(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + return pulumi.get(self, "routing_http_request_x_amzn_mtls_clientcert_header_name") + + @routing_http_request_x_amzn_mtls_clientcert_header_name.setter + def routing_http_request_x_amzn_mtls_clientcert_header_name(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_request_x_amzn_mtls_clientcert_header_name", value) + + @property + @pulumi.getter(name="routingHttpRequestXAmznMtlsClientcertIssuerHeaderName") + def routing_http_request_x_amzn_mtls_clientcert_issuer_header_name(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Issuer` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + return pulumi.get(self, "routing_http_request_x_amzn_mtls_clientcert_issuer_header_name") + + @routing_http_request_x_amzn_mtls_clientcert_issuer_header_name.setter + def routing_http_request_x_amzn_mtls_clientcert_issuer_header_name(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_request_x_amzn_mtls_clientcert_issuer_header_name", value) + + @property + @pulumi.getter(name="routingHttpRequestXAmznMtlsClientcertLeafHeaderName") + def routing_http_request_x_amzn_mtls_clientcert_leaf_header_name(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Leaf` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + return pulumi.get(self, "routing_http_request_x_amzn_mtls_clientcert_leaf_header_name") + + @routing_http_request_x_amzn_mtls_clientcert_leaf_header_name.setter + def routing_http_request_x_amzn_mtls_clientcert_leaf_header_name(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_request_x_amzn_mtls_clientcert_leaf_header_name", value) + + @property + @pulumi.getter(name="routingHttpRequestXAmznMtlsClientcertSerialNumberHeaderName") + def routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Serial-Number` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + return pulumi.get(self, "routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name") + + @routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name.setter + def routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_request_x_amzn_mtls_clientcert_serial_number_header_name", value) + + @property + @pulumi.getter(name="routingHttpRequestXAmznMtlsClientcertSubjectHeaderName") + def routing_http_request_x_amzn_mtls_clientcert_subject_header_name(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Subject` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + return pulumi.get(self, "routing_http_request_x_amzn_mtls_clientcert_subject_header_name") + + @routing_http_request_x_amzn_mtls_clientcert_subject_header_name.setter + def routing_http_request_x_amzn_mtls_clientcert_subject_header_name(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_request_x_amzn_mtls_clientcert_subject_header_name", value) + + @property + @pulumi.getter(name="routingHttpRequestXAmznMtlsClientcertValidityHeaderName") + def routing_http_request_x_amzn_mtls_clientcert_validity_header_name(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Enables you to modify the header name of the `X-Amzn-Mtls-Clientcert-Validity` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + return pulumi.get(self, "routing_http_request_x_amzn_mtls_clientcert_validity_header_name") + + @routing_http_request_x_amzn_mtls_clientcert_validity_header_name.setter + def routing_http_request_x_amzn_mtls_clientcert_validity_header_name(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_request_x_amzn_mtls_clientcert_validity_header_name", value) + + @property + @pulumi.getter(name="routingHttpRequestXAmznTlsCipherSuiteHeaderName") + def routing_http_request_x_amzn_tls_cipher_suite_header_name(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Enables you to modify the header name of the `X-Amzn-Tls-Cipher-Suite` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + return pulumi.get(self, "routing_http_request_x_amzn_tls_cipher_suite_header_name") + + @routing_http_request_x_amzn_tls_cipher_suite_header_name.setter + def routing_http_request_x_amzn_tls_cipher_suite_header_name(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_request_x_amzn_tls_cipher_suite_header_name", value) + + @property + @pulumi.getter(name="routingHttpRequestXAmznTlsVersionHeaderName") + def routing_http_request_x_amzn_tls_version_header_name(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Enables you to modify the header name of the `X-Amzn-Tls-Version` HTTP request header. Can only be set if protocol is `HTTPS` for Application Load Balancers. + """ + return pulumi.get(self, "routing_http_request_x_amzn_tls_version_header_name") + + @routing_http_request_x_amzn_tls_version_header_name.setter + def routing_http_request_x_amzn_tls_version_header_name(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_request_x_amzn_tls_version_header_name", value) + + @property + @pulumi.getter(name="routingHttpResponseAccessControlAllowCredentialsHeaderValue") + def routing_http_response_access_control_allow_credentials_header_value(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Specifies which headers the browser can expose to the requesting client. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `true`. + """ + return pulumi.get(self, "routing_http_response_access_control_allow_credentials_header_value") + + @routing_http_response_access_control_allow_credentials_header_value.setter + def routing_http_response_access_control_allow_credentials_header_value(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_response_access_control_allow_credentials_header_value", value) + + @property + @pulumi.getter(name="routingHttpResponseAccessControlAllowHeadersHeaderValue") + def routing_http_response_access_control_allow_headers_header_value(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Specifies which headers can be used during the request. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Accept`, `Accept-Language`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, `Pragma`. Dependent on your use-case other headers can be exposed and then set as a value consult the Access-Control-Allow-Headers documentation. + """ + return pulumi.get(self, "routing_http_response_access_control_allow_headers_header_value") + + @routing_http_response_access_control_allow_headers_header_value.setter + def routing_http_response_access_control_allow_headers_header_value(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_response_access_control_allow_headers_header_value", value) + + @property + @pulumi.getter(name="routingHttpResponseAccessControlAllowMethodsHeaderValue") + def routing_http_response_access_control_allow_methods_header_value(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Set which HTTP methods are allowed when accessing the server from a different origin. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `GET`, `HEAD`, `POST`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE` or `PATCH`. + """ + return pulumi.get(self, "routing_http_response_access_control_allow_methods_header_value") + + @routing_http_response_access_control_allow_methods_header_value.setter + def routing_http_response_access_control_allow_methods_header_value(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_response_access_control_allow_methods_header_value", value) + + @property + @pulumi.getter(name="routingHttpResponseAccessControlAllowOriginHeaderValue") + def routing_http_response_access_control_allow_origin_header_value(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Specifies which origins are allowed to access the server. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. A valid value is a URI, eg: `https://example.com`. + """ + return pulumi.get(self, "routing_http_response_access_control_allow_origin_header_value") + + @routing_http_response_access_control_allow_origin_header_value.setter + def routing_http_response_access_control_allow_origin_header_value(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_response_access_control_allow_origin_header_value", value) + + @property + @pulumi.getter(name="routingHttpResponseAccessControlExposeHeadersHeaderValue") + def routing_http_response_access_control_expose_headers_header_value(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Specifies whether the browser should include credentials such as cookies or authentication when making requests. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `*`, `Cache-Control`, `Content-Language`, `Content-Length`, `Content-Type`, `Expires`, `Last-Modified`, or `Pragma`. Dependent on your use-case other headers can be exposed, consult the Access-Control-Expose-Headers documentation. + """ + return pulumi.get(self, "routing_http_response_access_control_expose_headers_header_value") + + @routing_http_response_access_control_expose_headers_header_value.setter + def routing_http_response_access_control_expose_headers_header_value(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_response_access_control_expose_headers_header_value", value) + + @property + @pulumi.getter(name="routingHttpResponseAccessControlMaxAgeHeaderValue") + def routing_http_response_access_control_max_age_header_value(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Specifies how long the results of a preflight request can be cached, in seconds. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are between `0` and `86400`. This value is browser specific, consult the Access-Control-Max-Age documentation. + """ + return pulumi.get(self, "routing_http_response_access_control_max_age_header_value") + + @routing_http_response_access_control_max_age_header_value.setter + def routing_http_response_access_control_max_age_header_value(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_response_access_control_max_age_header_value", value) + + @property + @pulumi.getter(name="routingHttpResponseContentSecurityPolicyHeaderValue") + def routing_http_response_content_security_policy_header_value(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Values for this are extensive, and can be impactful when set, consult Content-Security-Policy documentation. + """ + return pulumi.get(self, "routing_http_response_content_security_policy_header_value") + + @routing_http_response_content_security_policy_header_value.setter + def routing_http_response_content_security_policy_header_value(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_response_content_security_policy_header_value", value) + + @property + @pulumi.getter(name="routingHttpResponseServerEnabled") + def routing_http_response_server_enabled(self) -> Optional[pulumi.Input[builtins.bool]]: + """ + Enables you to allow or remove the HTTP response server header. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. Valid values are `true` or `false`. + """ + return pulumi.get(self, "routing_http_response_server_enabled") + + @routing_http_response_server_enabled.setter + def routing_http_response_server_enabled(self, value: Optional[pulumi.Input[builtins.bool]]): + pulumi.set(self, "routing_http_response_server_enabled", value) + + @property + @pulumi.getter(name="routingHttpResponseStrictTransportSecurityHeaderValue") + def routing_http_response_strict_transport_security_header_value(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS. Default values are `max-age=31536000; includeSubDomains; preload` consult the Strict-Transport-Security documentation for further details. + """ + return pulumi.get(self, "routing_http_response_strict_transport_security_header_value") + + @routing_http_response_strict_transport_security_header_value.setter + def routing_http_response_strict_transport_security_header_value(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_response_strict_transport_security_header_value", value) + + @property + @pulumi.getter(name="routingHttpResponseXContentTypeOptionsHeaderValue") + def routing_http_response_x_content_type_options_header_value(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid value is `nosniff`. + """ + return pulumi.get(self, "routing_http_response_x_content_type_options_header_value") + + @routing_http_response_x_content_type_options_header_value.setter + def routing_http_response_x_content_type_options_header_value(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_response_x_content_type_options_header_value", value) + + @property + @pulumi.getter(name="routingHttpResponseXFrameOptionsHeaderValue") + def routing_http_response_x_frame_options_header_value(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object. Can only be set if protocol is `HTTP` or `HTTPS` for Application Load Balancers. Not supported for Network Load Balancer, or with a Gateway Load Balancer. The only valid values are `DENY`, `SAMEORIGIN`, or `ALLOW-FROM https://example.com`. + """ + return pulumi.get(self, "routing_http_response_x_frame_options_header_value") + + @routing_http_response_x_frame_options_header_value.setter + def routing_http_response_x_frame_options_header_value(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "routing_http_response_x_frame_options_header_value", value) + @property @pulumi.getter(name="sslPolicy") def ssl_policy(self) -> Optional[pulumi.Input[builtins.str]]: @@ -3482,8 +3882,8 @@ class TargetGroupArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -3617,8 +4017,8 @@ class TargetGroupArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -3739,7 +4139,7 @@ class TargetGroupArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -3844,7 +4244,7 @@ class TargetGroupArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -3968,7 +4368,7 @@ class TargetGroupArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -4120,7 +4520,7 @@ class TargetGroupArgsDict(TypedDict): package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -4184,7 +4584,7 @@ class TargetGroupArgsDict(TypedDict): .minimumHealthyTargetsPercentage("off") .build()) .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder() - .minimumHealthyTargetsCount("1") + .minimumHealthyTargetsCount(1) .minimumHealthyTargetsPercentage("off") .build()) .build()) @@ -4283,6 +4683,10 @@ class TargetGroupArgsDict(TypedDict): """ Whether to enable support for proxy protocol v2 on Network Load Balancers. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol) for more information. Default is `false`. """ + region: NotRequired[pulumi.Input[builtins.str]] + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ slow_start: NotRequired[pulumi.Input[builtins.int]] """ Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. @@ -4346,6 +4750,7 @@ def __init__(__self__, *, protocol: Optional[pulumi.Input[builtins.str]] = None, protocol_version: Optional[pulumi.Input[builtins.str]] = None, proxy_protocol_v2: Optional[pulumi.Input[builtins.bool]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, slow_start: Optional[pulumi.Input[builtins.int]] = None, stickiness: Optional[pulumi.Input['pulumi_aws.lb.TargetGroupStickinessArgs']] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None, @@ -4414,8 +4819,8 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -4549,8 +4954,8 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -4671,7 +5076,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -4776,7 +5181,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -4900,7 +5305,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -5052,7 +5457,7 @@ def __init__(__self__, *, package main import ( - "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -5116,7 +5521,7 @@ def __init__(__self__, *, .minimumHealthyTargetsPercentage("off") .build()) .unhealthyStateRouting(TargetGroupTargetGroupHealthUnhealthyStateRoutingArgs.builder() - .minimumHealthyTargetsCount("1") + .minimumHealthyTargetsCount(1) .minimumHealthyTargetsPercentage("off") .build()) .build()) @@ -5170,6 +5575,7 @@ def __init__(__self__, *, Does not apply when `target_type` is `lambda`. :param pulumi.Input[builtins.str] protocol_version: Only applicable when `protocol` is `HTTP` or `HTTPS`. The protocol version. Specify `GRPC` to send requests to targets using gRPC. Specify `HTTP2` to send requests to targets using HTTP/2. The default is `HTTP1`, which sends requests to targets using HTTP/1.1 :param pulumi.Input[builtins.bool] proxy_protocol_v2: Whether to enable support for proxy protocol v2 on Network Load Balancers. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#proxy-protocol) for more information. Default is `false`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[builtins.int] slow_start: Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds. :param pulumi.Input['pulumi_aws.lb.TargetGroupStickinessArgs'] stickiness: Stickiness configuration block. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: 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. @@ -5219,6 +5625,8 @@ def __init__(__self__, *, pulumi.set(__self__, "protocol_version", protocol_version) if proxy_protocol_v2 is not None: pulumi.set(__self__, "proxy_protocol_v2", proxy_protocol_v2) + if region is not None: + pulumi.set(__self__, "region", region) if slow_start is not None: pulumi.set(__self__, "slow_start", slow_start) if stickiness is not None: @@ -5419,6 +5827,18 @@ def proxy_protocol_v2(self) -> Optional[pulumi.Input[builtins.bool]]: def proxy_protocol_v2(self, value: Optional[pulumi.Input[builtins.bool]]): pulumi.set(self, "proxy_protocol_v2", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="slowStart") def slow_start(self) -> Optional[pulumi.Input[builtins.int]]: diff --git a/sdk/python/pulumi_awsx/lb/application_load_balancer.py b/sdk/python/pulumi_awsx/lb/application_load_balancer.py index a1daed63f..f474d2aba 100644 --- a/sdk/python/pulumi_awsx/lb/application_load_balancer.py +++ b/sdk/python/pulumi_awsx/lb/application_load_balancer.py @@ -43,11 +43,14 @@ def __init__(__self__, *, idle_timeout: Optional[pulumi.Input[builtins.int]] = None, internal: Optional[pulumi.Input[builtins.bool]] = None, ip_address_type: Optional[pulumi.Input[builtins.str]] = None, + ipam_pools: Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']] = None, listener: Optional['ListenerArgs'] = None, listeners: Optional[Sequence['ListenerArgs']] = None, + minimum_load_balancer_capacity: Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']] = None, name: Optional[pulumi.Input[builtins.str]] = None, name_prefix: Optional[pulumi.Input[builtins.str]] = None, preserve_host_header: Optional[pulumi.Input[builtins.bool]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]]] = None, @@ -76,17 +79,24 @@ def __init__(__self__, *, :param pulumi.Input[builtins.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[builtins.bool] internal: If true, the LB will be internal. Defaults to `false`. :param pulumi.Input[builtins.str] ip_address_type: 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). + :param pulumi.Input['pulumi_aws.lb.LoadBalancerIpamPoolsArgs'] ipam_pools: . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. :param 'ListenerArgs' listener: A listener to create. Only one of [listener] and [listeners] can be specified. :param Sequence['ListenerArgs'] listeners: List of listeners to create. Only one of [listener] and [listeners] can be specified. + :param pulumi.Input['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs'] minimum_load_balancer_capacity: Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. :param pulumi.Input[builtins.str] name: 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`. :param pulumi.Input[builtins.str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[builtins.bool] preserve_host_header: 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`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] security_groups: 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. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] subnet_ids: 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. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]] subnet_mappings: Subnet mapping block. See below. For Load Balancers of type `network` subnet mappings can only be added. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.Subnet']]] subnets: A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: 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[builtins.str] xff_header_processing_mode: 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`. + + > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + + > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. """ if access_logs is not None: pulumi.set(__self__, "access_logs", access_logs) @@ -128,16 +138,22 @@ def __init__(__self__, *, pulumi.set(__self__, "internal", internal) if ip_address_type is not None: pulumi.set(__self__, "ip_address_type", ip_address_type) + if ipam_pools is not None: + pulumi.set(__self__, "ipam_pools", ipam_pools) if listener is not None: pulumi.set(__self__, "listener", listener) if listeners is not None: pulumi.set(__self__, "listeners", listeners) + if minimum_load_balancer_capacity is not None: + pulumi.set(__self__, "minimum_load_balancer_capacity", minimum_load_balancer_capacity) if name is not None: pulumi.set(__self__, "name", name) if name_prefix is not None: pulumi.set(__self__, "name_prefix", name_prefix) if preserve_host_header is not None: pulumi.set(__self__, "preserve_host_header", preserve_host_header) + if region is not None: + pulumi.set(__self__, "region", region) if security_groups is not None: pulumi.set(__self__, "security_groups", security_groups) if subnet_ids is not None: @@ -391,6 +407,18 @@ def ip_address_type(self) -> Optional[pulumi.Input[builtins.str]]: def ip_address_type(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "ip_address_type", value) + @property + @pulumi.getter(name="ipamPools") + def ipam_pools(self) -> Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']]: + """ + . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + """ + return pulumi.get(self, "ipam_pools") + + @ipam_pools.setter + def ipam_pools(self, value: Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']]): + pulumi.set(self, "ipam_pools", value) + @property @pulumi.getter def listener(self) -> Optional['ListenerArgs']: @@ -415,6 +443,18 @@ def listeners(self) -> Optional[Sequence['ListenerArgs']]: def listeners(self, value: Optional[Sequence['ListenerArgs']]): pulumi.set(self, "listeners", value) + @property + @pulumi.getter(name="minimumLoadBalancerCapacity") + def minimum_load_balancer_capacity(self) -> Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']]: + """ + Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + """ + return pulumi.get(self, "minimum_load_balancer_capacity") + + @minimum_load_balancer_capacity.setter + def minimum_load_balancer_capacity(self, value: Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']]): + pulumi.set(self, "minimum_load_balancer_capacity", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[builtins.str]]: @@ -451,6 +491,18 @@ def preserve_host_header(self) -> Optional[pulumi.Input[builtins.bool]]: def preserve_host_header(self, value: Optional[pulumi.Input[builtins.bool]]): pulumi.set(self, "preserve_host_header", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="securityGroups") def security_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]: @@ -516,6 +568,10 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.s def xff_header_processing_mode(self) -> Optional[pulumi.Input[builtins.str]]: """ 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`. + + > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + + > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. """ return pulumi.get(self, "xff_header_processing_mode") @@ -552,11 +608,14 @@ def __init__(__self__, idle_timeout: Optional[pulumi.Input[builtins.int]] = None, internal: Optional[pulumi.Input[builtins.bool]] = None, ip_address_type: Optional[pulumi.Input[builtins.str]] = None, + ipam_pools: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']]] = None, listener: Optional[Union['ListenerArgs', 'ListenerArgsDict']] = None, listeners: Optional[Sequence[Union['ListenerArgs', 'ListenerArgsDict']]] = None, + minimum_load_balancer_capacity: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']]] = None, name: Optional[pulumi.Input[builtins.str]] = None, name_prefix: Optional[pulumi.Input[builtins.str]] = None, preserve_host_header: Optional[pulumi.Input[builtins.bool]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]]]] = None, @@ -589,17 +648,24 @@ def __init__(__self__, :param pulumi.Input[builtins.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[builtins.bool] internal: If true, the LB will be internal. Defaults to `false`. :param pulumi.Input[builtins.str] ip_address_type: 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). + :param pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']] ipam_pools: . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. :param Union['ListenerArgs', 'ListenerArgsDict'] listener: A listener to create. Only one of [listener] and [listeners] can be specified. :param Sequence[Union['ListenerArgs', 'ListenerArgsDict']] listeners: List of listeners to create. Only one of [listener] and [listeners] can be specified. + :param pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']] minimum_load_balancer_capacity: Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. :param pulumi.Input[builtins.str] name: 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`. :param pulumi.Input[builtins.str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[builtins.bool] preserve_host_header: 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`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] security_groups: 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. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] subnet_ids: 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. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]]] subnet_mappings: Subnet mapping block. See below. For Load Balancers of type `network` subnet mappings can only be added. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.Subnet']]] subnets: A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: 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[builtins.str] xff_header_processing_mode: 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`. + + > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + + > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. """ ... @overload @@ -645,11 +711,14 @@ def _internal_init(__self__, idle_timeout: Optional[pulumi.Input[builtins.int]] = None, internal: Optional[pulumi.Input[builtins.bool]] = None, ip_address_type: Optional[pulumi.Input[builtins.str]] = None, + ipam_pools: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']]] = None, listener: Optional[Union['ListenerArgs', 'ListenerArgsDict']] = None, listeners: Optional[Sequence[Union['ListenerArgs', 'ListenerArgsDict']]] = None, + minimum_load_balancer_capacity: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']]] = None, name: Optional[pulumi.Input[builtins.str]] = None, name_prefix: Optional[pulumi.Input[builtins.str]] = None, preserve_host_header: Optional[pulumi.Input[builtins.bool]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]]]] = None, @@ -687,11 +756,14 @@ def _internal_init(__self__, __props__.__dict__["idle_timeout"] = idle_timeout __props__.__dict__["internal"] = internal __props__.__dict__["ip_address_type"] = ip_address_type + __props__.__dict__["ipam_pools"] = ipam_pools __props__.__dict__["listener"] = listener __props__.__dict__["listeners"] = listeners + __props__.__dict__["minimum_load_balancer_capacity"] = minimum_load_balancer_capacity __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix __props__.__dict__["preserve_host_header"] = preserve_host_header + __props__.__dict__["region"] = region __props__.__dict__["security_groups"] = security_groups __props__.__dict__["subnet_ids"] = subnet_ids __props__.__dict__["subnet_mappings"] = subnet_mappings diff --git a/sdk/python/pulumi_awsx/lb/network_load_balancer.py b/sdk/python/pulumi_awsx/lb/network_load_balancer.py index ae0ec442e..6c44e7ea8 100644 --- a/sdk/python/pulumi_awsx/lb/network_load_balancer.py +++ b/sdk/python/pulumi_awsx/lb/network_load_balancer.py @@ -41,11 +41,14 @@ def __init__(__self__, *, idle_timeout: Optional[pulumi.Input[builtins.int]] = None, internal: Optional[pulumi.Input[builtins.bool]] = None, ip_address_type: Optional[pulumi.Input[builtins.str]] = None, + ipam_pools: Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']] = None, listener: Optional['ListenerArgs'] = None, listeners: Optional[Sequence['ListenerArgs']] = None, + minimum_load_balancer_capacity: Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']] = None, name: Optional[pulumi.Input[builtins.str]] = None, name_prefix: Optional[pulumi.Input[builtins.str]] = None, preserve_host_header: Optional[pulumi.Input[builtins.bool]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]]] = None, @@ -73,17 +76,24 @@ def __init__(__self__, *, :param pulumi.Input[builtins.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[builtins.bool] internal: If true, the LB will be internal. Defaults to `false`. :param pulumi.Input[builtins.str] ip_address_type: 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). + :param pulumi.Input['pulumi_aws.lb.LoadBalancerIpamPoolsArgs'] ipam_pools: . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. :param 'ListenerArgs' listener: A listener to create. Only one of [listener] and [listeners] can be specified. :param Sequence['ListenerArgs'] listeners: List of listeners to create. Only one of [listener] and [listeners] can be specified. + :param pulumi.Input['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs'] minimum_load_balancer_capacity: Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. :param pulumi.Input[builtins.str] name: 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`. :param pulumi.Input[builtins.str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[builtins.bool] preserve_host_header: 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`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] security_groups: 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. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] subnet_ids: 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. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]] subnet_mappings: Subnet mapping block. See below. For Load Balancers of type `network` subnet mappings can only be added. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.Subnet']]] subnets: A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: 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[builtins.str] xff_header_processing_mode: 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`. + + > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + + > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. """ if access_logs is not None: pulumi.set(__self__, "access_logs", access_logs) @@ -123,16 +133,22 @@ def __init__(__self__, *, pulumi.set(__self__, "internal", internal) if ip_address_type is not None: pulumi.set(__self__, "ip_address_type", ip_address_type) + if ipam_pools is not None: + pulumi.set(__self__, "ipam_pools", ipam_pools) if listener is not None: pulumi.set(__self__, "listener", listener) if listeners is not None: pulumi.set(__self__, "listeners", listeners) + if minimum_load_balancer_capacity is not None: + pulumi.set(__self__, "minimum_load_balancer_capacity", minimum_load_balancer_capacity) if name is not None: pulumi.set(__self__, "name", name) if name_prefix is not None: pulumi.set(__self__, "name_prefix", name_prefix) if preserve_host_header is not None: pulumi.set(__self__, "preserve_host_header", preserve_host_header) + if region is not None: + pulumi.set(__self__, "region", region) if security_groups is not None: pulumi.set(__self__, "security_groups", security_groups) if subnet_ids is not None: @@ -374,6 +390,18 @@ def ip_address_type(self) -> Optional[pulumi.Input[builtins.str]]: def ip_address_type(self, value: Optional[pulumi.Input[builtins.str]]): pulumi.set(self, "ip_address_type", value) + @property + @pulumi.getter(name="ipamPools") + def ipam_pools(self) -> Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']]: + """ + . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. + """ + return pulumi.get(self, "ipam_pools") + + @ipam_pools.setter + def ipam_pools(self, value: Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']]): + pulumi.set(self, "ipam_pools", value) + @property @pulumi.getter def listener(self) -> Optional['ListenerArgs']: @@ -398,6 +426,18 @@ def listeners(self) -> Optional[Sequence['ListenerArgs']]: def listeners(self, value: Optional[Sequence['ListenerArgs']]): pulumi.set(self, "listeners", value) + @property + @pulumi.getter(name="minimumLoadBalancerCapacity") + def minimum_load_balancer_capacity(self) -> Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']]: + """ + Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. + """ + return pulumi.get(self, "minimum_load_balancer_capacity") + + @minimum_load_balancer_capacity.setter + def minimum_load_balancer_capacity(self, value: Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']]): + pulumi.set(self, "minimum_load_balancer_capacity", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[builtins.str]]: @@ -434,6 +474,18 @@ def preserve_host_header(self) -> Optional[pulumi.Input[builtins.bool]]: def preserve_host_header(self, value: Optional[pulumi.Input[builtins.bool]]): pulumi.set(self, "preserve_host_header", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[builtins.str]]: + """ + Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[builtins.str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="securityGroups") def security_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]: @@ -499,6 +551,10 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.s def xff_header_processing_mode(self) -> Optional[pulumi.Input[builtins.str]]: """ 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`. + + > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + + > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. """ return pulumi.get(self, "xff_header_processing_mode") @@ -534,11 +590,14 @@ def __init__(__self__, idle_timeout: Optional[pulumi.Input[builtins.int]] = None, internal: Optional[pulumi.Input[builtins.bool]] = None, ip_address_type: Optional[pulumi.Input[builtins.str]] = None, + ipam_pools: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']]] = None, listener: Optional[Union['ListenerArgs', 'ListenerArgsDict']] = None, listeners: Optional[Sequence[Union['ListenerArgs', 'ListenerArgsDict']]] = None, + minimum_load_balancer_capacity: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']]] = None, name: Optional[pulumi.Input[builtins.str]] = None, name_prefix: Optional[pulumi.Input[builtins.str]] = None, preserve_host_header: Optional[pulumi.Input[builtins.bool]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]]]] = None, @@ -570,17 +629,24 @@ def __init__(__self__, :param pulumi.Input[builtins.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[builtins.bool] internal: If true, the LB will be internal. Defaults to `false`. :param pulumi.Input[builtins.str] ip_address_type: 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). + :param pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']] ipam_pools: . The IPAM pools to use with the load balancer. Only valid for Load Balancers of type `application`. See ipam_pools for more information. :param Union['ListenerArgs', 'ListenerArgsDict'] listener: A listener to create. Only one of [listener] and [listeners] can be specified. :param Sequence[Union['ListenerArgs', 'ListenerArgsDict']] listeners: List of listeners to create. Only one of [listener] and [listeners] can be specified. + :param pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']] minimum_load_balancer_capacity: Minimum capacity for a load balancer. Only valid for Load Balancers of type `application` or `network`. :param pulumi.Input[builtins.str] name: 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`. :param pulumi.Input[builtins.str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[builtins.bool] preserve_host_header: 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`. + :param pulumi.Input[builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] security_groups: 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. :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] subnet_ids: 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. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]]] subnet_mappings: Subnet mapping block. See below. For Load Balancers of type `network` subnet mappings can only be added. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.Subnet']]] subnets: A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: 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[builtins.str] xff_header_processing_mode: 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`. + + > **NOTE:** Please note that internal LBs can only use `ipv4` as the `ip_address_type`. You can only change to `dualstack` `ip_address_type` if the selected subnets are IPv6 enabled. + + > **NOTE:** Please note that one of either `subnets` or `subnet_mapping` is required. """ ... @overload @@ -625,11 +691,14 @@ def _internal_init(__self__, idle_timeout: Optional[pulumi.Input[builtins.int]] = None, internal: Optional[pulumi.Input[builtins.bool]] = None, ip_address_type: Optional[pulumi.Input[builtins.str]] = None, + ipam_pools: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerIpamPoolsArgs']]] = None, listener: Optional[Union['ListenerArgs', 'ListenerArgsDict']] = None, listeners: Optional[Sequence[Union['ListenerArgs', 'ListenerArgsDict']]] = None, + minimum_load_balancer_capacity: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerMinimumLoadBalancerCapacityArgs']]] = None, name: Optional[pulumi.Input[builtins.str]] = None, name_prefix: Optional[pulumi.Input[builtins.str]] = None, preserve_host_header: Optional[pulumi.Input[builtins.bool]] = None, + region: Optional[pulumi.Input[builtins.str]] = None, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None, subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]]]] = None, @@ -666,11 +735,14 @@ def _internal_init(__self__, __props__.__dict__["idle_timeout"] = idle_timeout __props__.__dict__["internal"] = internal __props__.__dict__["ip_address_type"] = ip_address_type + __props__.__dict__["ipam_pools"] = ipam_pools __props__.__dict__["listener"] = listener __props__.__dict__["listeners"] = listeners + __props__.__dict__["minimum_load_balancer_capacity"] = minimum_load_balancer_capacity __props__.__dict__["name"] = name __props__.__dict__["name_prefix"] = name_prefix __props__.__dict__["preserve_host_header"] = preserve_host_header + __props__.__dict__["region"] = region __props__.__dict__["security_groups"] = security_groups __props__.__dict__["subnet_ids"] = subnet_ids __props__.__dict__["subnet_mappings"] = subnet_mappings diff --git a/sdk/python/pyproject.toml b/sdk/python/pyproject.toml index d2c94b932..820811559 100644 --- a/sdk/python/pyproject.toml +++ b/sdk/python/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "pulumi_awsx" description = "Pulumi Amazon Web Services (AWS) AWSX Components." - dependencies = ["parver>=0.2.1", "pulumi>=3.142.0,<4.0.0", "pulumi-aws>=6.0.4,<7.0.0", "pulumi-docker>=4.6.0,<5.0.0", "pulumi-docker-build>=0.0.8,<1.0.0", "semver>=2.8.1", "typing-extensions>=4.11,<5; python_version < \"3.11\""] + dependencies = ["parver>=0.2.1", "pulumi>=3.142.0,<4.0.0", "pulumi-aws>=7.0.0-alpha.2,<8.0.0", "pulumi-docker>=4.6.0,<5.0.0", "pulumi-docker-build>=0.0.8,<1.0.0", "semver>=2.8.1", "typing-extensions>=4.11,<5; python_version < \"3.11\""] keywords = ["pulumi", "aws", "awsx", "kind/component", "category/cloud"] readme = "README.md" requires-python = ">=3.9"