diff --git a/aws-ts-airflow/index.ts b/aws-ts-airflow/index.ts index 987d2f28f..e747b53f9 100644 --- a/aws-ts-airflow/index.ts +++ b/aws-ts-airflow/index.ts @@ -36,7 +36,7 @@ const db = new aws.rds.Instance("postgresdb", { dbSubnetGroupName: dbSubnets.id, vpcSecurityGroupIds: securityGroupIds, - name: "airflow", + dbName: "airflow", username: "airflow", password: dbPassword, @@ -138,3 +138,4 @@ const airflowWorkers = new awsx.classic.ecs.EC2Service("airflowworkers", { export let airflowEndpoint = airflowControllerListener.endpoint.hostname; export let flowerEndpoint = airflowerListener.endpoint.hostname; + diff --git a/aws-ts-airflow/package.json b/aws-ts-airflow/package.json index 41ee35dd1..8cca73d0d 100644 --- a/aws-ts-airflow/package.json +++ b/aws-ts-airflow/package.json @@ -4,9 +4,9 @@ "@types/node": "22.13.14" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/pulumi": "3.158.0", - "typescript": "^5.0.0" + "typescript": "^5.8.3" } } diff --git a/aws-ts-apigateway-eventbridge/index.ts b/aws-ts-apigateway-eventbridge/index.ts index 232b2764b..222025f5a 100644 --- a/aws-ts-apigateway-eventbridge/index.ts +++ b/aws-ts-apigateway-eventbridge/index.ts @@ -193,7 +193,7 @@ const stage = new aws.apigateway.Stage("stage", { // Create a Lambda function handler with permission to log to CloudWatch. const lambda = new aws.lambda.CallbackFunction("lambda", { - policies: [aws.iam.ManagedPolicies.CloudWatchLogsFullAccess], + policies: [aws.iam.ManagedPolicy.CloudWatchLogsFullAccess], callback: async (event: any) => { // For now, just log the event, including the uploaded document. @@ -219,3 +219,4 @@ const lambdaPermission = new aws.lambda.Permission("lambda-permission", { // Export the API Gateway URL to give us something to POST to. export const url = stage.invokeUrl; + diff --git a/aws-ts-apigateway-eventbridge/package.json b/aws-ts-apigateway-eventbridge/package.json index 855552243..64586d8fd 100644 --- a/aws-ts-apigateway-eventbridge/package.json +++ b/aws-ts-apigateway-eventbridge/package.json @@ -4,8 +4,9 @@ "@types/node": "22.13.14" }, "dependencies": { + "@pulumi/aws": "^7.0.0-alpha.1", + "@pulumi/awsx": "2.21.1", "@pulumi/pulumi": "3.158.0", - "@pulumi/aws": "6.73.0", - "@pulumi/awsx": "2.21.1" + "typescript": "^5.8.3" } } diff --git a/aws-ts-apigateway-lambda-serverless/index.ts b/aws-ts-apigateway-lambda-serverless/index.ts index 1c5ba0086..986865bac 100644 --- a/aws-ts-apigateway-lambda-serverless/index.ts +++ b/aws-ts-apigateway-lambda-serverless/index.ts @@ -13,7 +13,7 @@ import handler from "./handler"; // Create Lambda functions for our API const handlerFunction = new aws.lambda.CallbackFunction("get-handler", { callback: handler, - runtime: aws.lambda.Runtime.NodeJS18X, + runtime: aws.lambda.Runtime.NodeJS18dX, }); const postHandlerFunction = new aws.lambda.CallbackFunction("post-handler", { @@ -25,7 +25,7 @@ const postHandlerFunction = new aws.lambda.CallbackFunction("post-handler", { body: JSON.stringify({ message: "POST successful" }), }; }, - runtime: aws.lambda.Runtime.NodeJS18X, + runtime: aws.lambda.Runtime.NodeJS18dX, }); const deleteHandlerFunction = new aws.lambda.CallbackFunction("delete-handler", { @@ -36,7 +36,7 @@ const deleteHandlerFunction = new aws.lambda.CallbackFunction("delete-handler", body: JSON.stringify({ message: "DELETE successful" }), }; }, - runtime: aws.lambda.Runtime.NodeJS18X, + runtime: aws.lambda.Runtime.NodeJS18dX, }); // Create an API endpoint. @@ -64,3 +64,6 @@ const endpoint = new apigateway.RestAPI("hello-world", { // Pulumi exports values // See these outputs using: pulumi stack output endpointUrl export const endpointUrl = endpoint.url; + + + diff --git a/aws-ts-apigateway-lambda-serverless/package.json b/aws-ts-apigateway-lambda-serverless/package.json index a656a5378..8e7dada40 100644 --- a/aws-ts-apigateway-lambda-serverless/package.json +++ b/aws-ts-apigateway-lambda-serverless/package.json @@ -5,9 +5,10 @@ "@types/node": "22.13.14" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/aws-apigateway": "2.6.2", "@pulumi/awsx": "2.21.1", - "@pulumi/pulumi": "3.158.0" + "@pulumi/pulumi": "3.158.0", + "typescript": "^5.8.3" } } diff --git a/aws-ts-apigatewayv2-eventbridge/index.ts b/aws-ts-apigatewayv2-eventbridge/index.ts index c4bfa71ea..8e48bedb2 100644 --- a/aws-ts-apigatewayv2-eventbridge/index.ts +++ b/aws-ts-apigatewayv2-eventbridge/index.ts @@ -79,7 +79,7 @@ const route = new aws.apigatewayv2.Route("route", { // Create a Lambda function handler with permission to log to CloudWatch. const lambda = new aws.lambda.CallbackFunction("lambda", { - policies: [aws.iam.ManagedPolicies.CloudWatchLogsFullAccess], + policies: [aws.iam.ManagedPolicy.CloudWatchLogsFullAccess], callback: async (event: any) => { // For now, just log the event, including the uploaded document. diff --git a/aws-ts-apigatewayv2-eventbridge/package.json b/aws-ts-apigatewayv2-eventbridge/package.json index 1d3eaa0f2..fbc7cefac 100644 --- a/aws-ts-apigatewayv2-eventbridge/package.json +++ b/aws-ts-apigatewayv2-eventbridge/package.json @@ -4,8 +4,9 @@ "@types/node": "22.13.14" }, "dependencies": { + "@pulumi/aws": "^7.0.0-alpha.1", + "@pulumi/awsx": "2.21.1", "@pulumi/pulumi": "3.158.0", - "@pulumi/aws": "6.73.0", - "@pulumi/awsx": "2.21.1" + "typescript": "^5.8.3" } } diff --git a/aws-ts-assume-role/assume-role/index.ts b/aws-ts-assume-role/assume-role/index.ts index 56a28ad90..b0088c9ec 100644 --- a/aws-ts-assume-role/assume-role/index.ts +++ b/aws-ts-assume-role/assume-role/index.ts @@ -7,16 +7,16 @@ const config = new pulumi.Config(); const roleToAssumeARN = config.require("roleToAssumeARN"); const provider = new aws.Provider("privileged", { - assumeRole: { + assumeRoles: [{ roleArn: roleToAssumeARN, sessionName: "PulumiSession", externalId: "PulumiApplication", - }, + }], region: aws.config.requireRegion(), }); // Create an AWS resource (S3 Bucket) -const bucket = new aws.s3.BucketV2("my-bucket", {}, {provider: provider}); +const bucket = new aws.s3.Bucket("my-bucket", {}, {provider: provider}); // Export the DNS name of the bucket export const bucketName = bucket.bucketDomainName; diff --git a/aws-ts-assume-role/assume-role/package.json b/aws-ts-assume-role/assume-role/package.json index c52b4b479..51661b0d8 100644 --- a/aws-ts-assume-role/assume-role/package.json +++ b/aws-ts-assume-role/assume-role/package.json @@ -4,7 +4,8 @@ "@types/node": "22.13.14" }, "dependencies": { - "@pulumi/aws": "6.73.0", - "@pulumi/pulumi": "3.158.0" + "@pulumi/aws": "^7.0.0-alpha.1", + "@pulumi/pulumi": "3.158.0", + "typescript": "^5.8.3" } } diff --git a/aws-ts-containers-dockerbuild/package.json b/aws-ts-containers-dockerbuild/package.json index 67917132c..a71d96b09 100644 --- a/aws-ts-containers-dockerbuild/package.json +++ b/aws-ts-containers-dockerbuild/package.json @@ -2,7 +2,7 @@ "name": "aws-ts-containers-dockerbuildcloud", "main": "index.ts", "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/docker-build": "0.0.10", "@pulumi/pulumi": "3.158.0" diff --git a/aws-ts-containers-dockerbuild/tsconfig.json b/aws-ts-containers-dockerbuild/tsconfig.json new file mode 100644 index 000000000..61fe22191 --- /dev/null +++ b/aws-ts-containers-dockerbuild/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "outDir": "bin", + "target": "es2016", + "module": "commonjs", + "moduleResolution": "node", + "sourceMap": true, + "experimentalDecorators": true, + "pretty": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "forceConsistentCasingInFileNames": true, + "strictNullChecks": true + }, + "files": [ + "index.ts" + ] +} diff --git a/aws-ts-containers-dockerbuildcloud/package.json b/aws-ts-containers-dockerbuildcloud/package.json index 67917132c..a71d96b09 100644 --- a/aws-ts-containers-dockerbuildcloud/package.json +++ b/aws-ts-containers-dockerbuildcloud/package.json @@ -2,7 +2,7 @@ "name": "aws-ts-containers-dockerbuildcloud", "main": "index.ts", "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/docker-build": "0.0.10", "@pulumi/pulumi": "3.158.0" diff --git a/aws-ts-containers-dockerbuildcloud/tsconfig.json b/aws-ts-containers-dockerbuildcloud/tsconfig.json new file mode 100644 index 000000000..61fe22191 --- /dev/null +++ b/aws-ts-containers-dockerbuildcloud/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "outDir": "bin", + "target": "es2016", + "module": "commonjs", + "moduleResolution": "node", + "sourceMap": true, + "experimentalDecorators": true, + "pretty": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "forceConsistentCasingInFileNames": true, + "strictNullChecks": true + }, + "files": [ + "index.ts" + ] +} diff --git a/aws-ts-containers/package.json b/aws-ts-containers/package.json index 4e1151d56..77352b331 100644 --- a/aws-ts-containers/package.json +++ b/aws-ts-containers/package.json @@ -2,7 +2,7 @@ "name": "aws-ts-containers", "main": "index.js", "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/pulumi": "3.158.0" }, diff --git a/aws-ts-containers/tsconfig.json b/aws-ts-containers/tsconfig.json new file mode 100644 index 000000000..61fe22191 --- /dev/null +++ b/aws-ts-containers/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "outDir": "bin", + "target": "es2016", + "module": "commonjs", + "moduleResolution": "node", + "sourceMap": true, + "experimentalDecorators": true, + "pretty": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "forceConsistentCasingInFileNames": true, + "strictNullChecks": true + }, + "files": [ + "index.ts" + ] +} diff --git a/aws-ts-k8s-mern-voting-app/index.ts b/aws-ts-k8s-mern-voting-app/index.ts index 9733bfb82..bdfd276c6 100644 --- a/aws-ts-k8s-mern-voting-app/index.ts +++ b/aws-ts-k8s-mern-voting-app/index.ts @@ -19,7 +19,6 @@ const eksCluster = new eks.Cluster("eksCluster", { desiredCapacity: 3, minSize: 2, maxSize: 4, - deployDashboard: false, enabledClusterLogTypes: [ "api", "audit", diff --git a/aws-ts-k8s-mern-voting-app/package.json b/aws-ts-k8s-mern-voting-app/package.json index 4c1888686..a92d213fa 100644 --- a/aws-ts-k8s-mern-voting-app/package.json +++ b/aws-ts-k8s-mern-voting-app/package.json @@ -3,10 +3,10 @@ "version": "0.1.0", "devDependencies": { "@types/node": "22.13.14", - "typescript": "5.8.2" + "typescript": "^5.8.2" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/eks": "3.8.1", "@pulumi/pulumi": "3.158.0" diff --git a/aws-ts-k8s-voting-app/index.ts b/aws-ts-k8s-voting-app/index.ts index b47f77465..724c6b2a3 100644 --- a/aws-ts-k8s-voting-app/index.ts +++ b/aws-ts-k8s-voting-app/index.ts @@ -22,7 +22,6 @@ const eksCluster = new eks.Cluster("eksCluster", { desiredCapacity: 3, minSize: 2, maxSize: 4, - deployDashboard: false, enabledClusterLogTypes: [ "api", "audit", diff --git a/aws-ts-k8s-voting-app/package.json b/aws-ts-k8s-voting-app/package.json index 8daf3287b..98bd37903 100644 --- a/aws-ts-k8s-voting-app/package.json +++ b/aws-ts-k8s-voting-app/package.json @@ -3,10 +3,10 @@ "version": "0.1.0", "devDependencies": { "@types/node": "22.13.14", - "typescript": "5.8.2" + "typescript": "^5.8.2" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/eks": "3.8.1", "@pulumi/postgresql": "3.15.1", diff --git a/aws-ts-lambda-secrets/index.ts b/aws-ts-lambda-secrets/index.ts index b37d830f7..c97ce2d9b 100644 --- a/aws-ts-lambda-secrets/index.ts +++ b/aws-ts-lambda-secrets/index.ts @@ -11,7 +11,7 @@ interface LambdaConfig { const config = new pulumi.Config(); const lambdaconfig = config.requireObject("lambdawithsecrets"); -const secretsArnArray: pulumi.Output[] = new Array(); +const secretsArnArray: Record> = {}; const secretArray: aws.secretsmanager.Secret[] = new Array(); for (const key in lambdaconfig.secrets) { if (lambdaconfig.secrets.hasOwnProperty(key)) { diff --git a/aws-ts-lambda-secrets/package.json b/aws-ts-lambda-secrets/package.json index 8f7c0cbbb..7282d7209 100644 --- a/aws-ts-lambda-secrets/package.json +++ b/aws-ts-lambda-secrets/package.json @@ -5,7 +5,8 @@ "@types/node": "22.13.14" }, "dependencies": { + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/pulumi": "^3.0.0", - "@pulumi/aws": "^6.0.0" + "typescript": "^5.8.3" } } diff --git a/aws-ts-lambda-secrets/tsconfig.json b/aws-ts-lambda-secrets/tsconfig.json index 8addc4239..cc342ccf8 100644 --- a/aws-ts-lambda-secrets/tsconfig.json +++ b/aws-ts-lambda-secrets/tsconfig.json @@ -11,7 +11,6 @@ "noFallthroughCasesInSwitch": true, "noImplicitReturns": true, "forceConsistentCasingInFileNames": true, - "suppressImplicitAnyIndexErrors": true }, "files": [ "index.ts" diff --git a/aws-ts-lambda-slack/index.ts b/aws-ts-lambda-slack/index.ts index e7f3fabd0..cfb9e19a3 100644 --- a/aws-ts-lambda-slack/index.ts +++ b/aws-ts-lambda-slack/index.ts @@ -24,7 +24,7 @@ const lambdaRole = new aws.iam.Role("lambdaRole", { // Attach a policy to the role to allow Lambda to log to CloudWatch const rpa = new aws.iam.RolePolicyAttachment("lambdaRolePolicy", { role: lambdaRole.name, - policyArn: aws.iam.ManagedPolicies.AWSLambdaBasicExecutionRole, + policyArn: aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole, }); // Create the Lambda function @@ -89,8 +89,14 @@ const lambdaPermission = new aws.lambda.Permission("apiGatewayPermission", { // Deploy the API const deployment = new aws.apigateway.Deployment("myDeployment", { restApi: api.id, - stageName: "dev", }, { dependsOn: [rootIntegration] }); +// Create explicit stage +const stage = new aws.apigateway.Stage("dev", { + stageName: "dev", + restApi: api.id, + deployment: deployment.id, +}); + // Export the URL of the API -export const url = pulumi.interpolate`${deployment.invokeUrl}`; +export const url = stage.invokeUrl; diff --git a/aws-ts-lambda-slack/package.json b/aws-ts-lambda-slack/package.json index ff94e191e..420f0b8db 100644 --- a/aws-ts-lambda-slack/package.json +++ b/aws-ts-lambda-slack/package.json @@ -3,10 +3,10 @@ "main": "index.ts", "devDependencies": { "@types/node": "22.13.14", - "typescript": "5.8.2" + "typescript": "^5.8.2" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/pulumi": "3.158.0" } } diff --git a/aws-ts-lambda-thumbnailer/package.json b/aws-ts-lambda-thumbnailer/package.json index eb3c97b1c..a3d4b8e96 100755 --- a/aws-ts-lambda-thumbnailer/package.json +++ b/aws-ts-lambda-thumbnailer/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "main": "index.js", "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/pulumi": "3.158.0" } diff --git a/aws-ts-lambda-thumbnailer/tsconfig.json b/aws-ts-lambda-thumbnailer/tsconfig.json new file mode 100644 index 000000000..61fe22191 --- /dev/null +++ b/aws-ts-lambda-thumbnailer/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "outDir": "bin", + "target": "es2016", + "module": "commonjs", + "moduleResolution": "node", + "sourceMap": true, + "experimentalDecorators": true, + "pretty": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "forceConsistentCasingInFileNames": true, + "strictNullChecks": true + }, + "files": [ + "index.ts" + ] +} diff --git a/aws-ts-multi-language-lambda/index.ts b/aws-ts-multi-language-lambda/index.ts index 18b4f98ce..95a63592c 100644 --- a/aws-ts-multi-language-lambda/index.ts +++ b/aws-ts-multi-language-lambda/index.ts @@ -10,7 +10,7 @@ export = async () => { const role = new aws.iam.Role("lambdarole", { assumeRolePolicy: aws.iam.assumeRolePolicyForPrincipal(aws.iam.Principals.LambdaPrincipal), managedPolicyArns: [ - aws.iam.ManagedPolicies.AWSLambdaBasicExecutionRole, + aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole, ], }); diff --git a/aws-ts-multi-language-lambda/package.json b/aws-ts-multi-language-lambda/package.json index f5e673922..64b006a4c 100644 --- a/aws-ts-multi-language-lambda/package.json +++ b/aws-ts-multi-language-lambda/package.json @@ -3,10 +3,10 @@ "main": "index.ts", "devDependencies": { "@types/node": "22.13.14", - "typescript": "5.8.2" + "typescript": "^5.8.2" }, "dependencies": { - "@pulumi/aws": "^6.0.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "^2.0.2", "@pulumi/docker-build": "^0.0.10", "@pulumi/pulumi": "^3.113.0" diff --git a/aws-ts-nextjs/nextjs.ts b/aws-ts-nextjs/nextjs.ts index 6f5394e1a..387a1005d 100644 --- a/aws-ts-nextjs/nextjs.ts +++ b/aws-ts-nextjs/nextjs.ts @@ -38,7 +38,7 @@ export class NextJsSite extends pulumi.ComponentResource { pulumi.log.warn("Could not build Next.js site."); } - const bucket = new aws.s3.BucketV2(`${name}-bucket`, { + const bucket = new aws.s3.Bucket(`${name}-bucket`, { forceDestroy: true, }, { parent: this }); @@ -183,7 +183,7 @@ export class NextJsSite extends pulumi.ComponentResource { const serverFunctionRole = new aws.iam.Role(`${name}-server-function-role`, { assumeRolePolicy: aws.iam.assumeRolePolicyForPrincipal({ Service: "lambda.amazonaws.com" }), - managedPolicyArns: [aws.iam.ManagedPolicies.AWSLambdaBasicExecutionRole], + managedPolicyArns: [aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole], }, { parent: this }); const serverFunctionPolicy = new aws.iam.RolePolicy(`${name}-server-function-policy`, { @@ -245,7 +245,7 @@ export class NextJsSite extends pulumi.ComponentResource { const imageFunctionRole = new aws.iam.Role(`${name}-image-function-role`, { assumeRolePolicy: aws.iam.assumeRolePolicyForPrincipal({ Service: "lambda.amazonaws.com" }), - managedPolicyArns: [aws.iam.ManagedPolicies.AWSLambdaBasicExecutionRole], + managedPolicyArns: [aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole], }, { parent: this }); const imageFunctionPolicy = new aws.iam.RolePolicy(`${name}-image-function-policy`, { diff --git a/aws-ts-nextjs/package.json b/aws-ts-nextjs/package.json index ebd532b54..c936978f4 100644 --- a/aws-ts-nextjs/package.json +++ b/aws-ts-nextjs/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "license": "Apache-2.0", "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/pulumi": "3.158.0", "glob": "^10.0.0", "mime": "^3.0.0" @@ -12,6 +12,6 @@ "@types/glob": "8.1.0", "@types/mime": "3.0.4", "@types/node": "22.13.14", - "typescript": "5.8.2" + "typescript": "^5.8.2" } } diff --git a/aws-ts-organizations/backupPolicy.ts b/aws-ts-organizations/backupPolicy.ts index 70456e91c..de24b13cb 100644 --- a/aws-ts-organizations/backupPolicy.ts +++ b/aws-ts-organizations/backupPolicy.ts @@ -56,9 +56,9 @@ export class BackupPolicy extends pulumi.ComponentResource { const accountProvider = new aws.Provider( `${accountName}Provider`, { - assumeRole: { + assumeRoles: [{ roleArn: pulumi.interpolate`arn:aws:iam::${account.id}:role/${this.assumeRoleName}`, - }, + }], allowedAccountIds: [account.id], }, { parent: this }, diff --git a/aws-ts-organizations/index.ts b/aws-ts-organizations/index.ts index 8cf51b2df..e693b2f9b 100644 --- a/aws-ts-organizations/index.ts +++ b/aws-ts-organizations/index.ts @@ -114,9 +114,9 @@ const userPolicy = new aws.iam.UserPolicy("automationUserPolicy", { // created. const devAccountProvider = new aws.Provider("devAccountProvider", { allowedAccountIds: [devAccount.id], - assumeRole: { + assumeRoles: [{ roleArn: pulumi.interpolate`arn:aws:iam::${devAccount.id}:role/${initialRoleName}`, - }, + }], }); // Create the permissions in the target account so that developers @@ -148,7 +148,7 @@ const tagPolicies = new TagPolicies("tagPolicies", { const backupPolicy = new BackupPolicy("developmentBackupPolicy", { assumeRoleName: initialRoleName, accounts: { devAccount }, - backupRegion: aws.USEast1Region, - primaryRegions: [aws.USWest2Region], + backupRegion: aws.Region.USEast1, + primaryRegions: [aws.Region.USWest2], orgUnitId: devOrgUnit.id, }); diff --git a/aws-ts-organizations/package.json b/aws-ts-organizations/package.json index bc9801d6f..e8e543eba 100644 --- a/aws-ts-organizations/package.json +++ b/aws-ts-organizations/package.json @@ -2,10 +2,10 @@ "name": "aws-organizations", "devDependencies": { "@types/node": "22.13.14", - "typescript": "5.8.2" + "typescript": "^5.8.2" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/pulumi": "3.158.0" } diff --git a/aws-ts-pulumi-miniflux/index.ts b/aws-ts-pulumi-miniflux/index.ts index b8da449bb..45d9eee28 100644 --- a/aws-ts-pulumi-miniflux/index.ts +++ b/aws-ts-pulumi-miniflux/index.ts @@ -28,11 +28,11 @@ const cluster = new aws.ecs.Cluster("cluster", {}); // Create a new database, using the subnet and cluster groups. const db = new aws.rds.Instance("db", { engine: "postgres", - instanceClass: aws.rds.InstanceTypes.T3_Micro, + instanceClass: aws.rds.InstanceType.T3_Micro, allocatedStorage: 5, dbSubnetGroupName: subnetGroup.id, // vpcSecurityGroupIds: cluster.securityGroups.map(g => g.id), - name: dbName, + dbName: dbName, username: dbUsername, password: dbPassword, skipFinalSnapshot: true, diff --git a/aws-ts-pulumi-miniflux/package.json b/aws-ts-pulumi-miniflux/package.json index 3fe315c2d..ead50590c 100644 --- a/aws-ts-pulumi-miniflux/package.json +++ b/aws-ts-pulumi-miniflux/package.json @@ -2,10 +2,10 @@ "name": "aws-typescript", "devDependencies": { "@types/node": "22.13.14", - "typescript": "5.8.2" + "typescript": "^5.8.2" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/pulumi": "3.158.0" } diff --git a/aws-ts-redshift-glue-etl/index.ts b/aws-ts-redshift-glue-etl/index.ts index 851375bb5..e689ebfa7 100644 --- a/aws-ts-redshift-glue-etl/index.ts +++ b/aws-ts-redshift-glue-etl/index.ts @@ -17,7 +17,7 @@ const providerConfig = new pulumi.Config("aws"); const awsRegion = providerConfig.require("region"); // Create an S3 bucket to store some raw data. -const eventsBucket = new aws.s3.BucketV2("events", { +const eventsBucket = new aws.s3.Bucket("events", { forceDestroy: true, }); @@ -145,7 +145,7 @@ const glueRedshiftConnection = new aws.glue.Connection("glue-redshift-connection }); // Create an S3 bucket for Glue scripts and temporary storage. -const glueJobBucket = new aws.s3.BucketV2("glue-job-bucket", { +const glueJobBucket = new aws.s3.Bucket("glue-job-bucket", { forceDestroy: true, }); @@ -168,7 +168,7 @@ const glueJob = new aws.glue.Job("glue-job", { "--ConnectionName": glueRedshiftConnection.name, "--GlueDBName": glueDBName, - "--GlueDBTableName": eventsBucket.bucket.apply(name => name.replace("-", "_")), + "--GlueDBTableName": eventsBucket.bucket.apply((name: string) => name.replace("-", "_")), "--RedshiftDBName": clusterDBName, "--RedshiftDBTableName": "events", "--RedshiftRoleARN": redshiftRole.arn, diff --git a/aws-ts-redshift-glue-etl/package.json b/aws-ts-redshift-glue-etl/package.json index baf78a807..813e0b24a 100644 --- a/aws-ts-redshift-glue-etl/package.json +++ b/aws-ts-redshift-glue-etl/package.json @@ -3,10 +3,10 @@ "main": "index.ts", "devDependencies": { "@types/node": "22.13.14", - "typescript": "5.8.2" + "typescript": "^5.8.2" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/pulumi": "3.158.0" } diff --git a/aws-ts-s3-folder/index.ts b/aws-ts-s3-folder/index.ts index c990bfee9..3942540ed 100644 --- a/aws-ts-s3-folder/index.ts +++ b/aws-ts-s3-folder/index.ts @@ -12,7 +12,7 @@ const siteBucket = new aws.s3.Bucket("s3-website-bucket", { }, }); -const siteBucketWebsiteConfig = new aws.s3.BucketWebsiteConfigurationV2("s3-website-bucket-config", { +const siteBucketWebsiteConfig = new aws.s3.BucketWebsiteConfiguration("s3-website-bucket-config", { bucket: siteBucket.id, indexDocument: { suffix: "index.html", diff --git a/aws-ts-s3-folder/package.json b/aws-ts-s3-folder/package.json index 09fcf8c6e..09eb9e1e7 100644 --- a/aws-ts-s3-folder/package.json +++ b/aws-ts-s3-folder/package.json @@ -5,8 +5,9 @@ "@types/node": "22.13.14" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/pulumi": "3.158.0", - "mime": "^3.0.0" + "mime": "^3.0.0", + "typescript": "^5.8.3" } } diff --git a/aws-ts-scheduled-function/index.ts b/aws-ts-scheduled-function/index.ts index c9ec33602..384544f12 100644 --- a/aws-ts-scheduled-function/index.ts +++ b/aws-ts-scheduled-function/index.ts @@ -1,23 +1,23 @@ // Copyright 2016-2025, Pulumi Corporation. All rights reserved. import * as aws from "@pulumi/aws"; -import { ObjectIdentifier } from "aws-sdk/clients/s3"; +import * as awsSdk from "aws-sdk"; // Create an AWS resource (S3 Bucket) -const trashBucket = new aws.s3.BucketV2("trash"); +const trashBucket = new aws.s3.Bucket("trash"); // A handler function that will list objects in the bucket and bulk delete them const emptyTrash: aws.cloudwatch.EventRuleEventHandler = async ( event: aws.cloudwatch.EventRuleEvent, ) => { - const s3Client = new aws.sdk.S3(); + const s3Client = new awsSdk.S3(); const bucket = trashBucket.id.get(); const { Contents = [] } = await s3Client .listObjects({ Bucket: bucket }) .promise(); - const objects: ObjectIdentifier[] = Contents.map(object => { + const objects: awsSdk.S3.ObjectIdentifier[] = Contents.map(object => { return { Key: object.Key! }; }); diff --git a/aws-ts-scheduled-function/package.json b/aws-ts-scheduled-function/package.json index 083d5164b..55539ad20 100644 --- a/aws-ts-scheduled-function/package.json +++ b/aws-ts-scheduled-function/package.json @@ -4,7 +4,9 @@ "@types/node": "latest" }, "dependencies": { - "@pulumi/aws": "6.73.0", - "@pulumi/pulumi": "3.158.0" + "@pulumi/aws": "^7.0.0-alpha.1", + "@pulumi/pulumi": "3.158.0", + "aws-sdk": "^2.1691.0", + "typescript": "^5.8.3" } } diff --git a/aws-ts-serverless-raw/index.ts b/aws-ts-serverless-raw/index.ts index 172eda1d8..630cb375a 100644 --- a/aws-ts-serverless-raw/index.ts +++ b/aws-ts-serverless-raw/index.ts @@ -116,8 +116,6 @@ const restApi = new aws.apigateway.RestApi("api", { // Create a deployment of the Rest API. const deployment = new aws.apigateway.Deployment("api-deployment", { restApi: restApi, - // Note: Set to empty to avoid creating an implicit stage, we'll create it explicitly below instead. - stageName: "", }); // Create a stage, which is an addressable instance of the Rest API. Set it to point at the latest deployment. @@ -132,8 +130,8 @@ const invokePermission = new aws.lambda.Permission("api-lambda-permission", { action: "lambda:invokeFunction", function: lambda, principal: "apigateway.amazonaws.com", - sourceArn: pulumi.interpolate `${deployment.executionArn}*/*`, + sourceArn: pulumi.interpolate `${stage.executionArn}/*/*`, }); // Export the https endpoint of the running Rest API -export let endpoint = pulumi.interpolate `${deployment.invokeUrl}${stageName}`; +export let endpoint = pulumi.interpolate `${stage.invokeUrl}${stageName}`; diff --git a/aws-ts-serverless-raw/package.json b/aws-ts-serverless-raw/package.json index 82ece2596..ba5f4e8ea 100644 --- a/aws-ts-serverless-raw/package.json +++ b/aws-ts-serverless-raw/package.json @@ -2,7 +2,8 @@ "name": "serverless-raw", "version": "0.1.0", "dependencies": { - "@pulumi/aws": "6.73.0", - "@pulumi/pulumi": "3.158.0" + "@pulumi/aws": "^7.0.0-alpha.1", + "@pulumi/pulumi": "3.158.0", + "typescript": "^5.8.3" } } diff --git a/aws-ts-stackreference-architecture/database/package.json b/aws-ts-stackreference-architecture/database/package.json index 880b50413..bcd5f0070 100644 --- a/aws-ts-stackreference-architecture/database/package.json +++ b/aws-ts-stackreference-architecture/database/package.json @@ -7,7 +7,7 @@ "typescript": "5.8.2" }, "dependencies": { - "@pulumi/aws": "latest", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/pulumi": "latest", "@pulumi/random": "latest", "ip-address": "^10.0.0", diff --git a/aws-ts-stackreference-architecture/database/src/database.ts b/aws-ts-stackreference-architecture/database/src/database.ts index dff9592d5..c23e0830f 100644 --- a/aws-ts-stackreference-architecture/database/src/database.ts +++ b/aws-ts-stackreference-architecture/database/src/database.ts @@ -127,7 +127,7 @@ export class RdsInstance extends ComponentResource { parameterGroupName: args.parameterGroupName || "", password: args.password, username: args.username, - name: args.initalDbName, + dbName: args.initalDbName, storageType: args.storageType, finalSnapshotIdentifier: args.finalSnapshotIdentifier || "", skipFinalSnapshot: args.skipFinalSnapshot || false, diff --git a/aws-ts-stackreference-architecture/database/src/index.ts b/aws-ts-stackreference-architecture/database/src/index.ts index 458183545..2ec7af288 100644 --- a/aws-ts-stackreference-architecture/database/src/index.ts +++ b/aws-ts-stackreference-architecture/database/src/index.ts @@ -32,7 +32,7 @@ const rds = new RdsInstance("db-instance", { allocatedStorage: 40, engineVersion: "11.4", - instanceClass: aws.rds.InstanceTypes.R3_Large, + instanceClass: aws.rds.InstanceType.R3_Large, storageType: "gp2", finalSnapshotIdentifier: finalSnapshotIdentifier, diff --git a/aws-ts-static-website/acl.ts b/aws-ts-static-website/acl.ts index a49bf4ad0..c3e49ad0e 100644 --- a/aws-ts-static-website/acl.ts +++ b/aws-ts-static-website/acl.ts @@ -2,7 +2,7 @@ import * as aws from "@pulumi/aws"; -export function configureACL(bucketName: string, bucket: aws.s3.BucketV2, acl: string): aws.s3.BucketAclV2 { +export function configureACL(bucketName: string, bucket: aws.s3.Bucket, acl: string): aws.s3.BucketAcl { const ownership = new aws.s3.BucketOwnershipControls(bucketName, { bucket: bucket.bucket, rule: { @@ -16,7 +16,7 @@ export function configureACL(bucketName: string, bucket: aws.s3.BucketV2, acl: s ignorePublicAcls: false, restrictPublicBuckets: false, }); - const bucketACL = new aws.s3.BucketAclV2(bucketName, { + const bucketACL = new aws.s3.BucketAcl(bucketName, { bucket: bucket.bucket, acl: acl, }, { diff --git a/aws-ts-static-website/index.ts b/aws-ts-static-website/index.ts index 2339974dd..0c800ccf2 100644 --- a/aws-ts-static-website/index.ts +++ b/aws-ts-static-website/index.ts @@ -26,9 +26,9 @@ const config = { }; // contentBucket is the S3 bucket that the website's contents will be stored in. -const contentBucket = new aws.s3.BucketV2(`${config.targetDomain}-content`); +const contentBucket = new aws.s3.Bucket(`${config.targetDomain}-content`); -const contentBucketWebsite = new aws.s3.BucketWebsiteConfigurationV2("contentBucketWebsite", { +const contentBucketWebsite = new aws.s3.BucketWebsiteConfiguration("contentBucketWebsite", { bucket: contentBucket.bucket, indexDocument: {suffix: "index.html"}, errorDocument: {key: "404.html"}, @@ -71,7 +71,7 @@ crawlDirectory( }); // logsBucket is an S3 bucket that will contain the CDN's request logs. -const logsBucket = new aws.s3.BucketV2(`${config.targetDomain}-logs`); +const logsBucket = new aws.s3.Bucket(`${config.targetDomain}-logs`); configureACL("requestLogs", logsBucket, "private"); const tenMinutes = 60 * 10; diff --git a/aws-ts-static-website/package.json b/aws-ts-static-website/package.json index 15a5380b0..0cd382507 100644 --- a/aws-ts-static-website/package.json +++ b/aws-ts-static-website/package.json @@ -5,8 +5,9 @@ "@types/node": "22.13.14" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/pulumi": "3.158.0", - "mime": "^3.0.0" + "mime": "^3.0.0", + "typescript": "^5.8.3" } } diff --git a/aws-ts-synthetics-canary/index.ts b/aws-ts-synthetics-canary/index.ts index 6f3929f0a..3db8c9b39 100644 --- a/aws-ts-synthetics-canary/index.ts +++ b/aws-ts-synthetics-canary/index.ts @@ -8,7 +8,7 @@ import { generateCanaryPolicy } from "./canaryPolicy"; const baseName = "canary"; // Bucket for storing canary RESULTS -const canaryResultsS3Bucket = new aws.s3.BucketV2(`${baseName}-results`, { +const canaryResultsS3Bucket = new aws.s3.Bucket(`${baseName}-results`, { // This allows the bucket to be destroyed even if it contains canary results. forceDestroy: true, }); @@ -34,13 +34,13 @@ const canaryExecutionRole = new aws.iam.Role(`${baseName}-exec-role`, { }); const canaryExecutionPolicy = new aws.iam.RolePolicy(`${baseName}-exec-policy`, { role: canaryExecutionRole.id, - policy: canaryResultsS3Bucket.arn.apply(arn => generateCanaryPolicy(arn)), + policy: canaryResultsS3Bucket.arn.apply((arn: string) => generateCanaryPolicy(arn)), }); // Bucket for storing the canary SCRIPTS -const canaryScriptsBucket = new aws.s3.BucketV2(`${baseName}-scripts`); +const canaryScriptsBucket = new aws.s3.Bucket(`${baseName}-scripts`); // Enable versioning so that as new scripts are uploaded the canary will be updated as well. -const canaryScriptBucketVersioning = new aws.s3.BucketVersioningV2(`${baseName}-scripts-versioning`, { +const canaryScriptBucketVersioning = new aws.s3.BucketVersioning(`${baseName}-scripts-versioning`, { bucket: canaryScriptsBucket.id, versioningConfiguration: { status: "Enabled", diff --git a/aws-ts-synthetics-canary/package.json b/aws-ts-synthetics-canary/package.json index 2f947ca14..757df1995 100644 --- a/aws-ts-synthetics-canary/package.json +++ b/aws-ts-synthetics-canary/package.json @@ -4,8 +4,9 @@ "@types/node": "22.13.14" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/command": "1.0.2", - "@pulumi/pulumi": "3.158.0" + "@pulumi/pulumi": "3.158.0", + "typescript": "^5.8.3" } } diff --git a/aws-ts-thumbnailer/package.json b/aws-ts-thumbnailer/package.json index 00334444f..88e95fd45 100755 --- a/aws-ts-thumbnailer/package.json +++ b/aws-ts-thumbnailer/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "main": "index.ts", "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/awsx": "2.21.1", "@pulumi/pulumi": "3.158.0" } diff --git a/aws-ts-thumbnailer/tsconfig.json b/aws-ts-thumbnailer/tsconfig.json new file mode 100644 index 000000000..61fe22191 --- /dev/null +++ b/aws-ts-thumbnailer/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "outDir": "bin", + "target": "es2016", + "module": "commonjs", + "moduleResolution": "node", + "sourceMap": true, + "experimentalDecorators": true, + "pretty": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "forceConsistentCasingInFileNames": true, + "strictNullChecks": true + }, + "files": [ + "index.ts" + ] +} diff --git a/aws-ts-twitter-athena/index.ts b/aws-ts-twitter-athena/index.ts index 8734e72ce..1cb16d84a 100644 --- a/aws-ts-twitter-athena/index.ts +++ b/aws-ts-twitter-athena/index.ts @@ -4,11 +4,11 @@ import * as s3sdk from "@aws-sdk/client-s3"; import * as aws from "@pulumi/aws"; import * as pulumi from "@pulumi/pulumi"; -const bucket = new aws.s3.BucketV2("tweet-bucket", { +const bucket = new aws.s3.Bucket("tweet-bucket", { forceDestroy: true, // We require this in the example as we are not managing the contents of the bucket via Pulumi }); -const myBucketSseConfig = new aws.s3.BucketServerSideEncryptionConfigurationV2("my-bucket-sse-config", { +const myBucketSseConfig = new aws.s3.BucketServerSideEncryptionConfiguration("my-bucket-sse-config", { bucket: bucket.bucket, rules: [{ applyServerSideEncryptionByDefault: { diff --git a/aws-ts-twitter-athena/package.json b/aws-ts-twitter-athena/package.json index bffeeb3d7..c91260d1e 100644 --- a/aws-ts-twitter-athena/package.json +++ b/aws-ts-twitter-athena/package.json @@ -3,9 +3,10 @@ "version": "0.1.0", "dependencies": { "@aws-sdk/client-s3": "^3.386.0", - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/pulumi": "3.158.0", - "twitter": "^1.7.1" + "twitter": "^1.7.1", + "typescript": "^5.8.3" }, "devDependencies": { "@types/twitter": "1.7.4" diff --git a/kubernetes-ts-s3-rollout/package.json b/kubernetes-ts-s3-rollout/package.json index 2beb4bdf5..3b38d68bc 100644 --- a/kubernetes-ts-s3-rollout/package.json +++ b/kubernetes-ts-s3-rollout/package.json @@ -4,9 +4,10 @@ "@types/node": "22.13.14" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/kubernetes": "4.22.1", "@pulumi/pulumi": "3.158.0", + "typescript": "^5.8.3", "@types/mime": "^3.0.0", "mime": "^3.0.0" } diff --git a/kubernetes-ts-s3-rollout/s3Helpers.ts b/kubernetes-ts-s3-rollout/s3Helpers.ts index 137692928..503c12e30 100644 --- a/kubernetes-ts-s3-rollout/s3Helpers.ts +++ b/kubernetes-ts-s3-rollout/s3Helpers.ts @@ -9,18 +9,18 @@ import * as pulumi from "@pulumi/pulumi"; export interface FileBucketOpts { files: string[]; - policy?: (bucket: aws.s3.BucketV2) => pulumi.Output; + policy?: (bucket: aws.s3.Bucket) => pulumi.Output; } export class FileBucket { - public readonly bucket: aws.s3.BucketV2; + public readonly bucket: aws.s3.Bucket; public readonly files: { [key: string]: aws.s3.BucketObject }; public readonly policy: aws.s3.BucketPolicy; private readonly fileContents: { [key: string]: string }; constructor(bucketName: string, opts: FileBucketOpts) { - this.bucket = new aws.s3.BucketV2(bucketName); + this.bucket = new aws.s3.Bucket(bucketName); this.fileContents = {}; this.files = {}; for (const file of opts.files) { diff --git a/multicloud-ts-buckets/index.ts b/multicloud-ts-buckets/index.ts index 0f437d9cf..1d2adc75a 100644 --- a/multicloud-ts-buckets/index.ts +++ b/multicloud-ts-buckets/index.ts @@ -4,10 +4,12 @@ import * as aws from "@pulumi/aws"; import * as gcp from "@pulumi/gcp"; // Create an AWS resource (S3 Bucket) -const awsBucket = new aws.s3.BucketV2("my-bucket"); +const awsBucket = new aws.s3.Bucket("my-bucket"); // Create a GCP resource (Storage Bucket) -const gcpBucket = new gcp.storage.Bucket("my-bucket"); +const gcpBucket = new gcp.storage.Bucket("my-bucket", { + location: "US" +}); // Export the names of the buckets export const bucketNames = [ diff --git a/multicloud-ts-buckets/package.json b/multicloud-ts-buckets/package.json index ee42e071b..e1662ff21 100644 --- a/multicloud-ts-buckets/package.json +++ b/multicloud-ts-buckets/package.json @@ -4,8 +4,9 @@ "@types/node": "22.13.14" }, "dependencies": { - "@pulumi/aws": "6.73.0", + "@pulumi/aws": "^7.0.0-alpha.1", "@pulumi/gcp": "8.23.0", - "@pulumi/pulumi": "3.158.0" + "@pulumi/pulumi": "3.158.0", + "typescript": "^5.8.3" } }