added vpc crosswalk typescript
ADD
aws-ts-vpc-with-ecs-fargate-py/vpc-crosswalk-ts/.gitignore
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+
+# Diagnostic reports (https://nodejs.org/api/report.html)
+report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+*.lcov
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# TypeScript v1 declaration files
+typings/
+
+# TypeScript cache
+*.tsbuildinfo
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Microbundle cache
+.rpt2_cache/
+.rts2_cache_cjs/
+.rts2_cache_es/
+.rts2_cache_umd/
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+.env.test
+
+# parcel-bundler cache (https://parceljs.org/)
+.cache
+
+# Next.js build output
+.next
+
+# Nuxt.js build / generate output
+.nuxt
+dist
+
+# Gatsby files
+.cache/
+# Comment in the public line in if your project uses Gatsby and *not* Next.js
+# https://nextjs.org/blog/next-9-1#public-directory-support
+# public
+
+# vuepress build output
+.vuepress/dist
+
+# Serverless directories
+.serverless/
+
+# FuseBox cache
+.fusebox/
+
+# DynamoDB Local files
+.dynamodb/
+
+# TernJS port file
+.tern-port

ADD
aws-ts-vpc-with-ecs-fargate-py/vpc-crosswalk-ts/LICENSE
+MIT License
+
+Copyright (c) 2020 Tushar Shah
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

ADD
aws-ts-vpc-with-ecs-fargate-py/vpc-crosswalk-ts/Pulumi.yaml
+name: crosswalk-vpc
+runtime: nodejs
+description: A well architected vpc built with crosswalk

ADD
aws-ts-vpc-with-ecs-fargate-py/vpc-crosswalk-ts/index.ts
+import * as awsx from "@pulumi/awsx";
+import * as pulumi from "@pulumi/pulumi";
+
+// importing local configs
+const config = new pulumi.Config();
+const env = pulumi.getStack()
+const vpc_name = config.get("vpc_name");
+const zone_number = config.getNumber("zone_number");
+const vpc_cidr = config.get("vpc_cidr");
+const number_of_nat_gateways = config.getNumber("number_of_nat_gateways");
+const config_name = "Pulumi." + `${env}` + ".yaml";
+
+const baseTags = {
+ Name: `${vpc_name}`,
+ "availability_zones_used": `${zone_number}`,
+ "cidr_block": `${vpc_cidr}`,
+ "crosswalk":"yes",
+ "number_of_nat_gateways": `${number_of_nat_gateways}`,
+ "demo": "true",
+ "pulumi:Project": pulumi.getProject(),
+ "pulumi:Stack": pulumi.getStack(),
+ "cost_center": "1234",
+ "pulumi:Configs": config_name,
+}
+
+// Allocate a new VPC with the CIDR range from config file:
+const vpc = new awsx.ec2.Vpc(`${vpc_name}`, {
+ cidrBlock: vpc_cidr,
+ numberOfAvailabilityZones: zone_number,
+ numberOfNatGateways: number_of_nat_gateways,
+ tags: baseTags,
+
+});
+
+// Export a few resulting fields to make them easy to use:
+export const pulumi_vpc_name = vpc_name;
+export const pulumi_vpc_id = vpc.id;
+export const pulumi_vpc_az_zones = zone_number;
+export const pulumi_vpc_cidr = vpc_cidr;
+export const pulumic_vpc_number_of_nat_gateways = number_of_nat_gateways;
+export const pulumi_vpc_private_subnet_ids = vpc.privateSubnetIds;
+export const pulumi_vpc_public_subnet_ids = vpc.publicSubnetIds;
+export const pulumi_vpc_aws_tags = baseTags;
\ No newline at end of file

ADD
aws-ts-vpc-with-ecs-fargate-py/vpc-crosswalk-ts/package.json
+{
+ "name": "crosswalk-vpc",
+ "devDependencies": {
+ "@types/node": "^10.0.0"
+ },
+ "dependencies": {
+ "@pulumi/pulumi": "^2.0.0",
+ "@pulumi/aws": "^2.0.0",
+ "@pulumi/awsx": "^0.20.0"
+ }
+}

ADD
aws-ts-vpc-with-ecs-fargate-py/vpc-crosswalk-ts/tsconfig.json
+{
+ "compilerOptions": {
+ "strict": true,
+ "outDir": "bin",
+ "target": "es2016",
+ "module": "commonjs",
+ "moduleResolution": "node",
+ "sourceMap": true,
+ "experimentalDecorators": true,
+ "pretty": true,
+ "noFallthroughCasesInSwitch": true,
+ "noImplicitReturns": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.ts"
+ ]
+}

added vpc crosswalk typescript