From e4598c899279322a44f2347584f848a693ea4738 Mon Sep 17 00:00:00 2001 From: Matthew Pirocchi Date: Mon, 27 Aug 2018 14:06:26 -0700 Subject: [PATCH 1/6] Enable creation of strong names for .NET assemblies. --- buildspec.yaml | 3 ++ fetch-dotnet-snk.sh | 29 +++++++++++++++++++ packages/@aws-cdk/assets/package.json | 4 ++- packages/@aws-cdk/aws-apigateway/package.json | 4 ++- .../aws-applicationautoscaling/package.json | 4 ++- packages/@aws-cdk/aws-appsync/package.json | 4 ++- packages/@aws-cdk/aws-athena/package.json | 4 ++- .../@aws-cdk/aws-autoscaling/package.json | 4 ++- .../aws-autoscalingplans/package.json | 4 ++- packages/@aws-cdk/aws-batch/package.json | 4 ++- packages/@aws-cdk/aws-budgets/package.json | 4 ++- .../aws-certificatemanager/package.json | 4 ++- packages/@aws-cdk/aws-cloud9/package.json | 4 ++- .../@aws-cdk/aws-cloudformation/package.json | 4 ++- packages/@aws-cdk/aws-cloudfront/package.json | 4 ++- packages/@aws-cdk/aws-cloudtrail/package.json | 4 ++- packages/@aws-cdk/aws-cloudwatch/package.json | 4 ++- packages/@aws-cdk/aws-codebuild/package.json | 4 ++- packages/@aws-cdk/aws-codecommit/package.json | 4 ++- packages/@aws-cdk/aws-codedeploy/package.json | 4 ++- .../aws-codepipeline-api/package.json | 4 ++- .../@aws-cdk/aws-codepipeline/package.json | 4 ++- packages/@aws-cdk/aws-cognito/package.json | 4 ++- packages/@aws-cdk/aws-config/package.json | 4 ++- .../@aws-cdk/aws-datapipeline/package.json | 4 ++- packages/@aws-cdk/aws-dax/package.json | 4 ++- .../aws-directoryservice/package.json | 4 ++- packages/@aws-cdk/aws-dms/package.json | 4 ++- packages/@aws-cdk/aws-dynamodb/package.json | 4 ++- packages/@aws-cdk/aws-ec2/package.json | 4 ++- packages/@aws-cdk/aws-ecr/package.json | 4 ++- packages/@aws-cdk/aws-ecs/package.json | 4 ++- packages/@aws-cdk/aws-efs/package.json | 4 ++- packages/@aws-cdk/aws-eks/package.json | 4 ++- .../@aws-cdk/aws-elasticache/package.json | 4 ++- .../aws-elasticbeanstalk/package.json | 4 ++- .../aws-elasticloadbalancing/package.json | 4 ++- .../aws-elasticloadbalancingv2/package.json | 4 ++- .../@aws-cdk/aws-elasticsearch/package.json | 4 ++- packages/@aws-cdk/aws-emr/package.json | 4 ++- packages/@aws-cdk/aws-events/package.json | 4 ++- packages/@aws-cdk/aws-gamelift/package.json | 4 ++- packages/@aws-cdk/aws-glue/package.json | 4 ++- packages/@aws-cdk/aws-guardduty/package.json | 4 ++- packages/@aws-cdk/aws-iam/package.json | 4 ++- packages/@aws-cdk/aws-inspector/package.json | 4 ++- packages/@aws-cdk/aws-iot/package.json | 4 ++- packages/@aws-cdk/aws-kinesis/package.json | 4 ++- .../aws-kinesisanalytics/package.json | 4 ++- .../@aws-cdk/aws-kinesisfirehose/package.json | 4 ++- packages/@aws-cdk/aws-kms/package.json | 4 ++- packages/@aws-cdk/aws-lambda/package.json | 4 ++- packages/@aws-cdk/aws-logs/package.json | 4 ++- packages/@aws-cdk/aws-neptune/package.json | 4 ++- packages/@aws-cdk/aws-opsworks/package.json | 4 ++- .../@aws-cdk/aws-quickstarts/package.json | 4 ++- packages/@aws-cdk/aws-rds/package.json | 4 ++- packages/@aws-cdk/aws-redshift/package.json | 4 ++- packages/@aws-cdk/aws-route53/package.json | 4 ++- .../aws-s3-notifications/package.json | 4 ++- packages/@aws-cdk/aws-s3/package.json | 4 ++- packages/@aws-cdk/aws-sagemaker/package.json | 6 ++-- packages/@aws-cdk/aws-sdb/package.json | 4 ++- packages/@aws-cdk/aws-serverless/package.json | 4 ++- .../@aws-cdk/aws-servicecatalog/package.json | 4 ++- .../aws-servicediscovery/package.json | 4 ++- packages/@aws-cdk/aws-ses/package.json | 4 ++- packages/@aws-cdk/aws-sns/package.json | 4 ++- packages/@aws-cdk/aws-sqs/package.json | 4 ++- packages/@aws-cdk/aws-ssm/package.json | 4 ++- .../@aws-cdk/aws-stepfunctions/package.json | 4 ++- packages/@aws-cdk/aws-waf/package.json | 4 ++- .../@aws-cdk/aws-wafregional/package.json | 4 ++- packages/@aws-cdk/aws-workspaces/package.json | 4 ++- packages/@aws-cdk/cdk/package.json | 4 ++- packages/@aws-cdk/cx-api/package.json | 4 ++- packages/@aws-cdk/runtime-values/package.json | 4 ++- 77 files changed, 258 insertions(+), 76 deletions(-) create mode 100644 fetch-dotnet-snk.sh diff --git a/buildspec.yaml b/buildspec.yaml index cbebf7af6a8a5..ecd806c5d47dd 100644 --- a/buildspec.yaml +++ b/buildspec.yaml @@ -4,6 +4,9 @@ phases: install: commands: - /bin/bash ./install.sh + pre_build: + commands: + - /bin/bash ./fetch-dotnet-snk.sh build: commands: - /bin/bash ./build.sh diff --git a/fetch-dotnet-snk.sh b/fetch-dotnet-snk.sh new file mode 100644 index 0000000000000..06a3ec9f95080 --- /dev/null +++ b/fetch-dotnet-snk.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -euo pipefail + +# This script retrieves the .snk file needed +# to create strong names for .NET assemblies. +echo "Retrieving SNK..." + +sudo apt install jq -y + +ROLE=$(aws sts assume-role --region us-east-2 --role-arn ${DOTNET_STRONG_NAME_ROLE_ARN:-} --role-session-name "cdk-dotnet-snk") +export AWS_ACCESS_KEY_ID=$(echo $ROLE | jq -r .Credentials.AccessKeyId) +export AWS_SECRET_ACCESS_KEY=$(echo $ROLE | jq -r .Credentials.SecretAccessKey) +export AWS_SESSION_TOKEN=$(echo $ROLE | jq .Credentials.SessionToken) + +SNK_SECRET=$(aws secretsmanager get-secret-value --region us-east-2 --secret-id ${DOTNET_STRONG_NAME_SECRET_ID:-}) +TMP_DIR=$(mktemp -d) +TMP_KEY="$TMP_DIR/key.snk" +echo $SNK_SECRET | jq -r .SecretBinary | base64 --decode > $TMP_KEY + +for PACKAGE_PATH in packages/@aws-cdk/*; do + JSII_PROPERTY=$(cat "$PACKAGE_PATH/package.json" | jq -r .jsii) + if [ -z $JSII_PROPERTY ]; then + continue + fi + + cp $TMP_KEY $PACKAGE_PATH +done + +rm -rf $TMP_DIR diff --git a/packages/@aws-cdk/assets/package.json b/packages/@aws-cdk/assets/package.json index 1a6be3b4cb1ad..3bcbf7debc819 100644 --- a/packages/@aws-cdk/assets/package.json +++ b/packages/@aws-cdk/assets/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.Assets", - "packageId": "Amazon.CDK.Assets" + "packageId": "Amazon.CDK.Assets", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-apigateway/package.json b/packages/@aws-cdk/aws-apigateway/package.json index ccaa5c0531d47..bd2a0178e5218 100644 --- a/packages/@aws-cdk/aws-apigateway/package.json +++ b/packages/@aws-cdk/aws-apigateway/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.APIGateway", - "packageId": "Amazon.CDK.AWS.APIGateway" + "packageId": "Amazon.CDK.AWS.APIGateway", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-applicationautoscaling/package.json b/packages/@aws-cdk/aws-applicationautoscaling/package.json index 91d90e1a7f3b9..999486a6aa033 100644 --- a/packages/@aws-cdk/aws-applicationautoscaling/package.json +++ b/packages/@aws-cdk/aws-applicationautoscaling/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.ApplicationAutoScaling", - "packageId": "Amazon.CDK.AWS.ApplicationAutoScaling" + "packageId": "Amazon.CDK.AWS.ApplicationAutoScaling", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-appsync/package.json b/packages/@aws-cdk/aws-appsync/package.json index c0b96d75606fe..f99ce9b092c5e 100644 --- a/packages/@aws-cdk/aws-appsync/package.json +++ b/packages/@aws-cdk/aws-appsync/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.AppSync", - "packageId": "Amazon.CDK.AWS.AppSync" + "packageId": "Amazon.CDK.AWS.AppSync", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-athena/package.json b/packages/@aws-cdk/aws-athena/package.json index f27b334f27ed7..200054863e3a0 100644 --- a/packages/@aws-cdk/aws-athena/package.json +++ b/packages/@aws-cdk/aws-athena/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Athena", - "packageId": "Amazon.CDK.AWS.Athena" + "packageId": "Amazon.CDK.AWS.Athena", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-autoscaling/package.json b/packages/@aws-cdk/aws-autoscaling/package.json index 161f6b4b3546b..ce0fc5158ddac 100644 --- a/packages/@aws-cdk/aws-autoscaling/package.json +++ b/packages/@aws-cdk/aws-autoscaling/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.AutoScaling", - "packageId": "Amazon.CDK.AWS.AutoScaling" + "packageId": "Amazon.CDK.AWS.AutoScaling", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-autoscalingplans/package.json b/packages/@aws-cdk/aws-autoscalingplans/package.json index 30b0e922c9f86..1582ee645f6d5 100644 --- a/packages/@aws-cdk/aws-autoscalingplans/package.json +++ b/packages/@aws-cdk/aws-autoscalingplans/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.AutoScalingPlans", - "packageId": "Amazon.CDK.AWS.AutoScalingPlans" + "packageId": "Amazon.CDK.AWS.AutoScalingPlans", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-batch/package.json b/packages/@aws-cdk/aws-batch/package.json index 048dfc6e05fb6..0352373b950ed 100644 --- a/packages/@aws-cdk/aws-batch/package.json +++ b/packages/@aws-cdk/aws-batch/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Batch", - "packageId": "Amazon.CDK.AWS.Batch" + "packageId": "Amazon.CDK.AWS.Batch", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-budgets/package.json b/packages/@aws-cdk/aws-budgets/package.json index cb9ac4b80755a..89d64b5e14ddc 100644 --- a/packages/@aws-cdk/aws-budgets/package.json +++ b/packages/@aws-cdk/aws-budgets/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Budgets", - "packageId": "Amazon.CDK.AWS.Budgets" + "packageId": "Amazon.CDK.AWS.Budgets", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-certificatemanager/package.json b/packages/@aws-cdk/aws-certificatemanager/package.json index 5e98ff51b3607..942e723c62ceb 100644 --- a/packages/@aws-cdk/aws-certificatemanager/package.json +++ b/packages/@aws-cdk/aws-certificatemanager/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.CertificateManager", - "packageId": "Amazon.CDK.AWS.CertificateManager" + "packageId": "Amazon.CDK.AWS.CertificateManager", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-cloud9/package.json b/packages/@aws-cdk/aws-cloud9/package.json index 28704278f3d26..9ac67e517bad5 100644 --- a/packages/@aws-cdk/aws-cloud9/package.json +++ b/packages/@aws-cdk/aws-cloud9/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Cloud9", - "packageId": "Amazon.CDK.AWS.Cloud9" + "packageId": "Amazon.CDK.AWS.Cloud9", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-cloudformation/package.json b/packages/@aws-cdk/aws-cloudformation/package.json index 701d412808bcd..f807a5c9dcc10 100644 --- a/packages/@aws-cdk/aws-cloudformation/package.json +++ b/packages/@aws-cdk/aws-cloudformation/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.CloudFormation", - "packageId": "Amazon.CDK.AWS.CloudFormation" + "packageId": "Amazon.CDK.AWS.CloudFormation", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-cloudfront/package.json b/packages/@aws-cdk/aws-cloudfront/package.json index 338d864caea61..5f6a9deb83699 100644 --- a/packages/@aws-cdk/aws-cloudfront/package.json +++ b/packages/@aws-cdk/aws-cloudfront/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.CloudFront", - "packageId": "Amazon.CDK.AWS.CloudFront" + "packageId": "Amazon.CDK.AWS.CloudFront", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-cloudtrail/package.json b/packages/@aws-cdk/aws-cloudtrail/package.json index 41989411a9f77..7298f8798dd5e 100644 --- a/packages/@aws-cdk/aws-cloudtrail/package.json +++ b/packages/@aws-cdk/aws-cloudtrail/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.CloudTrail", - "packageId": "Amazon.CDK.AWS.CloudTrail" + "packageId": "Amazon.CDK.AWS.CloudTrail", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-cloudwatch/package.json b/packages/@aws-cdk/aws-cloudwatch/package.json index 0019c7d5986ad..a0badc1bccdc9 100644 --- a/packages/@aws-cdk/aws-cloudwatch/package.json +++ b/packages/@aws-cdk/aws-cloudwatch/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.CloudWatch", - "packageId": "Amazon.CDK.AWS.CloudWatch" + "packageId": "Amazon.CDK.AWS.CloudWatch", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-codebuild/package.json b/packages/@aws-cdk/aws-codebuild/package.json index fdd0c12c161fb..2ec0763dc3101 100644 --- a/packages/@aws-cdk/aws-codebuild/package.json +++ b/packages/@aws-cdk/aws-codebuild/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.CodeBuild", - "packageId": "Amazon.CDK.AWS.CodeBuild" + "packageId": "Amazon.CDK.AWS.CodeBuild", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-codecommit/package.json b/packages/@aws-cdk/aws-codecommit/package.json index f7ed00050dff9..980fca28450ed 100644 --- a/packages/@aws-cdk/aws-codecommit/package.json +++ b/packages/@aws-cdk/aws-codecommit/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.CodeCommit", - "packageId": "Amazon.CDK.AWS.CodeCommit" + "packageId": "Amazon.CDK.AWS.CodeCommit", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-codedeploy/package.json b/packages/@aws-cdk/aws-codedeploy/package.json index f28f079d2c720..a3a2eecfee722 100644 --- a/packages/@aws-cdk/aws-codedeploy/package.json +++ b/packages/@aws-cdk/aws-codedeploy/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.CodeDeploy", - "packageId": "Amazon.CDK.AWS.CodeDeploy" + "packageId": "Amazon.CDK.AWS.CodeDeploy", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-codepipeline-api/package.json b/packages/@aws-cdk/aws-codepipeline-api/package.json index b3714d330da92..75c99f0721912 100644 --- a/packages/@aws-cdk/aws-codepipeline-api/package.json +++ b/packages/@aws-cdk/aws-codepipeline-api/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Codepipeline.Api", - "packageId": "Amazon.CDK.AWS.Codepipeline.Api" + "packageId": "Amazon.CDK.AWS.Codepipeline.Api", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-codepipeline/package.json b/packages/@aws-cdk/aws-codepipeline/package.json index 879fc68fce5ec..35b823fe6ee35 100644 --- a/packages/@aws-cdk/aws-codepipeline/package.json +++ b/packages/@aws-cdk/aws-codepipeline/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.CodePipeline", - "packageId": "Amazon.CDK.AWS.CodePipeline" + "packageId": "Amazon.CDK.AWS.CodePipeline", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-cognito/package.json b/packages/@aws-cdk/aws-cognito/package.json index a57be6cc5e76f..8b25b6b61117b 100644 --- a/packages/@aws-cdk/aws-cognito/package.json +++ b/packages/@aws-cdk/aws-cognito/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Cognito", - "packageId": "Amazon.CDK.AWS.Cognito" + "packageId": "Amazon.CDK.AWS.Cognito", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-config/package.json b/packages/@aws-cdk/aws-config/package.json index 758d5953ad033..71c0499961d2e 100644 --- a/packages/@aws-cdk/aws-config/package.json +++ b/packages/@aws-cdk/aws-config/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Config", - "packageId": "Amazon.CDK.AWS.Config" + "packageId": "Amazon.CDK.AWS.Config", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-datapipeline/package.json b/packages/@aws-cdk/aws-datapipeline/package.json index 8af1cc6cfa932..3da1d25aac4c3 100644 --- a/packages/@aws-cdk/aws-datapipeline/package.json +++ b/packages/@aws-cdk/aws-datapipeline/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.DataPipeline", - "packageId": "Amazon.CDK.AWS.DataPipeline" + "packageId": "Amazon.CDK.AWS.DataPipeline", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-dax/package.json b/packages/@aws-cdk/aws-dax/package.json index a8f31c01b67c1..ca97a9b05a699 100644 --- a/packages/@aws-cdk/aws-dax/package.json +++ b/packages/@aws-cdk/aws-dax/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.DAX", - "packageId": "Amazon.CDK.AWS.DAX" + "packageId": "Amazon.CDK.AWS.DAX", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-directoryservice/package.json b/packages/@aws-cdk/aws-directoryservice/package.json index f8a073779d66e..c4ec9503e4316 100644 --- a/packages/@aws-cdk/aws-directoryservice/package.json +++ b/packages/@aws-cdk/aws-directoryservice/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.DirectoryService", - "packageId": "Amazon.CDK.AWS.DirectoryService" + "packageId": "Amazon.CDK.AWS.DirectoryService", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-dms/package.json b/packages/@aws-cdk/aws-dms/package.json index bcce5339095a6..910ec893739d9 100644 --- a/packages/@aws-cdk/aws-dms/package.json +++ b/packages/@aws-cdk/aws-dms/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.DMS", - "packageId": "Amazon.CDK.AWS.DMS" + "packageId": "Amazon.CDK.AWS.DMS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-dynamodb/package.json b/packages/@aws-cdk/aws-dynamodb/package.json index bd040f6da5ad6..77dc36c438ec7 100644 --- a/packages/@aws-cdk/aws-dynamodb/package.json +++ b/packages/@aws-cdk/aws-dynamodb/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.DynamoDB", - "packageId": "Amazon.CDK.AWS.DynamoDB" + "packageId": "Amazon.CDK.AWS.DynamoDB", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-ec2/package.json b/packages/@aws-cdk/aws-ec2/package.json index 1d79e56b6cf35..2a0817b2bac61 100644 --- a/packages/@aws-cdk/aws-ec2/package.json +++ b/packages/@aws-cdk/aws-ec2/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.EC2", - "packageId": "Amazon.CDK.AWS.EC2" + "packageId": "Amazon.CDK.AWS.EC2", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-ecr/package.json b/packages/@aws-cdk/aws-ecr/package.json index 33b672b0081fa..c9a21d5fd9ff5 100644 --- a/packages/@aws-cdk/aws-ecr/package.json +++ b/packages/@aws-cdk/aws-ecr/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.ECR", - "packageId": "Amazon.CDK.AWS.ECR" + "packageId": "Amazon.CDK.AWS.ECR", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-ecs/package.json b/packages/@aws-cdk/aws-ecs/package.json index 278cb8079a393..483cbd024597b 100644 --- a/packages/@aws-cdk/aws-ecs/package.json +++ b/packages/@aws-cdk/aws-ecs/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.ECS", - "packageId": "Amazon.CDK.AWS.ECS" + "packageId": "Amazon.CDK.AWS.ECS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-efs/package.json b/packages/@aws-cdk/aws-efs/package.json index 05b6e8c323e56..69a4fa6f68627 100644 --- a/packages/@aws-cdk/aws-efs/package.json +++ b/packages/@aws-cdk/aws-efs/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.EFS", - "packageId": "Amazon.CDK.AWS.EFS" + "packageId": "Amazon.CDK.AWS.EFS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-eks/package.json b/packages/@aws-cdk/aws-eks/package.json index 1a58c0b534470..de8db6511c584 100644 --- a/packages/@aws-cdk/aws-eks/package.json +++ b/packages/@aws-cdk/aws-eks/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.EKS", - "packageId": "Amazon.CDK.AWS.EKS" + "packageId": "Amazon.CDK.AWS.EKS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-elasticache/package.json b/packages/@aws-cdk/aws-elasticache/package.json index 942a5860f3718..f9b638310420e 100644 --- a/packages/@aws-cdk/aws-elasticache/package.json +++ b/packages/@aws-cdk/aws-elasticache/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.ElastiCache", - "packageId": "Amazon.CDK.AWS.ElastiCache" + "packageId": "Amazon.CDK.AWS.ElastiCache", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-elasticbeanstalk/package.json b/packages/@aws-cdk/aws-elasticbeanstalk/package.json index 90aed3eef1aa4..8e54855d43889 100644 --- a/packages/@aws-cdk/aws-elasticbeanstalk/package.json +++ b/packages/@aws-cdk/aws-elasticbeanstalk/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.ElasticBeanstalk", - "packageId": "Amazon.CDK.AWS.ElasticBeanstalk" + "packageId": "Amazon.CDK.AWS.ElasticBeanstalk", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-elasticloadbalancing/package.json b/packages/@aws-cdk/aws-elasticloadbalancing/package.json index f8e2d40bb5778..253aebe27b15b 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancing/package.json +++ b/packages/@aws-cdk/aws-elasticloadbalancing/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.ElasticLoadBalancing", - "packageId": "Amazon.CDK.AWS.ElasticLoadBalancing" + "packageId": "Amazon.CDK.AWS.ElasticLoadBalancing", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json b/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json index 06c83a747366f..cd0e78a69cda7 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json +++ b/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.ElasticLoadBalancingV2", - "packageId": "Amazon.CDK.AWS.ElasticLoadBalancingV2" + "packageId": "Amazon.CDK.AWS.ElasticLoadBalancingV2", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-elasticsearch/package.json b/packages/@aws-cdk/aws-elasticsearch/package.json index 228536e009d35..ee8332a3a0f43 100644 --- a/packages/@aws-cdk/aws-elasticsearch/package.json +++ b/packages/@aws-cdk/aws-elasticsearch/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Elasticsearch", - "packageId": "Amazon.CDK.AWS.Elasticsearch" + "packageId": "Amazon.CDK.AWS.Elasticsearch", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-emr/package.json b/packages/@aws-cdk/aws-emr/package.json index 932af67be97ec..006b06009314b 100644 --- a/packages/@aws-cdk/aws-emr/package.json +++ b/packages/@aws-cdk/aws-emr/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.EMR", - "packageId": "Amazon.CDK.AWS.EMR" + "packageId": "Amazon.CDK.AWS.EMR", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-events/package.json b/packages/@aws-cdk/aws-events/package.json index 989defb17f93c..8bf3e15d2d370 100644 --- a/packages/@aws-cdk/aws-events/package.json +++ b/packages/@aws-cdk/aws-events/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Events", - "packageId": "Amazon.CDK.AWS.Events" + "packageId": "Amazon.CDK.AWS.Events", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-gamelift/package.json b/packages/@aws-cdk/aws-gamelift/package.json index 42f114b2e931c..b56c659e40b7b 100644 --- a/packages/@aws-cdk/aws-gamelift/package.json +++ b/packages/@aws-cdk/aws-gamelift/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.GameLift", - "packageId": "Amazon.CDK.AWS.GameLift" + "packageId": "Amazon.CDK.AWS.GameLift", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-glue/package.json b/packages/@aws-cdk/aws-glue/package.json index 063cfecdd586b..3740aabc431e2 100644 --- a/packages/@aws-cdk/aws-glue/package.json +++ b/packages/@aws-cdk/aws-glue/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Glue", - "packageId": "Amazon.CDK.AWS.Glue" + "packageId": "Amazon.CDK.AWS.Glue", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-guardduty/package.json b/packages/@aws-cdk/aws-guardduty/package.json index dc5e002607844..ac60f2b2c3fd7 100644 --- a/packages/@aws-cdk/aws-guardduty/package.json +++ b/packages/@aws-cdk/aws-guardduty/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.GuardDuty", - "packageId": "Amazon.CDK.AWS.GuardDuty" + "packageId": "Amazon.CDK.AWS.GuardDuty", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-iam/package.json b/packages/@aws-cdk/aws-iam/package.json index 6817739cfddaa..e21dbdc8553d1 100644 --- a/packages/@aws-cdk/aws-iam/package.json +++ b/packages/@aws-cdk/aws-iam/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.IAM", - "packageId": "Amazon.CDK.AWS.IAM" + "packageId": "Amazon.CDK.AWS.IAM", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-inspector/package.json b/packages/@aws-cdk/aws-inspector/package.json index 0e4a7d4252fda..c415f0064dd21 100644 --- a/packages/@aws-cdk/aws-inspector/package.json +++ b/packages/@aws-cdk/aws-inspector/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Inspector", - "packageId": "Amazon.CDK.AWS.Inspector" + "packageId": "Amazon.CDK.AWS.Inspector", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-iot/package.json b/packages/@aws-cdk/aws-iot/package.json index c55e2bc057d1f..f714220bfccf3 100644 --- a/packages/@aws-cdk/aws-iot/package.json +++ b/packages/@aws-cdk/aws-iot/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.IoT", - "packageId": "Amazon.CDK.AWS.IoT" + "packageId": "Amazon.CDK.AWS.IoT", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-kinesis/package.json b/packages/@aws-cdk/aws-kinesis/package.json index ebe2eb5900ec0..8b26db00198ef 100644 --- a/packages/@aws-cdk/aws-kinesis/package.json +++ b/packages/@aws-cdk/aws-kinesis/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Kinesis", - "packageId": "Amazon.CDK.AWS.Kinesis" + "packageId": "Amazon.CDK.AWS.Kinesis", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-kinesisanalytics/package.json b/packages/@aws-cdk/aws-kinesisanalytics/package.json index d45aa72b6131f..7a72502e97363 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics/package.json +++ b/packages/@aws-cdk/aws-kinesisanalytics/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.KinesisAnalytics", - "packageId": "Amazon.CDK.AWS.KinesisAnalytics" + "packageId": "Amazon.CDK.AWS.KinesisAnalytics", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-kinesisfirehose/package.json b/packages/@aws-cdk/aws-kinesisfirehose/package.json index 9cda9219a7c39..6d0e6be2365f8 100644 --- a/packages/@aws-cdk/aws-kinesisfirehose/package.json +++ b/packages/@aws-cdk/aws-kinesisfirehose/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.KinesisFirehose", - "packageId": "Amazon.CDK.AWS.KinesisFirehose" + "packageId": "Amazon.CDK.AWS.KinesisFirehose", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-kms/package.json b/packages/@aws-cdk/aws-kms/package.json index fc9eb0a7398fb..797bbf45ef009 100644 --- a/packages/@aws-cdk/aws-kms/package.json +++ b/packages/@aws-cdk/aws-kms/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.KMS", - "packageId": "Amazon.CDK.AWS.KMS" + "packageId": "Amazon.CDK.AWS.KMS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-lambda/package.json b/packages/@aws-cdk/aws-lambda/package.json index a07e2467de0cf..59ad0681cc19d 100644 --- a/packages/@aws-cdk/aws-lambda/package.json +++ b/packages/@aws-cdk/aws-lambda/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Lambda", - "packageId": "Amazon.CDK.AWS.Lambda" + "packageId": "Amazon.CDK.AWS.Lambda", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-logs/package.json b/packages/@aws-cdk/aws-logs/package.json index e3faebc2332cc..905c0ed0cb760 100644 --- a/packages/@aws-cdk/aws-logs/package.json +++ b/packages/@aws-cdk/aws-logs/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Logs", - "packageId": "Amazon.CDK.AWS.Logs" + "packageId": "Amazon.CDK.AWS.Logs", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-neptune/package.json b/packages/@aws-cdk/aws-neptune/package.json index 0f9c0b0a68adc..32f078aa3ceee 100644 --- a/packages/@aws-cdk/aws-neptune/package.json +++ b/packages/@aws-cdk/aws-neptune/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Neptune", - "packageId": "Amazon.CDK.AWS.Neptune" + "packageId": "Amazon.CDK.AWS.Neptune", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-opsworks/package.json b/packages/@aws-cdk/aws-opsworks/package.json index a6e1c32dd2b65..93434905a843b 100644 --- a/packages/@aws-cdk/aws-opsworks/package.json +++ b/packages/@aws-cdk/aws-opsworks/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.OpsWorks", - "packageId": "Amazon.CDK.AWS.OpsWorks" + "packageId": "Amazon.CDK.AWS.OpsWorks", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-quickstarts/package.json b/packages/@aws-cdk/aws-quickstarts/package.json index 701a4089e3ed2..49b0871161f9a 100644 --- a/packages/@aws-cdk/aws-quickstarts/package.json +++ b/packages/@aws-cdk/aws-quickstarts/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.QuickStarts", - "packageId": "Amazon.CDK.AWS.QuickStarts" + "packageId": "Amazon.CDK.AWS.QuickStarts", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-rds/package.json b/packages/@aws-cdk/aws-rds/package.json index ba0888a383e9b..f0679b92e9858 100644 --- a/packages/@aws-cdk/aws-rds/package.json +++ b/packages/@aws-cdk/aws-rds/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.RDS", - "packageId": "Amazon.CDK.AWS.RDS" + "packageId": "Amazon.CDK.AWS.RDS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-redshift/package.json b/packages/@aws-cdk/aws-redshift/package.json index 4daae488c39a0..d8cbe4f502c41 100644 --- a/packages/@aws-cdk/aws-redshift/package.json +++ b/packages/@aws-cdk/aws-redshift/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Redshift", - "packageId": "Amazon.CDK.AWS.Redshift" + "packageId": "Amazon.CDK.AWS.Redshift", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-route53/package.json b/packages/@aws-cdk/aws-route53/package.json index 75b48839517d4..5c467ab8e5658 100644 --- a/packages/@aws-cdk/aws-route53/package.json +++ b/packages/@aws-cdk/aws-route53/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Route53", - "packageId": "Amazon.CDK.AWS.Route53" + "packageId": "Amazon.CDK.AWS.Route53", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-s3-notifications/package.json b/packages/@aws-cdk/aws-s3-notifications/package.json index 268320f4e955d..a1f20c22d0e87 100644 --- a/packages/@aws-cdk/aws-s3-notifications/package.json +++ b/packages/@aws-cdk/aws-s3-notifications/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.S3.Notifications", - "packageId": "Amazon.CDK.AWS.S3.Notifications" + "packageId": "Amazon.CDK.AWS.S3.Notifications", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-s3/package.json b/packages/@aws-cdk/aws-s3/package.json index 11bd5a60aee2b..e0bc23ce5ec98 100644 --- a/packages/@aws-cdk/aws-s3/package.json +++ b/packages/@aws-cdk/aws-s3/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.S3", - "packageId": "Amazon.CDK.AWS.S3" + "packageId": "Amazon.CDK.AWS.S3", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-sagemaker/package.json b/packages/@aws-cdk/aws-sagemaker/package.json index 923c618c48234..90a92eb6a31f8 100644 --- a/packages/@aws-cdk/aws-sagemaker/package.json +++ b/packages/@aws-cdk/aws-sagemaker/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Sagemaker", - "packageId": "Amazon.CDK.AWS.Sagemaker" + "packageId": "Amazon.CDK.AWS.Sagemaker", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } @@ -59,4 +61,4 @@ "dependencies": { "@aws-cdk/cdk": "^0.8.2" } -} +} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-sdb/package.json b/packages/@aws-cdk/aws-sdb/package.json index 51abcde3faf5d..5c08c1c851349 100644 --- a/packages/@aws-cdk/aws-sdb/package.json +++ b/packages/@aws-cdk/aws-sdb/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.SDB", - "packageId": "Amazon.CDK.AWS.SDB" + "packageId": "Amazon.CDK.AWS.SDB", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-serverless/package.json b/packages/@aws-cdk/aws-serverless/package.json index 14d73d030f995..88d1206b8a6c1 100644 --- a/packages/@aws-cdk/aws-serverless/package.json +++ b/packages/@aws-cdk/aws-serverless/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.Serverless", - "packageId": "Amazon.CDK.AWS.Serverless" + "packageId": "Amazon.CDK.AWS.Serverless", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-servicecatalog/package.json b/packages/@aws-cdk/aws-servicecatalog/package.json index 93c0fff9e45a2..99ff449b3f3c4 100644 --- a/packages/@aws-cdk/aws-servicecatalog/package.json +++ b/packages/@aws-cdk/aws-servicecatalog/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.ServiceCatalog", - "packageId": "Amazon.CDK.AWS.ServiceCatalog" + "packageId": "Amazon.CDK.AWS.ServiceCatalog", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-servicediscovery/package.json b/packages/@aws-cdk/aws-servicediscovery/package.json index 6c08939134331..685b73e3f599d 100644 --- a/packages/@aws-cdk/aws-servicediscovery/package.json +++ b/packages/@aws-cdk/aws-servicediscovery/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.ServiceDiscovery", - "packageId": "Amazon.CDK.AWS.ServiceDiscovery" + "packageId": "Amazon.CDK.AWS.ServiceDiscovery", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-ses/package.json b/packages/@aws-cdk/aws-ses/package.json index ae1f8b5406aab..70810b3b863ae 100644 --- a/packages/@aws-cdk/aws-ses/package.json +++ b/packages/@aws-cdk/aws-ses/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.SES", - "packageId": "Amazon.CDK.AWS.SES" + "packageId": "Amazon.CDK.AWS.SES", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-sns/package.json b/packages/@aws-cdk/aws-sns/package.json index 857a248616e4a..8d2c4e5b85774 100644 --- a/packages/@aws-cdk/aws-sns/package.json +++ b/packages/@aws-cdk/aws-sns/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.SNS", - "packageId": "Amazon.CDK.AWS.SNS" + "packageId": "Amazon.CDK.AWS.SNS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-sqs/package.json b/packages/@aws-cdk/aws-sqs/package.json index 67572187b6390..d1fd8a0f146f0 100644 --- a/packages/@aws-cdk/aws-sqs/package.json +++ b/packages/@aws-cdk/aws-sqs/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.SQS", - "packageId": "Amazon.CDK.AWS.SQS" + "packageId": "Amazon.CDK.AWS.SQS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-ssm/package.json b/packages/@aws-cdk/aws-ssm/package.json index 327c89ea0e19e..3eeaa256fca0b 100644 --- a/packages/@aws-cdk/aws-ssm/package.json +++ b/packages/@aws-cdk/aws-ssm/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.SSM", - "packageId": "Amazon.CDK.AWS.SSM" + "packageId": "Amazon.CDK.AWS.SSM", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-stepfunctions/package.json b/packages/@aws-cdk/aws-stepfunctions/package.json index 518201d77f44a..387b47133f640 100644 --- a/packages/@aws-cdk/aws-stepfunctions/package.json +++ b/packages/@aws-cdk/aws-stepfunctions/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.StepFunctions", - "packageId": "Amazon.CDK.AWS.StepFunctions" + "packageId": "Amazon.CDK.AWS.StepFunctions", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-waf/package.json b/packages/@aws-cdk/aws-waf/package.json index 87b930fbb3791..3cf256b507f57 100644 --- a/packages/@aws-cdk/aws-waf/package.json +++ b/packages/@aws-cdk/aws-waf/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.WAF", - "packageId": "Amazon.CDK.AWS.WAF" + "packageId": "Amazon.CDK.AWS.WAF", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-wafregional/package.json b/packages/@aws-cdk/aws-wafregional/package.json index e1316999fa835..35dbb230233d1 100644 --- a/packages/@aws-cdk/aws-wafregional/package.json +++ b/packages/@aws-cdk/aws-wafregional/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.WAFRegional", - "packageId": "Amazon.CDK.AWS.WAFRegional" + "packageId": "Amazon.CDK.AWS.WAFRegional", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/aws-workspaces/package.json b/packages/@aws-cdk/aws-workspaces/package.json index eb98fa1d7ffbb..8c0e8bb9146aa 100644 --- a/packages/@aws-cdk/aws-workspaces/package.json +++ b/packages/@aws-cdk/aws-workspaces/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.AWS.WorkSpaces", - "packageId": "Amazon.CDK.AWS.WorkSpaces" + "packageId": "Amazon.CDK.AWS.WorkSpaces", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/cdk/package.json b/packages/@aws-cdk/cdk/package.json index 9aaa381d0e2d0..35db23b6a59fd 100644 --- a/packages/@aws-cdk/cdk/package.json +++ b/packages/@aws-cdk/cdk/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK", - "packageId": "Amazon.CDK" + "packageId": "Amazon.CDK", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/cx-api/package.json b/packages/@aws-cdk/cx-api/package.json index c520eb2e27825..95bf8a81aff32 100644 --- a/packages/@aws-cdk/cx-api/package.json +++ b/packages/@aws-cdk/cx-api/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.CXAPI", - "packageId": "Amazon.CDK.CXAPI" + "packageId": "Amazon.CDK.CXAPI", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } diff --git a/packages/@aws-cdk/runtime-values/package.json b/packages/@aws-cdk/runtime-values/package.json index ce24d017307e7..3f9a6bd7d2ad2 100644 --- a/packages/@aws-cdk/runtime-values/package.json +++ b/packages/@aws-cdk/runtime-values/package.json @@ -16,7 +16,9 @@ }, "dotnet": { "namespace": "Amazon.CDK.RuntimeValues", - "packageId": "Amazon.CDK.RuntimeValues" + "packageId": "Amazon.CDK.RuntimeValues", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" }, "sphinx": {} } From 8be41f6c6d117d3d8c0feffe2e4689df187f7ebc Mon Sep 17 00:00:00 2001 From: Matthew Pirocchi Date: Thu, 30 Aug 2018 14:23:36 -0700 Subject: [PATCH 2/6] Address feedback from code review. --- fetch-dotnet-snk.sh | 5 ++--- tools/pkglint/lib/rules.ts | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/fetch-dotnet-snk.sh b/fetch-dotnet-snk.sh index 06a3ec9f95080..d4378683efa19 100644 --- a/fetch-dotnet-snk.sh +++ b/fetch-dotnet-snk.sh @@ -1,12 +1,11 @@ #!/bin/bash set -euo pipefail -# This script retrieves the .snk file needed -# to create strong names for .NET assemblies. -echo "Retrieving SNK..." +# This script retrieves the .snk file needed to create strong names for .NET assemblies. sudo apt install jq -y +echo "Retrieving SNK..." ROLE=$(aws sts assume-role --region us-east-2 --role-arn ${DOTNET_STRONG_NAME_ROLE_ARN:-} --role-session-name "cdk-dotnet-snk") export AWS_ACCESS_KEY_ID=$(echo $ROLE | jq -r .Credentials.AccessKeyId) export AWS_SECRET_ACCESS_KEY=$(echo $ROLE | jq -r .Credentials.SecretAccessKey) diff --git a/tools/pkglint/lib/rules.ts b/tools/pkglint/lib/rules.ts index 70f09bf20cb07..57cb15abef94d 100644 --- a/tools/pkglint/lib/rules.ts +++ b/tools/pkglint/lib/rules.ts @@ -254,6 +254,33 @@ export class JSIIDotNetNamespaceIsRequired extends ValidationRule { } } +/** + * Strong-naming all .NET assemblies is required. + */ +export class JSIIDotNetStrongNameIsRequired extends ValidationRule { + public validate(pkg: PackageJson): void { + if (!isJSII(pkg)) { return; } + + const signAssembly = deepGet(pkg.json, ['jsii', 'targets', 'dotnet', 'signAssembly']) as boolean | undefined; + const signAssemblyExpected = true; + if (signAssembly !== signAssemblyExpected) { + pkg.report({ + message: `.NET packages must have strong-name signing enabled.`, + fix: () => deepSet(pkg.json, ['jsii', 'targets', 'dotnet', 'signAssembly'], signAssemblyExpected) + }); + } + + const assemblyOriginatorKeyFile = deepGet(pkg.json, ['jsii', 'targets', 'dotnet', 'assemblyOriginatorKeyFile']) as string | undefined; + const assemblyOriginatorKeyFileExpected = "../../key.snk"; + if (assemblyOriginatorKeyFile !== assemblyOriginatorKeyFileExpected) { + pkg.report({ + message: `.NET packages must use the strong name key fetched by fetch-dotnet-snk.sh`, + fix: () => deepSet(pkg.json, ['jsii', 'targets', 'dotnet', 'assemblyOriginatorKeyFile'], assemblyOriginatorKeyFileExpected) + }); + } + } +} + /** * The package must depend on cdk-build-tools */ From 2e7e0eade2cc71104b945955db0ced2295305f69 Mon Sep 17 00:00:00 2001 From: Matthew Pirocchi Date: Wed, 5 Sep 2018 11:44:06 -0700 Subject: [PATCH 3/6] Restore unintentionally removed newline. --- packages/@aws-cdk/aws-sagemaker/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@aws-cdk/aws-sagemaker/package.json b/packages/@aws-cdk/aws-sagemaker/package.json index 90a92eb6a31f8..fbd940e630c20 100644 --- a/packages/@aws-cdk/aws-sagemaker/package.json +++ b/packages/@aws-cdk/aws-sagemaker/package.json @@ -61,4 +61,4 @@ "dependencies": { "@aws-cdk/cdk": "^0.8.2" } -} \ No newline at end of file +} From b59db47f6ec1edd828f8dcb2ab1fd498cf769a3e Mon Sep 17 00:00:00 2001 From: Matthew Pirocchi Date: Fri, 7 Sep 2018 13:41:35 -0700 Subject: [PATCH 4/6] Merge changes to fetch-dotnet-snk.sh from jsii repo. --- fetch-dotnet-snk.sh | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/fetch-dotnet-snk.sh b/fetch-dotnet-snk.sh index d4378683efa19..4e606db501200 100644 --- a/fetch-dotnet-snk.sh +++ b/fetch-dotnet-snk.sh @@ -3,15 +3,48 @@ set -euo pipefail # This script retrieves the .snk file needed to create strong names for .NET assemblies. -sudo apt install jq -y +function echo_usage() { + echo "USAGE: Set the following environment variables, then run ./fetch-dotnet-snk.sh with no arguments." + echo -e "\tDOTNET_STRONG_NAME_ENABLED=true" + echo -e "\tDOTNET_STRONG_NAME_ROLE_ARN=" + echo -e "\tDOTNET_STRONG_NAME_SECRET_REGION=" + echo -e "\tDOTNET_STRONG_NAME_SECRET_ID=" +} + +if [ -z ${DOTNET_STRONG_NAME_ENABLED:-} ]; then + echo "Environment variable DOTNET_STRONG_NAME_ENABLED is not set. Skipping strong-name signing." + exit 0 +fi echo "Retrieving SNK..." -ROLE=$(aws sts assume-role --region us-east-2 --role-arn ${DOTNET_STRONG_NAME_ROLE_ARN:-} --role-session-name "cdk-dotnet-snk") + +apt update -y +apt install jq -y + +if [ -z ${DOTNET_STRONG_NAME_ROLE_ARN:-} ]; then + echo "Strong name signing is enabled, but DOTNET_STRONG_NAME_ROLE_ARN is not set." + echo_usage + exit 1 +fi + +if [ -z ${DOTNET_STRONG_NAME_SECRET_REGION:-}]; then + echo "Strong name signing is enabled, but DOTNET_STRONG_NAME_SECRET_REGION is not set." + echo_usage + exit 1 +fi + +if [ -z ${DOTNET_STRONG_NAME_SECRET_ID:-} ]; then + echo "Strong name signing is enabled, but DOTNET_STRONG_NAME_SECRET_ID is not set." + echo_usage + exit 1 +fi + +ROLE=$(aws sts assume-role --region ${DOTNET_STRONG_NAME_SECRET_REGION:-} --role-arn ${DOTNET_STRONG_NAME_ROLE_ARN:-} --role-session-name "jsii-dotnet-snk") export AWS_ACCESS_KEY_ID=$(echo $ROLE | jq -r .Credentials.AccessKeyId) export AWS_SECRET_ACCESS_KEY=$(echo $ROLE | jq -r .Credentials.SecretAccessKey) export AWS_SESSION_TOKEN=$(echo $ROLE | jq .Credentials.SessionToken) -SNK_SECRET=$(aws secretsmanager get-secret-value --region us-east-2 --secret-id ${DOTNET_STRONG_NAME_SECRET_ID:-}) +SNK_SECRET=$(aws secretsmanager get-secret-value --region ${DOTNET_STRONG_NAME_SECRET_REGION:-} --secret-id ${DOTNET_STRONG_NAME_SECRET_ID:-}) TMP_DIR=$(mktemp -d) TMP_KEY="$TMP_DIR/key.snk" echo $SNK_SECRET | jq -r .SecretBinary | base64 --decode > $TMP_KEY From 2ba98d8340dcac4b43c49a39bf0b600ca10f730d Mon Sep 17 00:00:00 2001 From: Jungseok Lee Date: Tue, 11 Sep 2018 00:29:35 -0700 Subject: [PATCH 5/6] feat(aws-dynamodb): Support server-side encryption (#684) This patch supports DynamoDB server-side encryption. --- packages/@aws-cdk/aws-dynamodb/lib/table.ts | 17 +++++--- .../test/integ.dynamodb.expected.json | 24 ++++++----- .../aws-dynamodb/test/integ.dynamodb.ts | 7 +++- .../aws-dynamodb/test/test.dynamodb.ts | 40 +++++++++++++++++-- 4 files changed, 68 insertions(+), 20 deletions(-) diff --git a/packages/@aws-cdk/aws-dynamodb/lib/table.ts b/packages/@aws-cdk/aws-dynamodb/lib/table.ts index 89f4fbcf2e7e2..01624e7d29358 100644 --- a/packages/@aws-cdk/aws-dynamodb/lib/table.ts +++ b/packages/@aws-cdk/aws-dynamodb/lib/table.ts @@ -26,22 +26,28 @@ export interface TableProps { */ tableName?: string; + /** + * Whether server-side encryption is enabled. + * @default undefined, server-side encryption is disabled + */ + sseEnabled?: boolean; + /** * When an item in the table is modified, StreamViewType determines what information * is written to the stream for this table. Valid values for StreamViewType are: - * @default undefined, streams are disbaled + * @default undefined, streams are disabled */ streamSpecification?: StreamViewType; /** - * AutoScalingProps configuration to configure Read AutoScaling for the DyanmoDB table. + * AutoScalingProps configuration to configure Read AutoScaling for the DynamoDB table. * This field is optional and this can be achieved via addReadAutoScaling. * @default undefined, read auto scaling is disabled */ readAutoScaling?: AutoScalingProps; /** - * AutoScalingProps configuration to configure Write AutoScaling for the DyanmoDB table. + * AutoScalingProps configuration to configure Write AutoScaling for the DynamoDB table. * This field is optional and this can be achieved via addWriteAutoScaling. * @default undefined, write auto scaling is disabled */ @@ -111,7 +117,8 @@ export class Table extends Construct { keySchema: this.keySchema, attributeDefinitions: this.attributeDefinitions, provisionedThroughput: { readCapacityUnits, writeCapacityUnits }, - streamSpecification: props.streamSpecification ? {streamViewType: props.streamSpecification} : undefined + sseSpecification: props.sseEnabled ? { sseEnabled: props.sseEnabled } : undefined, + streamSpecification: props.streamSpecification ? { streamViewType: props.streamSpecification } : undefined }); if (props.tableName) { this.addMetadata('aws:cdk:hasPhysicalName', props.tableName); } @@ -293,4 +300,4 @@ export enum StreamViewType { NewAndOldImages = 'NEW_AND_OLD_IMAGES', /** Only the key attributes of the modified item are written to the stream. */ KeysOnly = 'KEYS_ONLY' - } +} diff --git a/packages/@aws-cdk/aws-dynamodb/test/integ.dynamodb.expected.json b/packages/@aws-cdk/aws-dynamodb/test/integ.dynamodb.expected.json index 2462bcbcc627d..5d4645a81aac3 100644 --- a/packages/@aws-cdk/aws-dynamodb/test/integ.dynamodb.expected.json +++ b/packages/@aws-cdk/aws-dynamodb/test/integ.dynamodb.expected.json @@ -3,29 +3,35 @@ "TableCD117FA1": { "Type": "AWS::DynamoDB::Table", "Properties": { - "AttributeDefinitions": [ + "KeySchema": [ { "AttributeName": "hashKey", - "AttributeType": "S" + "KeyType": "HASH" }, { "AttributeName": "rangeKey", - "AttributeType": "N" + "KeyType": "RANGE" } ], - "KeySchema": [ + "ProvisionedThroughput": { + "ReadCapacityUnits": 5, + "WriteCapacityUnits": 5 + }, + "AttributeDefinitions": [ { "AttributeName": "hashKey", - "KeyType": "HASH" + "AttributeType": "S" }, { "AttributeName": "rangeKey", - "KeyType": "RANGE" + "AttributeType": "N" } ], - "ProvisionedThroughput": { - "ReadCapacityUnits": 5, - "WriteCapacityUnits": 5 + "SSESpecification": { + "SSEEnabled": true + }, + "StreamSpecification": { + "StreamViewType": "KEYS_ONLY" } } } diff --git a/packages/@aws-cdk/aws-dynamodb/test/integ.dynamodb.ts b/packages/@aws-cdk/aws-dynamodb/test/integ.dynamodb.ts index 3ed7225464f64..574a64773a08a 100644 --- a/packages/@aws-cdk/aws-dynamodb/test/integ.dynamodb.ts +++ b/packages/@aws-cdk/aws-dynamodb/test/integ.dynamodb.ts @@ -1,11 +1,14 @@ import { App, Stack } from '@aws-cdk/cdk'; -import { KeyAttributeType, Table } from '../lib'; +import { KeyAttributeType, StreamViewType, Table } from '../lib'; const app = new App(process.argv); const stack = new Stack(app, 'aws-cdk-dynamodb'); -const table = new Table(stack, 'Table'); +const table = new Table(stack, 'Table', { + sseEnabled: true, + streamSpecification: StreamViewType.KeysOnly +}); table.addPartitionKey('hashKey', KeyAttributeType.String); table.addSortKey('rangeKey', KeyAttributeType.Number); diff --git a/packages/@aws-cdk/aws-dynamodb/test/test.dynamodb.ts b/packages/@aws-cdk/aws-dynamodb/test/test.dynamodb.ts index 7a6eaa2dd8ac2..8dee188a8e2c4 100644 --- a/packages/@aws-cdk/aws-dynamodb/test/test.dynamodb.ts +++ b/packages/@aws-cdk/aws-dynamodb/test/test.dynamodb.ts @@ -12,7 +12,7 @@ export = { test.done(); }, - 'range key only'(test: Test) { + 'hash key only'(test: Test) { const app = new TestApp(); new Table(app.stack, 'MyTable').addPartitionKey('hashKey', KeyAttributeType.Binary); const template = app.synthesizeTemplate(); @@ -33,7 +33,7 @@ export = { test.done(); }, - 'range + hash key'(test: Test) { + 'hash + range key'(test: Test) { const app = new TestApp(); new Table(app.stack, 'MyTable').addPartitionKey('hashKey', KeyAttributeType.Binary) .addSortKey('sortKey', KeyAttributeType.Number); @@ -60,7 +60,35 @@ export = { test.done(); }, - 'stream is not enabled by default'(test: Test) { + 'server-side encryption is not enabled'(test: Test) { + const app = new TestApp(); + new Table(app.stack, 'MyTable') + .addPartitionKey('partitionKey', KeyAttributeType.Binary) + .addSortKey('sortKey', KeyAttributeType.Number); + const template = app.synthesizeTemplate(); + + test.deepEqual(template, { + Resources: { + MyTable794EDED1: { + Type: 'AWS::DynamoDB::Table', + Properties: { + AttributeDefinitions: [ + { AttributeName: 'partitionKey', AttributeType: 'B' }, + { AttributeName: 'sortKey', AttributeType: 'N' } + ], + KeySchema: [ + { AttributeName: 'partitionKey', KeyType: 'HASH' }, + { AttributeName: 'sortKey', KeyType: 'RANGE' } + ], + ProvisionedThroughput: { ReadCapacityUnits: 5, WriteCapacityUnits: 5 }, + } + } + } + }); + + test.done(); + }, + 'stream is not enabled'(test: Test) { const app = new TestApp(); new Table(app.stack, 'MyTable') .addPartitionKey('partitionKey', KeyAttributeType.Binary) @@ -200,7 +228,9 @@ export = { const table = new Table(app.stack, 'MyTable', { tableName: 'MyTable', readCapacity: 42, - writeCapacity: 1337 + writeCapacity: 1337, + sseEnabled: true, + streamSpecification: StreamViewType.KeysOnly }); table.addPartitionKey('partitionKey', KeyAttributeType.String); table.addSortKey('sortKey', KeyAttributeType.Binary); @@ -223,6 +253,8 @@ export = { ReadCapacityUnits: 42, WriteCapacityUnits: 1337 }, + SSESpecification: { SSEEnabled: true }, + StreamSpecification: { StreamViewType: 'KEYS_ONLY' }, TableName: 'MyTable', } } From 34655f2775f5ecc1a7b319c3bd2b8420e1d465af Mon Sep 17 00:00:00 2001 From: Matthew Pirocchi Date: Tue, 11 Sep 2018 03:55:34 -0400 Subject: [PATCH 6/6] Add `cdk init` template for .NET, and re-enable .NET targets (#617) This change adds support for building .NET targets for the CDK packages. --- packages/@aws-cdk/assets/package.json | 6 + packages/@aws-cdk/aws-apigateway/package.json | 6 + .../aws-applicationautoscaling/package.json | 6 + packages/@aws-cdk/aws-appsync/package.json | 6 + packages/@aws-cdk/aws-athena/package.json | 6 + .../@aws-cdk/aws-autoscaling/package.json | 6 + .../aws-autoscalingplans/package.json | 6 + packages/@aws-cdk/aws-batch/package.json | 6 + packages/@aws-cdk/aws-budgets/package.json | 6 + .../aws-certificatemanager/package.json | 6 + packages/@aws-cdk/aws-cloud9/package.json | 6 + .../@aws-cdk/aws-cloudformation/package.json | 6 + packages/@aws-cdk/aws-cloudfront/package.json | 6 + packages/@aws-cdk/aws-cloudtrail/package.json | 6 + packages/@aws-cdk/aws-cloudwatch/package.json | 6 + packages/@aws-cdk/aws-codebuild/package.json | 6 + packages/@aws-cdk/aws-codecommit/package.json | 6 + packages/@aws-cdk/aws-codedeploy/package.json | 6 + .../aws-codepipeline-api/package.json | 6 + .../@aws-cdk/aws-codepipeline/package.json | 6 + packages/@aws-cdk/aws-cognito/package.json | 6 + packages/@aws-cdk/aws-config/package.json | 6 + .../@aws-cdk/aws-datapipeline/package.json | 6 + packages/@aws-cdk/aws-dax/package.json | 6 + .../aws-directoryservice/package.json | 6 + packages/@aws-cdk/aws-dms/package.json | 6 + packages/@aws-cdk/aws-dynamodb/package.json | 6 + packages/@aws-cdk/aws-ec2/package.json | 6 + packages/@aws-cdk/aws-ecr/package.json | 6 + packages/@aws-cdk/aws-ecs/package.json | 6 + packages/@aws-cdk/aws-efs/package.json | 6 + packages/@aws-cdk/aws-eks/package.json | 6 + .../@aws-cdk/aws-elasticache/package.json | 6 + .../aws-elasticbeanstalk/package.json | 6 + .../aws-elasticloadbalancing/package.json | 6 + .../aws-elasticloadbalancingv2/package.json | 6 + .../@aws-cdk/aws-elasticsearch/package.json | 6 + packages/@aws-cdk/aws-emr/package.json | 6 + packages/@aws-cdk/aws-events/package.json | 6 + packages/@aws-cdk/aws-gamelift/package.json | 6 + packages/@aws-cdk/aws-glue/package.json | 6 + packages/@aws-cdk/aws-guardduty/package.json | 6 + packages/@aws-cdk/aws-iam/package.json | 6 + packages/@aws-cdk/aws-inspector/package.json | 6 + packages/@aws-cdk/aws-iot/package.json | 6 + packages/@aws-cdk/aws-kinesis/package.json | 6 + .../aws-kinesisanalytics/package.json | 6 + .../@aws-cdk/aws-kinesisfirehose/package.json | 6 + packages/@aws-cdk/aws-kms/package.json | 6 + packages/@aws-cdk/aws-lambda/lib/runtime.ts | 2 + packages/@aws-cdk/aws-lambda/package.json | 6 + packages/@aws-cdk/aws-logs/lib/pattern.ts | 4 +- packages/@aws-cdk/aws-logs/package.json | 6 + packages/@aws-cdk/aws-neptune/package.json | 6 + packages/@aws-cdk/aws-opsworks/package.json | 6 + .../@aws-cdk/aws-quickstarts/package.json | 6 + packages/@aws-cdk/aws-rds/package.json | 6 + packages/@aws-cdk/aws-redshift/package.json | 6 + packages/@aws-cdk/aws-route53/package.json | 6 + .../aws-s3-notifications/package.json | 6 + packages/@aws-cdk/aws-s3/package.json | 6 + packages/@aws-cdk/aws-sagemaker/.npmignore | 4 + packages/@aws-cdk/aws-sagemaker/package.json | 6 + packages/@aws-cdk/aws-sdb/package.json | 6 + packages/@aws-cdk/aws-serverless/package.json | 6 + .../@aws-cdk/aws-servicecatalog/package.json | 6 + .../aws-servicediscovery/package.json | 6 + packages/@aws-cdk/aws-ses/package.json | 6 + packages/@aws-cdk/aws-sns/package.json | 6 + packages/@aws-cdk/aws-sqs/package.json | 6 + packages/@aws-cdk/aws-ssm/package.json | 6 + .../@aws-cdk/aws-stepfunctions/package.json | 6 + packages/@aws-cdk/aws-waf/package.json | 6 + .../@aws-cdk/aws-wafregional/package.json | 6 + packages/@aws-cdk/aws-workspaces/package.json | 6 + packages/@aws-cdk/cdk/package.json | 6 + packages/@aws-cdk/cx-api/package.json | 6 + packages/@aws-cdk/runtime-values/package.json | 6 + .../app/dotnet/.template.gitignore | 339 ++++++++++++++++ .../lib/init-templates/app/dotnet/README.md | 20 + .../app/dotnet/add-project.hook.ts | 33 ++ .../lib/init-templates/app/dotnet/cdk.json | 3 + .../app/dotnet/src/HelloCdk.sln | 18 + .../src/HelloCdk/HelloCdk.template.csproj | 15 + .../app/dotnet/src/HelloCdk/HelloConstruct.cs | 35 ++ .../app/dotnet/src/HelloCdk/HelloStack.cs | 36 ++ .../app/dotnet/src/HelloCdk/Program.cs | 28 ++ packages/aws-cdk/lib/init.ts | 36 +- packages/aws-cdk/package-lock.json | 381 ++++++++++++++++++ packages/aws-cdk/tsconfig.json | 7 + tools/cdk-build-tools/lib/index.ts | 1 + tools/cdk-build-tools/package.json | 2 +- tools/pkglint/lib/rules.ts | 32 +- 93 files changed, 1438 insertions(+), 8 deletions(-) create mode 100644 packages/aws-cdk/lib/init-templates/app/dotnet/.template.gitignore create mode 100644 packages/aws-cdk/lib/init-templates/app/dotnet/README.md create mode 100644 packages/aws-cdk/lib/init-templates/app/dotnet/add-project.hook.ts create mode 100644 packages/aws-cdk/lib/init-templates/app/dotnet/cdk.json create mode 100644 packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk.sln create mode 100644 packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloCdk.template.csproj create mode 100644 packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloConstruct.cs create mode 100644 packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloStack.cs create mode 100644 packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/Program.cs create mode 100644 tools/cdk-build-tools/lib/index.ts diff --git a/packages/@aws-cdk/assets/package.json b/packages/@aws-cdk/assets/package.json index c49caff605aff..f84ffee4600cf 100644 --- a/packages/@aws-cdk/assets/package.json +++ b/packages/@aws-cdk/assets/package.json @@ -14,6 +14,12 @@ "artifactId": "cdk-assets" } }, + "dotnet": { + "namespace": "Amazon.CDK.Assets", + "packageId": "Amazon.CDK.Assets", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-apigateway/package.json b/packages/@aws-cdk/aws-apigateway/package.json index 5670f75631835..f1108afc7ea6c 100644 --- a/packages/@aws-cdk/aws-apigateway/package.json +++ b/packages/@aws-cdk/aws-apigateway/package.json @@ -14,6 +14,12 @@ "artifactId": "apigateway" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.APIGateway", + "packageId": "Amazon.CDK.AWS.APIGateway", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-applicationautoscaling/package.json b/packages/@aws-cdk/aws-applicationautoscaling/package.json index 2a17281776d42..24cb0946b0137 100644 --- a/packages/@aws-cdk/aws-applicationautoscaling/package.json +++ b/packages/@aws-cdk/aws-applicationautoscaling/package.json @@ -14,6 +14,12 @@ "artifactId": "applicationautoscaling" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.ApplicationAutoScaling", + "packageId": "Amazon.CDK.AWS.ApplicationAutoScaling", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-appsync/package.json b/packages/@aws-cdk/aws-appsync/package.json index 315794105d2f2..0805b63be92c0 100644 --- a/packages/@aws-cdk/aws-appsync/package.json +++ b/packages/@aws-cdk/aws-appsync/package.json @@ -14,6 +14,12 @@ "artifactId": "appsync" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.AppSync", + "packageId": "Amazon.CDK.AWS.AppSync", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-athena/package.json b/packages/@aws-cdk/aws-athena/package.json index c4787a4e1cb7c..44919e573cb3c 100644 --- a/packages/@aws-cdk/aws-athena/package.json +++ b/packages/@aws-cdk/aws-athena/package.json @@ -14,6 +14,12 @@ "artifactId": "athena" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Athena", + "packageId": "Amazon.CDK.AWS.Athena", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-autoscaling/package.json b/packages/@aws-cdk/aws-autoscaling/package.json index d5d132ceab7c6..b9d497d639888 100644 --- a/packages/@aws-cdk/aws-autoscaling/package.json +++ b/packages/@aws-cdk/aws-autoscaling/package.json @@ -14,6 +14,12 @@ "artifactId": "autoscaling" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.AutoScaling", + "packageId": "Amazon.CDK.AWS.AutoScaling", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-autoscalingplans/package.json b/packages/@aws-cdk/aws-autoscalingplans/package.json index 5c74515f3adc4..bc4b0e340678c 100644 --- a/packages/@aws-cdk/aws-autoscalingplans/package.json +++ b/packages/@aws-cdk/aws-autoscalingplans/package.json @@ -14,6 +14,12 @@ "artifactId": "autoscalingplans" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.AutoScalingPlans", + "packageId": "Amazon.CDK.AWS.AutoScalingPlans", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-batch/package.json b/packages/@aws-cdk/aws-batch/package.json index ece92006d3c8e..e4b1c5a6a51a6 100644 --- a/packages/@aws-cdk/aws-batch/package.json +++ b/packages/@aws-cdk/aws-batch/package.json @@ -14,6 +14,12 @@ "artifactId": "batch" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Batch", + "packageId": "Amazon.CDK.AWS.Batch", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-budgets/package.json b/packages/@aws-cdk/aws-budgets/package.json index a5324bc311d76..048e43fde7937 100644 --- a/packages/@aws-cdk/aws-budgets/package.json +++ b/packages/@aws-cdk/aws-budgets/package.json @@ -14,6 +14,12 @@ "artifactId": "budgets" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Budgets", + "packageId": "Amazon.CDK.AWS.Budgets", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-certificatemanager/package.json b/packages/@aws-cdk/aws-certificatemanager/package.json index dc480300312f2..a5923a951b859 100644 --- a/packages/@aws-cdk/aws-certificatemanager/package.json +++ b/packages/@aws-cdk/aws-certificatemanager/package.json @@ -14,6 +14,12 @@ "artifactId": "certificatemanager" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.CertificateManager", + "packageId": "Amazon.CDK.AWS.CertificateManager", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-cloud9/package.json b/packages/@aws-cdk/aws-cloud9/package.json index d6a6205aa0116..688b95a06edce 100644 --- a/packages/@aws-cdk/aws-cloud9/package.json +++ b/packages/@aws-cdk/aws-cloud9/package.json @@ -14,6 +14,12 @@ "artifactId": "cloud9" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Cloud9", + "packageId": "Amazon.CDK.AWS.Cloud9", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-cloudformation/package.json b/packages/@aws-cdk/aws-cloudformation/package.json index d83c026aaec66..63f84c349b52b 100644 --- a/packages/@aws-cdk/aws-cloudformation/package.json +++ b/packages/@aws-cdk/aws-cloudformation/package.json @@ -14,6 +14,12 @@ "artifactId": "cloudformation" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.CloudFormation", + "packageId": "Amazon.CDK.AWS.CloudFormation", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-cloudfront/package.json b/packages/@aws-cdk/aws-cloudfront/package.json index 755f05b2cab47..a42032c4b39e5 100644 --- a/packages/@aws-cdk/aws-cloudfront/package.json +++ b/packages/@aws-cdk/aws-cloudfront/package.json @@ -14,6 +14,12 @@ "artifactId": "cloudfront" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.CloudFront", + "packageId": "Amazon.CDK.AWS.CloudFront", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-cloudtrail/package.json b/packages/@aws-cdk/aws-cloudtrail/package.json index 1a7d4b77acf9e..36ef018052deb 100644 --- a/packages/@aws-cdk/aws-cloudtrail/package.json +++ b/packages/@aws-cdk/aws-cloudtrail/package.json @@ -14,6 +14,12 @@ "artifactId": "cloudtrail" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.CloudTrail", + "packageId": "Amazon.CDK.AWS.CloudTrail", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-cloudwatch/package.json b/packages/@aws-cdk/aws-cloudwatch/package.json index 08552bd88fa63..91c19ced93125 100644 --- a/packages/@aws-cdk/aws-cloudwatch/package.json +++ b/packages/@aws-cdk/aws-cloudwatch/package.json @@ -14,6 +14,12 @@ "artifactId": "cloudwatch" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.CloudWatch", + "packageId": "Amazon.CDK.AWS.CloudWatch", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-codebuild/package.json b/packages/@aws-cdk/aws-codebuild/package.json index 58c2313f0f4b8..07cdd352cc3fb 100644 --- a/packages/@aws-cdk/aws-codebuild/package.json +++ b/packages/@aws-cdk/aws-codebuild/package.json @@ -14,6 +14,12 @@ "artifactId": "codebuild" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.CodeBuild", + "packageId": "Amazon.CDK.AWS.CodeBuild", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-codecommit/package.json b/packages/@aws-cdk/aws-codecommit/package.json index 1a94afbe6649a..6c1c6006889d7 100644 --- a/packages/@aws-cdk/aws-codecommit/package.json +++ b/packages/@aws-cdk/aws-codecommit/package.json @@ -14,6 +14,12 @@ "artifactId": "codecommit" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.CodeCommit", + "packageId": "Amazon.CDK.AWS.CodeCommit", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-codedeploy/package.json b/packages/@aws-cdk/aws-codedeploy/package.json index 908da1692e30a..256f4201ec0cd 100644 --- a/packages/@aws-cdk/aws-codedeploy/package.json +++ b/packages/@aws-cdk/aws-codedeploy/package.json @@ -14,6 +14,12 @@ "artifactId": "codedeploy" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.CodeDeploy", + "packageId": "Amazon.CDK.AWS.CodeDeploy", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-codepipeline-api/package.json b/packages/@aws-cdk/aws-codepipeline-api/package.json index e67fa2dd3d73b..3b11c26f76adf 100644 --- a/packages/@aws-cdk/aws-codepipeline-api/package.json +++ b/packages/@aws-cdk/aws-codepipeline-api/package.json @@ -14,6 +14,12 @@ "artifactId": "codepipeline-api" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Codepipeline.Api", + "packageId": "Amazon.CDK.AWS.Codepipeline.Api", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-codepipeline/package.json b/packages/@aws-cdk/aws-codepipeline/package.json index 621ba215ed725..d7a1d48413757 100644 --- a/packages/@aws-cdk/aws-codepipeline/package.json +++ b/packages/@aws-cdk/aws-codepipeline/package.json @@ -14,6 +14,12 @@ "artifactId": "codepipeline" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.CodePipeline", + "packageId": "Amazon.CDK.AWS.CodePipeline", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-cognito/package.json b/packages/@aws-cdk/aws-cognito/package.json index d8a0c4fda9344..394ef0ef941a0 100644 --- a/packages/@aws-cdk/aws-cognito/package.json +++ b/packages/@aws-cdk/aws-cognito/package.json @@ -14,6 +14,12 @@ "artifactId": "cognito" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Cognito", + "packageId": "Amazon.CDK.AWS.Cognito", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-config/package.json b/packages/@aws-cdk/aws-config/package.json index e8cc8dfdbc80e..96b9aa4b37fda 100644 --- a/packages/@aws-cdk/aws-config/package.json +++ b/packages/@aws-cdk/aws-config/package.json @@ -14,6 +14,12 @@ "artifactId": "config" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Config", + "packageId": "Amazon.CDK.AWS.Config", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-datapipeline/package.json b/packages/@aws-cdk/aws-datapipeline/package.json index 4ac01bd20fb22..d5305a9246c7c 100644 --- a/packages/@aws-cdk/aws-datapipeline/package.json +++ b/packages/@aws-cdk/aws-datapipeline/package.json @@ -14,6 +14,12 @@ "artifactId": "datapipeline" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.DataPipeline", + "packageId": "Amazon.CDK.AWS.DataPipeline", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-dax/package.json b/packages/@aws-cdk/aws-dax/package.json index 07250c7d88d46..44f7d29138fae 100644 --- a/packages/@aws-cdk/aws-dax/package.json +++ b/packages/@aws-cdk/aws-dax/package.json @@ -14,6 +14,12 @@ "artifactId": "dax" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.DAX", + "packageId": "Amazon.CDK.AWS.DAX", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-directoryservice/package.json b/packages/@aws-cdk/aws-directoryservice/package.json index fe881730225de..6eebe73f1c66b 100644 --- a/packages/@aws-cdk/aws-directoryservice/package.json +++ b/packages/@aws-cdk/aws-directoryservice/package.json @@ -14,6 +14,12 @@ "artifactId": "directoryservice" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.DirectoryService", + "packageId": "Amazon.CDK.AWS.DirectoryService", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-dms/package.json b/packages/@aws-cdk/aws-dms/package.json index e077e71332233..5ca15312645ea 100644 --- a/packages/@aws-cdk/aws-dms/package.json +++ b/packages/@aws-cdk/aws-dms/package.json @@ -14,6 +14,12 @@ "artifactId": "dms" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.DMS", + "packageId": "Amazon.CDK.AWS.DMS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-dynamodb/package.json b/packages/@aws-cdk/aws-dynamodb/package.json index b52e07e95fd74..f8daff4db1763 100644 --- a/packages/@aws-cdk/aws-dynamodb/package.json +++ b/packages/@aws-cdk/aws-dynamodb/package.json @@ -14,6 +14,12 @@ "artifactId": "dynamodb" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.DynamoDB", + "packageId": "Amazon.CDK.AWS.DynamoDB", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-ec2/package.json b/packages/@aws-cdk/aws-ec2/package.json index 02896585ccfa6..f81e5b54fa1b5 100644 --- a/packages/@aws-cdk/aws-ec2/package.json +++ b/packages/@aws-cdk/aws-ec2/package.json @@ -14,6 +14,12 @@ "artifactId": "ec2" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.EC2", + "packageId": "Amazon.CDK.AWS.EC2", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-ecr/package.json b/packages/@aws-cdk/aws-ecr/package.json index be91cef2b48d2..95bd4746549f7 100644 --- a/packages/@aws-cdk/aws-ecr/package.json +++ b/packages/@aws-cdk/aws-ecr/package.json @@ -14,6 +14,12 @@ "artifactId": "ecr" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.ECR", + "packageId": "Amazon.CDK.AWS.ECR", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-ecs/package.json b/packages/@aws-cdk/aws-ecs/package.json index 861cf4d400b82..b91f5e98e4fcd 100644 --- a/packages/@aws-cdk/aws-ecs/package.json +++ b/packages/@aws-cdk/aws-ecs/package.json @@ -14,6 +14,12 @@ "artifactId": "ecs" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.ECS", + "packageId": "Amazon.CDK.AWS.ECS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-efs/package.json b/packages/@aws-cdk/aws-efs/package.json index 82acfda9bbce8..2693fb7ac4081 100644 --- a/packages/@aws-cdk/aws-efs/package.json +++ b/packages/@aws-cdk/aws-efs/package.json @@ -14,6 +14,12 @@ "artifactId": "efs" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.EFS", + "packageId": "Amazon.CDK.AWS.EFS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-eks/package.json b/packages/@aws-cdk/aws-eks/package.json index a85e1a2028360..35a05e2a2fd00 100644 --- a/packages/@aws-cdk/aws-eks/package.json +++ b/packages/@aws-cdk/aws-eks/package.json @@ -14,6 +14,12 @@ "artifactId": "eks" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.EKS", + "packageId": "Amazon.CDK.AWS.EKS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-elasticache/package.json b/packages/@aws-cdk/aws-elasticache/package.json index 6ca05b0a97b07..72102674e8145 100644 --- a/packages/@aws-cdk/aws-elasticache/package.json +++ b/packages/@aws-cdk/aws-elasticache/package.json @@ -14,6 +14,12 @@ "artifactId": "elasticache" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.ElastiCache", + "packageId": "Amazon.CDK.AWS.ElastiCache", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-elasticbeanstalk/package.json b/packages/@aws-cdk/aws-elasticbeanstalk/package.json index 6a2a639198bf4..aa0ef42102557 100644 --- a/packages/@aws-cdk/aws-elasticbeanstalk/package.json +++ b/packages/@aws-cdk/aws-elasticbeanstalk/package.json @@ -14,6 +14,12 @@ "artifactId": "elasticbeanstalk" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.ElasticBeanstalk", + "packageId": "Amazon.CDK.AWS.ElasticBeanstalk", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-elasticloadbalancing/package.json b/packages/@aws-cdk/aws-elasticloadbalancing/package.json index 0635636e77849..4f99681d76e0a 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancing/package.json +++ b/packages/@aws-cdk/aws-elasticloadbalancing/package.json @@ -14,6 +14,12 @@ "artifactId": "elasticloadbalancing" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.ElasticLoadBalancing", + "packageId": "Amazon.CDK.AWS.ElasticLoadBalancing", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json b/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json index dd88cead20ad7..0f34bc1e97cf2 100644 --- a/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json +++ b/packages/@aws-cdk/aws-elasticloadbalancingv2/package.json @@ -14,6 +14,12 @@ "artifactId": "elasticloadbalancingv2" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.ElasticLoadBalancingV2", + "packageId": "Amazon.CDK.AWS.ElasticLoadBalancingV2", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-elasticsearch/package.json b/packages/@aws-cdk/aws-elasticsearch/package.json index c7b9bc5287db2..f0bed23f501e3 100644 --- a/packages/@aws-cdk/aws-elasticsearch/package.json +++ b/packages/@aws-cdk/aws-elasticsearch/package.json @@ -14,6 +14,12 @@ "artifactId": "elasticsearch" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Elasticsearch", + "packageId": "Amazon.CDK.AWS.Elasticsearch", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-emr/package.json b/packages/@aws-cdk/aws-emr/package.json index 74ecde77b128d..f66b113a4dd47 100644 --- a/packages/@aws-cdk/aws-emr/package.json +++ b/packages/@aws-cdk/aws-emr/package.json @@ -14,6 +14,12 @@ "artifactId": "emr" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.EMR", + "packageId": "Amazon.CDK.AWS.EMR", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-events/package.json b/packages/@aws-cdk/aws-events/package.json index 73ae2611289a1..9823c616fd69b 100644 --- a/packages/@aws-cdk/aws-events/package.json +++ b/packages/@aws-cdk/aws-events/package.json @@ -14,6 +14,12 @@ "artifactId": "events" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Events", + "packageId": "Amazon.CDK.AWS.Events", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-gamelift/package.json b/packages/@aws-cdk/aws-gamelift/package.json index 161b690602afc..605fcf8b53883 100644 --- a/packages/@aws-cdk/aws-gamelift/package.json +++ b/packages/@aws-cdk/aws-gamelift/package.json @@ -14,6 +14,12 @@ "artifactId": "gamelift" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.GameLift", + "packageId": "Amazon.CDK.AWS.GameLift", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-glue/package.json b/packages/@aws-cdk/aws-glue/package.json index d866c41a20ac2..5c272a605f046 100644 --- a/packages/@aws-cdk/aws-glue/package.json +++ b/packages/@aws-cdk/aws-glue/package.json @@ -14,6 +14,12 @@ "artifactId": "glue" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Glue", + "packageId": "Amazon.CDK.AWS.Glue", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-guardduty/package.json b/packages/@aws-cdk/aws-guardduty/package.json index fabead2f6f1dd..10447b1c691b0 100644 --- a/packages/@aws-cdk/aws-guardduty/package.json +++ b/packages/@aws-cdk/aws-guardduty/package.json @@ -14,6 +14,12 @@ "artifactId": "guardduty" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.GuardDuty", + "packageId": "Amazon.CDK.AWS.GuardDuty", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-iam/package.json b/packages/@aws-cdk/aws-iam/package.json index b9b28326e483b..388bb73ce4b3d 100644 --- a/packages/@aws-cdk/aws-iam/package.json +++ b/packages/@aws-cdk/aws-iam/package.json @@ -14,6 +14,12 @@ "artifactId": "iam" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.IAM", + "packageId": "Amazon.CDK.AWS.IAM", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-inspector/package.json b/packages/@aws-cdk/aws-inspector/package.json index 739b74b96ec31..2a07ef82a1fba 100644 --- a/packages/@aws-cdk/aws-inspector/package.json +++ b/packages/@aws-cdk/aws-inspector/package.json @@ -14,6 +14,12 @@ "artifactId": "inspector" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Inspector", + "packageId": "Amazon.CDK.AWS.Inspector", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-iot/package.json b/packages/@aws-cdk/aws-iot/package.json index f45013cfc3608..47056e5bed7a7 100644 --- a/packages/@aws-cdk/aws-iot/package.json +++ b/packages/@aws-cdk/aws-iot/package.json @@ -14,6 +14,12 @@ "artifactId": "iot" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.IoT", + "packageId": "Amazon.CDK.AWS.IoT", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-kinesis/package.json b/packages/@aws-cdk/aws-kinesis/package.json index 11f939a8ad06a..f5bc8f023b296 100644 --- a/packages/@aws-cdk/aws-kinesis/package.json +++ b/packages/@aws-cdk/aws-kinesis/package.json @@ -14,6 +14,12 @@ "artifactId": "kinesis" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Kinesis", + "packageId": "Amazon.CDK.AWS.Kinesis", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-kinesisanalytics/package.json b/packages/@aws-cdk/aws-kinesisanalytics/package.json index 09f3e18194d14..0c87c4684e871 100644 --- a/packages/@aws-cdk/aws-kinesisanalytics/package.json +++ b/packages/@aws-cdk/aws-kinesisanalytics/package.json @@ -14,6 +14,12 @@ "artifactId": "kinesisanalytics" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.KinesisAnalytics", + "packageId": "Amazon.CDK.AWS.KinesisAnalytics", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-kinesisfirehose/package.json b/packages/@aws-cdk/aws-kinesisfirehose/package.json index 596f868a2650a..4bd448f67c4b3 100644 --- a/packages/@aws-cdk/aws-kinesisfirehose/package.json +++ b/packages/@aws-cdk/aws-kinesisfirehose/package.json @@ -14,6 +14,12 @@ "artifactId": "kinesisfirehose" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.KinesisFirehose", + "packageId": "Amazon.CDK.AWS.KinesisFirehose", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-kms/package.json b/packages/@aws-cdk/aws-kms/package.json index c32783c317c53..0efe8a44d2d18 100644 --- a/packages/@aws-cdk/aws-kms/package.json +++ b/packages/@aws-cdk/aws-kms/package.json @@ -14,6 +14,12 @@ "artifactId": "kms" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.KMS", + "packageId": "Amazon.CDK.AWS.KMS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-lambda/lib/runtime.ts b/packages/@aws-cdk/aws-lambda/lib/runtime.ts index 4163c6bc608dc..2fc7ce50a610b 100644 --- a/packages/@aws-cdk/aws-lambda/lib/runtime.ts +++ b/packages/@aws-cdk/aws-lambda/lib/runtime.ts @@ -10,6 +10,7 @@ export interface LambdaRuntimeProps { * Lambda function runtime environment. */ export class Runtime implements InlinableRuntime, InlinableJavaScriptRuntime { + /* tslint:disable variable-name */ public static readonly NodeJS = new Runtime('nodejs', { supportsInlineCode: true }) as InlinableJavaScriptRuntime; // Using ``as InlinableLambdaRuntime`` because that class cannot be defined just yet public static readonly NodeJS43 = new Runtime('nodejs4.3', { supportsInlineCode: true }) as InlinableJavaScriptRuntime; @@ -26,6 +27,7 @@ export class Runtime implements InlinableRuntime, InlinableJavaScriptRuntime { public static readonly DotNetCore2 = new Runtime('dotnetcore2.0'); public static readonly DotNetCore21 = new Runtime('dotnetcore2.1'); public static readonly Go1x = new Runtime('go1.x'); + /* tslint:enable variable-name */ /** The name of this runtime, as expected by the Lambda resource. */ public readonly name: string; diff --git a/packages/@aws-cdk/aws-lambda/package.json b/packages/@aws-cdk/aws-lambda/package.json index 4b9bef096fef7..f1c499cd33a67 100644 --- a/packages/@aws-cdk/aws-lambda/package.json +++ b/packages/@aws-cdk/aws-lambda/package.json @@ -14,6 +14,12 @@ "artifactId": "lambda" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Lambda", + "packageId": "Amazon.CDK.AWS.Lambda", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-logs/lib/pattern.ts b/packages/@aws-cdk/aws-logs/lib/pattern.ts index 90a79572a5c96..0b5141f746466 100644 --- a/packages/@aws-cdk/aws-logs/lib/pattern.ts +++ b/packages/@aws-cdk/aws-logs/lib/pattern.ts @@ -295,7 +295,9 @@ export class SpaceDelimitedTextPattern implements IFilterPattern { return new SpaceDelimitedTextPattern(columns, {}); } - private constructor(private readonly columns: string[], private readonly restrictions: RestrictionMap) { + // TODO: Temporarily changed from private to protected to unblock build. We need to think + // about how to handle jsii types with private constructors. + protected constructor(private readonly columns: string[], private readonly restrictions: RestrictionMap) { // Private constructor so we validate in the .construct() factory function } diff --git a/packages/@aws-cdk/aws-logs/package.json b/packages/@aws-cdk/aws-logs/package.json index accaa50d35923..f189ce9ceb703 100644 --- a/packages/@aws-cdk/aws-logs/package.json +++ b/packages/@aws-cdk/aws-logs/package.json @@ -14,6 +14,12 @@ "artifactId": "logs" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Logs", + "packageId": "Amazon.CDK.AWS.Logs", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-neptune/package.json b/packages/@aws-cdk/aws-neptune/package.json index 1ab1b355ba374..539c766aff601 100644 --- a/packages/@aws-cdk/aws-neptune/package.json +++ b/packages/@aws-cdk/aws-neptune/package.json @@ -14,6 +14,12 @@ "artifactId": "neptune" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Neptune", + "packageId": "Amazon.CDK.AWS.Neptune", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-opsworks/package.json b/packages/@aws-cdk/aws-opsworks/package.json index 4027b6bf46788..a75f9fb349e86 100644 --- a/packages/@aws-cdk/aws-opsworks/package.json +++ b/packages/@aws-cdk/aws-opsworks/package.json @@ -14,6 +14,12 @@ "artifactId": "opsworks" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.OpsWorks", + "packageId": "Amazon.CDK.AWS.OpsWorks", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-quickstarts/package.json b/packages/@aws-cdk/aws-quickstarts/package.json index d9e83c2f4367d..ef820a81b4667 100644 --- a/packages/@aws-cdk/aws-quickstarts/package.json +++ b/packages/@aws-cdk/aws-quickstarts/package.json @@ -14,6 +14,12 @@ "artifactId": "quickstarts" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.QuickStarts", + "packageId": "Amazon.CDK.AWS.QuickStarts", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-rds/package.json b/packages/@aws-cdk/aws-rds/package.json index 658b12a094d26..0fced57ff8e6a 100644 --- a/packages/@aws-cdk/aws-rds/package.json +++ b/packages/@aws-cdk/aws-rds/package.json @@ -14,6 +14,12 @@ "artifactId": "rds" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.RDS", + "packageId": "Amazon.CDK.AWS.RDS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-redshift/package.json b/packages/@aws-cdk/aws-redshift/package.json index b1a2998a615df..7e5f1c6d60982 100644 --- a/packages/@aws-cdk/aws-redshift/package.json +++ b/packages/@aws-cdk/aws-redshift/package.json @@ -14,6 +14,12 @@ "artifactId": "redshift" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Redshift", + "packageId": "Amazon.CDK.AWS.Redshift", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-route53/package.json b/packages/@aws-cdk/aws-route53/package.json index 91f94e8688a09..34a9614c78629 100644 --- a/packages/@aws-cdk/aws-route53/package.json +++ b/packages/@aws-cdk/aws-route53/package.json @@ -14,6 +14,12 @@ "artifactId": "route53" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Route53", + "packageId": "Amazon.CDK.AWS.Route53", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-s3-notifications/package.json b/packages/@aws-cdk/aws-s3-notifications/package.json index 4c7e187bd32af..88b1ccafef885 100644 --- a/packages/@aws-cdk/aws-s3-notifications/package.json +++ b/packages/@aws-cdk/aws-s3-notifications/package.json @@ -14,6 +14,12 @@ "artifactId": "s3-notifications" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.S3.Notifications", + "packageId": "Amazon.CDK.AWS.S3.Notifications", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-s3/package.json b/packages/@aws-cdk/aws-s3/package.json index 18e0d44456e80..beab6c1950340 100644 --- a/packages/@aws-cdk/aws-s3/package.json +++ b/packages/@aws-cdk/aws-s3/package.json @@ -14,6 +14,12 @@ "artifactId": "s3" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.S3", + "packageId": "Amazon.CDK.AWS.S3", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-sagemaker/.npmignore b/packages/@aws-cdk/aws-sagemaker/.npmignore index bad75ae282e9f..ad475e81689b6 100644 --- a/packages/@aws-cdk/aws-sagemaker/.npmignore +++ b/packages/@aws-cdk/aws-sagemaker/.npmignore @@ -14,3 +14,7 @@ dist .LAST_BUILD .LAST_PACKAGE .jsii + + +# Include .jsii +!.jsii diff --git a/packages/@aws-cdk/aws-sagemaker/package.json b/packages/@aws-cdk/aws-sagemaker/package.json index 9b1e37b9ca13f..fbd940e630c20 100644 --- a/packages/@aws-cdk/aws-sagemaker/package.json +++ b/packages/@aws-cdk/aws-sagemaker/package.json @@ -14,6 +14,12 @@ "artifactId": "sagemaker" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Sagemaker", + "packageId": "Amazon.CDK.AWS.Sagemaker", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-sdb/package.json b/packages/@aws-cdk/aws-sdb/package.json index 49454e84b56b6..beca9a8281bf4 100644 --- a/packages/@aws-cdk/aws-sdb/package.json +++ b/packages/@aws-cdk/aws-sdb/package.json @@ -14,6 +14,12 @@ "artifactId": "sdb" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.SDB", + "packageId": "Amazon.CDK.AWS.SDB", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-serverless/package.json b/packages/@aws-cdk/aws-serverless/package.json index bbc58d7b4b00c..69d5263ed6b80 100644 --- a/packages/@aws-cdk/aws-serverless/package.json +++ b/packages/@aws-cdk/aws-serverless/package.json @@ -14,6 +14,12 @@ "artifactId": "serverless" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.Serverless", + "packageId": "Amazon.CDK.AWS.Serverless", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-servicecatalog/package.json b/packages/@aws-cdk/aws-servicecatalog/package.json index 47d4d453c68a5..c9533cbad89f0 100644 --- a/packages/@aws-cdk/aws-servicecatalog/package.json +++ b/packages/@aws-cdk/aws-servicecatalog/package.json @@ -14,6 +14,12 @@ "artifactId": "servicecatalog" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.ServiceCatalog", + "packageId": "Amazon.CDK.AWS.ServiceCatalog", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-servicediscovery/package.json b/packages/@aws-cdk/aws-servicediscovery/package.json index 5dd0569bb64ba..ac6dc08668de4 100644 --- a/packages/@aws-cdk/aws-servicediscovery/package.json +++ b/packages/@aws-cdk/aws-servicediscovery/package.json @@ -14,6 +14,12 @@ "artifactId": "servicediscovery" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.ServiceDiscovery", + "packageId": "Amazon.CDK.AWS.ServiceDiscovery", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-ses/package.json b/packages/@aws-cdk/aws-ses/package.json index 067684f4924fc..6ad3fa0c4b78d 100644 --- a/packages/@aws-cdk/aws-ses/package.json +++ b/packages/@aws-cdk/aws-ses/package.json @@ -14,6 +14,12 @@ "artifactId": "ses" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.SES", + "packageId": "Amazon.CDK.AWS.SES", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-sns/package.json b/packages/@aws-cdk/aws-sns/package.json index 42f318b6a292f..d6d78bc1142c2 100644 --- a/packages/@aws-cdk/aws-sns/package.json +++ b/packages/@aws-cdk/aws-sns/package.json @@ -14,6 +14,12 @@ "artifactId": "sns" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.SNS", + "packageId": "Amazon.CDK.AWS.SNS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-sqs/package.json b/packages/@aws-cdk/aws-sqs/package.json index 79e721b269339..dcbb734350804 100644 --- a/packages/@aws-cdk/aws-sqs/package.json +++ b/packages/@aws-cdk/aws-sqs/package.json @@ -14,6 +14,12 @@ "artifactId": "sqs" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.SQS", + "packageId": "Amazon.CDK.AWS.SQS", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-ssm/package.json b/packages/@aws-cdk/aws-ssm/package.json index 6ab415905782a..b30941214733f 100644 --- a/packages/@aws-cdk/aws-ssm/package.json +++ b/packages/@aws-cdk/aws-ssm/package.json @@ -14,6 +14,12 @@ "artifactId": "ssm" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.SSM", + "packageId": "Amazon.CDK.AWS.SSM", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-stepfunctions/package.json b/packages/@aws-cdk/aws-stepfunctions/package.json index c56a228d11f07..c428de7119686 100644 --- a/packages/@aws-cdk/aws-stepfunctions/package.json +++ b/packages/@aws-cdk/aws-stepfunctions/package.json @@ -14,6 +14,12 @@ "artifactId": "stepfunctions" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.StepFunctions", + "packageId": "Amazon.CDK.AWS.StepFunctions", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-waf/package.json b/packages/@aws-cdk/aws-waf/package.json index 7344abf179258..9d69bb8ec7eb3 100644 --- a/packages/@aws-cdk/aws-waf/package.json +++ b/packages/@aws-cdk/aws-waf/package.json @@ -14,6 +14,12 @@ "artifactId": "waf" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.WAF", + "packageId": "Amazon.CDK.AWS.WAF", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-wafregional/package.json b/packages/@aws-cdk/aws-wafregional/package.json index 2a72114c45470..2fd9be57db951 100644 --- a/packages/@aws-cdk/aws-wafregional/package.json +++ b/packages/@aws-cdk/aws-wafregional/package.json @@ -14,6 +14,12 @@ "artifactId": "wafregional" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.WAFRegional", + "packageId": "Amazon.CDK.AWS.WAFRegional", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/aws-workspaces/package.json b/packages/@aws-cdk/aws-workspaces/package.json index 09b73556d67f4..3336c7029e069 100644 --- a/packages/@aws-cdk/aws-workspaces/package.json +++ b/packages/@aws-cdk/aws-workspaces/package.json @@ -14,6 +14,12 @@ "artifactId": "workspaces" } }, + "dotnet": { + "namespace": "Amazon.CDK.AWS.WorkSpaces", + "packageId": "Amazon.CDK.AWS.WorkSpaces", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/cdk/package.json b/packages/@aws-cdk/cdk/package.json index 49db8e68c8104..ff22fd388774a 100644 --- a/packages/@aws-cdk/cdk/package.json +++ b/packages/@aws-cdk/cdk/package.json @@ -14,6 +14,12 @@ "artifactId": "cdk" } }, + "dotnet": { + "namespace": "Amazon.CDK", + "packageId": "Amazon.CDK", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/cx-api/package.json b/packages/@aws-cdk/cx-api/package.json index 4bfbd73ec1196..96c6d1b268914 100644 --- a/packages/@aws-cdk/cx-api/package.json +++ b/packages/@aws-cdk/cx-api/package.json @@ -14,6 +14,12 @@ "artifactId": "cdk-cx-api" } }, + "dotnet": { + "namespace": "Amazon.CDK.CXAPI", + "packageId": "Amazon.CDK.CXAPI", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/@aws-cdk/runtime-values/package.json b/packages/@aws-cdk/runtime-values/package.json index 2e1a2960c2af7..518250bd93ceb 100644 --- a/packages/@aws-cdk/runtime-values/package.json +++ b/packages/@aws-cdk/runtime-values/package.json @@ -14,6 +14,12 @@ "artifactId": "cdk-runtime-values" } }, + "dotnet": { + "namespace": "Amazon.CDK.RuntimeValues", + "packageId": "Amazon.CDK.RuntimeValues", + "signAssembly": true, + "assemblyOriginatorKeyFile": "../../key.snk" + }, "sphinx": {} } }, diff --git a/packages/aws-cdk/lib/init-templates/app/dotnet/.template.gitignore b/packages/aws-cdk/lib/init-templates/app/dotnet/.template.gitignore new file mode 100644 index 0000000000000..8f83e36d4919a --- /dev/null +++ b/packages/aws-cdk/lib/init-templates/app/dotnet/.template.gitignore @@ -0,0 +1,339 @@ + +# Created by https://www.gitignore.io/api/csharp + +### Csharp ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + + +# End of https://www.gitignore.io/api/csharp \ No newline at end of file diff --git a/packages/aws-cdk/lib/init-templates/app/dotnet/README.md b/packages/aws-cdk/lib/init-templates/app/dotnet/README.md new file mode 100644 index 0000000000000..b1fdeb70bf281 --- /dev/null +++ b/packages/aws-cdk/lib/init-templates/app/dotnet/README.md @@ -0,0 +1,20 @@ + +# CDK HelloWorld + +Welcome to your CDK .NET project! + +You should explore the contents of this template. It demonstrates a CDK app with two instances of +a stack (`HelloStack`) which also uses a user-defined construct (`HelloConstruct`). + +The `cdk.json` file tells the CDK Toolkit how to execute your app. It uses the `dotnet` CLI to do this. + +# Useful commands + +* `dotnet build src` compile this app +* `cdk ls` list all stacks in the app +* `cdk synth` emits the synthesized CloudFormation template +* `cdk deploy` deploy this stack to your default AWS account/region +* `cdk diff` compare deployed stack with current state +* `cdk docs` open CDK documentation + +Enjoy! diff --git a/packages/aws-cdk/lib/init-templates/app/dotnet/add-project.hook.ts b/packages/aws-cdk/lib/init-templates/app/dotnet/add-project.hook.ts new file mode 100644 index 0000000000000..b71b326c9a62b --- /dev/null +++ b/packages/aws-cdk/lib/init-templates/app/dotnet/add-project.hook.ts @@ -0,0 +1,33 @@ +import * as child_process from 'child_process'; +import * as path from 'path'; +import { InvokeHook } from '../../../init'; + +export const invoke: InvokeHook = async (targetDirectory: string) => { + const slnPath = path.join(targetDirectory, "src", "HelloCdk.sln"); + const csprojPath = path.join(targetDirectory, "src", "HelloCdk", "HelloCdk.csproj"); + + const child = child_process.spawn('dotnet', [ 'sln', slnPath, 'add', csprojPath ], { + // Need this for Windows where we want .cmd and .bat to be found as well. + shell: true, + stdio: [ 'ignore', 'pipe', 'inherit' ] + }); + + await new Promise((resolve, reject) => { + const stdout = new Array(); + + child.stdout.on('data', chunk => { + process.stdout.write(chunk); + stdout.push(chunk); + }); + + child.once('error', reject); + + child.once('exit', code => { + if (code === 0) { + resolve(Buffer.concat(stdout).toString('utf-8')); + } else { + reject(new Error(`Could not add project HelloCdk.csproj to solution HelloCdk.sln. Error code: ${code}`)); + } + }); + }); +}; diff --git a/packages/aws-cdk/lib/init-templates/app/dotnet/cdk.json b/packages/aws-cdk/lib/init-templates/app/dotnet/cdk.json new file mode 100644 index 0000000000000..2dbf074d7689f --- /dev/null +++ b/packages/aws-cdk/lib/init-templates/app/dotnet/cdk.json @@ -0,0 +1,3 @@ +{ + "app": "dotnet src/HelloCdk/bin/Debug/netcoreapp2.1/HelloCdk.dll" +} diff --git a/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk.sln b/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk.sln new file mode 100644 index 0000000000000..2f92ebd9bda92 --- /dev/null +++ b/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk.sln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26124.0 +MinimumVisualStudioVersion = 15.0.26124.0 +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloCdk.template.csproj b/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloCdk.template.csproj new file mode 100644 index 0000000000000..bda43f1bdef99 --- /dev/null +++ b/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloCdk.template.csproj @@ -0,0 +1,15 @@ + + + + Exe + netcoreapp2.1 + + + + + + + + + + diff --git a/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloConstruct.cs b/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloConstruct.cs new file mode 100644 index 0000000000000..9813259ac4550 --- /dev/null +++ b/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloConstruct.cs @@ -0,0 +1,35 @@ +using Amazon.CDK; +using Amazon.CDK.AWS.IAM; +using Amazon.CDK.AWS.S3; +using System.Collections.Generic; +using System.Linq; + +namespace HelloCdk +{ + public class HelloConstructProps + { + public int BucketCount { get; set; } + } + + public class HelloConstruct : Construct + { + private readonly IEnumerable _buckets; + + // A simple construct that contains a collection of AWS S3 buckets. + public HelloConstruct(Construct parent, string id, HelloConstructProps props) : base(parent, id) + { + _buckets = Enumerable.Range(0, props.BucketCount) + .Select(i => new Bucket(this, $"Bucket{i}", new BucketProps())) + .ToList(); + } + + // Give the specified principal read access to the buckets in this construct. + public void GrantRead(IIIdentityResource principal) + { + foreach (Bucket bucket in _buckets) + { + bucket.GrantRead(principal, "*"); + } + } + } +} diff --git a/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloStack.cs b/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloStack.cs new file mode 100644 index 0000000000000..091fc4d0e2276 --- /dev/null +++ b/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/HelloStack.cs @@ -0,0 +1,36 @@ +using Amazon.CDK; +using Amazon.CDK.AWS.IAM; +using Amazon.CDK.AWS.SNS; +using Amazon.CDK.AWS.SQS; + +namespace HelloCdk +{ + public class HelloStack : Stack + { + public HelloStack(App parent, string name, IStackProps props) : base(parent, name, props) + { + // The CDK includes built-in constructs for most resource types, such as Queues and Topics. + var queue = new Queue(this, "MyFirstQueue", new QueueProps + { + VisibilityTimeoutSec = 300 + }); + + var topic = new Topic(this, "MyFirstTopic", new TopicProps + { + DisplayName = "My First Topic Yeah" + }); + + topic.SubscribeQueue(queue); + + // You can also define your own constructs and use them in your stack. + HelloConstruct hello = new HelloConstruct(this, "Buckets", new HelloConstructProps() + { + BucketCount = 5 + }); + + // Create a new user with read access to the HelloConstruct resource. + User user = new User(this, "MyUser", new UserProps()); + hello.GrantRead(user); + } + } +} diff --git a/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/Program.cs b/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/Program.cs new file mode 100644 index 0000000000000..5fb47923f357d --- /dev/null +++ b/packages/aws-cdk/lib/init-templates/app/dotnet/src/HelloCdk/Program.cs @@ -0,0 +1,28 @@ +using Amazon.CDK; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace HelloCdk +{ + class Program + { + static void Main(string[] args) + { + // Create a new app. The first argument is used to display a usage message for this app. + string[] appArgs = new [] { $"dotnet ${nameof(HelloCdk)}" } + .Concat(args) + .ToArray(); + var app = new App(appArgs); + + // A CDK app can contain multiple stacks. You can view a list of all the stacks in your + // app by typing `cdk list`. + new HelloStack(app, "hello-cdk-1", new StackProps()); + new HelloStack(app, "hello-cdk-2", new StackProps()); + + // Your app must write the return value of app.Run() to standard output. The `cdk init` + // and `cdk synth` commands require this output. + Console.WriteLine(app.Run()); + } + } +} diff --git a/packages/aws-cdk/lib/init.ts b/packages/aws-cdk/lib/init.ts index 9f0372817ab85..f1ccaa2875b03 100644 --- a/packages/aws-cdk/lib/init.ts +++ b/packages/aws-cdk/lib/init.ts @@ -5,6 +5,8 @@ import os = require('os'); import path = require('path'); import { error, print, warning } from './logging'; +export type InvokeHook = (targetDirectory: string) => Promise; + // tslint:disable:no-var-requires those libraries don't have up-to-date @types modules const camelCase = require('camelcase'); const decamelize = require('decamelize'); @@ -76,27 +78,51 @@ export class InitTemplate { + `(it supports: ${this.languages.map(l => colors.blue(l)).join(', ')})`); throw new Error(`Unsupported language: ${language}`); } - await this.installFiles(path.join(this.basePath, language), targetDirectory, { + const sourceDirectory = path.join(this.basePath, language); + await this.installFiles(sourceDirectory, targetDirectory, { name: decamelize(path.basename(path.resolve(targetDirectory))) }); + await this.invokeHooks(sourceDirectory, targetDirectory); } - private async installFiles(srcDir: string, tgtDir: string, project: ProjectInfo) { - for (const file of await fs.readdir(srcDir)) { - const fromFile = path.join(srcDir, file); - const toFile = path.join(tgtDir, this.expand(file, project)); + private async installFiles(sourceDirectory: string, targetDirectory: string, project: ProjectInfo) { + for (const file of await fs.readdir(sourceDirectory)) { + const fromFile = path.join(sourceDirectory, file); + const toFile = path.join(targetDirectory, this.expand(file, project)); if ((await fs.stat(fromFile)).isDirectory()) { await fs.mkdir(toFile); await this.installFiles(fromFile, toFile, project); continue; } else if (file.match(/^.*\.template\.[^.]+$/)) { await this.installProcessed(fromFile, toFile.replace(/\.template(\.[^.]+)$/, '$1'), project); + } else if (file.match(/^.*\.hook\.[^.]+$/)) { + continue; } else { await fs.copy(fromFile, toFile); } } } + /** + * @summary Invoke any javascript hooks that exist in the template. + * @description Sometimes templates need more complex logic than just replacing tokens. A 'hook' is + * any file that ends in .hook.js. It should export a single function called "invoke" + * that accepts a single string parameter. When the template is installed, each hook + * will be invoked, passing the target directory as the only argument. Hooks are invoked + * in lexical order. + */ + private async invokeHooks(sourceDirectory: string, targetDirectory: string) { + const files = await fs.readdir(sourceDirectory); + files.sort(); // Sorting allows template authors to control the order in which hooks are invoked. + + for (const file of files) { + if (file.match(/^.*\.hook\.js$/)) { + const invoke: InvokeHook = require(path.join(sourceDirectory, file)).invoke; + await invoke(targetDirectory); + } + } + } + private async installProcessed(templatePath: string, toFile: string, project: ProjectInfo) { const template = await fs.readFile(templatePath, { encoding: 'utf-8' }); await fs.writeFile(toFile, this.expand(template, project)); diff --git a/packages/aws-cdk/package-lock.json b/packages/aws-cdk/package-lock.json index c4613431061b2..5419b90f5715d 100644 --- a/packages/aws-cdk/package-lock.json +++ b/packages/aws-cdk/package-lock.json @@ -95,6 +95,14 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-8.0.3.tgz", "integrity": "sha512-YdxO7zGQf2qJeMgR0fNO8QTlj88L2zCP5GOddovoTyetgLiNDOUXcWzhWKb4EdZZlOjLQUA0JM8lW7VcKQL+9w==" }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "requires": { + "es6-promisify": "^5.0.0" + } + }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -157,6 +165,11 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, + "ast-types": { + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.5.tgz", + "integrity": "sha512-oJjo+5e7/vEc2FBK8gUalV0pba4L3VdBIs2EKhOLHLcOd2FgQIVQN9xb0eZ9IjEWyAL7vq6fGJxOvVvdCHNyMw==" + }, "async": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", @@ -277,6 +290,11 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, "camelcase": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", @@ -407,6 +425,19 @@ "assert-plus": "^1.0.0" } }, + "data-uri-to-buffer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", + "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, "decamelize": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", @@ -415,11 +446,31 @@ "xregexp": "4.0.0" } }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, "difflib": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", @@ -466,6 +517,46 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.8.2.tgz", "integrity": "sha1-q6jZ4ZQ6iVrJaDemKjmz9V7NlKs=" }, + "es6-promise": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escodegen": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", + "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, "events": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", @@ -505,6 +596,16 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -548,6 +649,43 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + } + } + }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", @@ -558,6 +696,29 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, + "get-uri": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.2.tgz", + "integrity": "sha512-ZD325dMZOgerGqF/rF6vZXyFGTAay62svjQIT+X/oU2PtxYpFxvSkbsdi+oxIrsNxlZVd4y8wUDqkaExWTI/Cw==", + "requires": { + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "3", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -608,6 +769,26 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "requires": { + "agent-base": "4", + "debug": "3.1.0" + } + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -618,6 +799,23 @@ "sshpk": "^1.7.0" } }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, "ieee754": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", @@ -642,6 +840,11 @@ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -759,6 +962,15 @@ "invert-kv": "^1.0.0" } }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -832,11 +1044,21 @@ "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, + "netmask": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" + }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", @@ -882,6 +1104,19 @@ "wrappy": "1" } }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", @@ -918,6 +1153,44 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, + "pac-proxy-agent": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-2.0.2.tgz", + "integrity": "sha512-cDNAN1Ehjbf5EHkNY5qnRhGPUCp6SnpyVof5fRzN800QV1Y2OkzbH9rmjZkbBRa8igof903yOnjIl6z0SlAhxA==", + "requires": { + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^3.0.0" + }, + "dependencies": { + "socks-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", + "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", + "requires": { + "agent-base": "^4.1.0", + "socks": "^1.1.10" + } + } + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -959,6 +1232,11 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", @@ -972,6 +1250,26 @@ "read": "~1.0.4" } }, + "proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.0.1.tgz", + "integrity": "sha512-mAZexaz9ZxQhYPWfAjzlrloEjW+JHiBFryE4AJXFDTnaXfmH/FKqC1swTRKuEPbHWz02flQNXFOyDUF7zfEG6A==", + "requires": { + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "pac-proxy-agent": "^2.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + } + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -992,6 +1290,17 @@ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, "read": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", @@ -1080,6 +1389,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "sax": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", @@ -1095,6 +1409,11 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -1113,6 +1432,45 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, + "smart-buffer": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", + "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=" + }, + "socks": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", + "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", + "requires": { + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" + } + }, + "socks-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", + "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", + "requires": { + "agent-base": "~4.2.0", + "socks": "~2.2.0" + }, + "dependencies": { + "smart-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", + "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==" + }, + "socks": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.1.tgz", + "integrity": "sha512-0GabKw7n9mI46vcNrVfs0o6XzWzjVa3h6GaSo2UPxtWAROXUWavfJWh1M4PR5tnE0dcnQXZIDFP4yrAysLze/w==", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.0.1" + } + } + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -1175,6 +1533,11 @@ "tweetnacl": "~0.14.0" } }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -1244,6 +1607,11 @@ "xtend": "^4.0.0" } }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" + }, "to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", @@ -1278,11 +1646,24 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, "universalify": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, "url": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", diff --git a/packages/aws-cdk/tsconfig.json b/packages/aws-cdk/tsconfig.json index ce1e5e6393d7d..eefbfb550f683 100644 --- a/packages/aws-cdk/tsconfig.json +++ b/packages/aws-cdk/tsconfig.json @@ -18,8 +18,15 @@ "experimentalDecorators": true, "strictPropertyInitialization":false }, + "include": [ + "**/*.ts", + "**/*.d.ts" + ], "exclude": [ "lib/init-templates/**/*" + ], + "files": [ + "lib/init-templates/app/dotnet/add-project.hook.ts" ] } diff --git a/tools/cdk-build-tools/lib/index.ts b/tools/cdk-build-tools/lib/index.ts new file mode 100644 index 0000000000000..4494512263a5e --- /dev/null +++ b/tools/cdk-build-tools/lib/index.ts @@ -0,0 +1 @@ +export { shell } from './os'; diff --git a/tools/cdk-build-tools/package.json b/tools/cdk-build-tools/package.json index 5a40f5f4e831d..716e847c70f42 100644 --- a/tools/cdk-build-tools/package.json +++ b/tools/cdk-build-tools/package.json @@ -3,7 +3,7 @@ "private": true, "version": "0.8.2", "description": "Tools package with shared build scripts for CDK packages", - "main": "index.js", + "main": "lib/index.js", "repository": { "type": "git", "url": "https://github.com/awslabs/aws-cdk.git" diff --git a/tools/pkglint/lib/rules.ts b/tools/pkglint/lib/rules.ts index a30d221e23af9..03c55313e9998 100644 --- a/tools/pkglint/lib/rules.ts +++ b/tools/pkglint/lib/rules.ts @@ -1,3 +1,4 @@ +import caseUtils = require('case'); import fs = require('fs'); import path = require('path'); import { LICENSE, NOTICE } from './licensing'; @@ -218,14 +219,43 @@ function cdkModuleName(name: string) { name = name.replace(/^aws-cdk-/, ''); name = name.replace(/^@aws-cdk\//, ''); + const dotnetSuffix = name.split('-') + .map(s => s === 'aws' ? 'AWS' : caseUtils.pascal(s)) + .join('.'); + return { javaPackage: `software.amazon.awscdk${isCdkPkg ? '' : `.${name.replace(/^aws-/, 'services-').replace(/-/g, '.')}`}`, mavenArtifactId: isCdkPkg ? 'cdk' : name.startsWith('aws-') ? name.replace(/^aws-/, '') - : `cdk-${name}` + : `cdk-${name}`, + dotnetNamespace: `Amazon.CDK${isCdkPkg ? '' : `.${dotnetSuffix}`}` }; } +/** + * JSII .NET namespace is required and must look sane + */ +export class JSIIDotNetNamespaceIsRequired extends ValidationRule { + public validate(pkg: PackageJson): void { + if (!isJSII(pkg)) { return; } + + const dotnet = deepGet(pkg.json, ['jsii', 'targets', 'dotnet', 'namespace']) as string | undefined; + const moduleName = cdkModuleName(pkg.json.name); + expectJSON(pkg, 'jsii.targets.dotnet.namespace', moduleName.dotnetNamespace, /\./g, /*case insensitive*/ true); + + if (dotnet) { + const actualPrefix = dotnet.split('.').slice(0, 2).join('.'); + const expectedPrefix = moduleName.dotnetNamespace.split('.').slice(0, 2).join('.'); + if (actualPrefix !== expectedPrefix) { + pkg.report({ + message: `.NET namespace must share the first two segments of the default namespace, '${expectedPrefix}' vs '${actualPrefix}'`, + fix: () => deepSet(pkg.json, ['jsii', 'targets', 'dotnet', 'namespace'], moduleName.dotnetNamespace) + }); + } + } + } +} + /** * The package must depend on cdk-build-tools */